728x90
Description
Raw Socket Sender가 구현된 서비스입니다.
요구하는 조건을 맞춰 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.
풀이
step 1. 접속 정보 사이트로 접속
Raw Socket? : 어느 특정한 프로토콜 용의 전송 계층 포맷팅 없이 인터넷 프로토콜, 패킷을 직접적으로 주고 받게 해주는 소켓
사이트에서 Raw Socket Sender를 클릭해보니
host, port, Data를 써서 소켓을 보내는 것 같다. 일단 port는 80, host는 루프백(127.0.0.1)으로, Data는 그냥 data로 보내봤다.
step 2. 보냈더니 에러가 나서 코드를 확인하기 위해 문제 파일을 다운로드했다.
@app.route('/admin', methods=['POST'])
def admin():
if request.remote_addr != '127.0.0.1':
return 'Only localhost'
if request.headers.get('User-Agent') != 'Admin Browser':
return 'Only Admin Browser'
if request.headers.get('DreamhackUser') != 'admin':
return 'Only Admin'
if request.cookies.get('admin') != 'true':
return 'Admin Cookie'
if request.form.get('userid') != 'admin':
return 'Admin id'
return FLAG
이 코드를 확인해보았을 때, 주소가 127.0.0.1이고, 'User-Agent'의 헤더값이 'Admin Browser'이고, 'DreamhackUser' 헤더값이 'admin'이고, 'admin'의 쿠키값이 true여야 하고, 'userid'가 'admin'이면 FLAG를 주는 것 같다.
Step 3. HTTP 요청 메소드대로 Data 값을 작성해주고 Send를 누르면
플래그를 찾을 수 있다.
728x90
'dreamhack' 카테고리의 다른 글
[Dreamhack] baby-linux (Beginner) (0) | 2023.11.07 |
---|---|
[Dreamhack] 🌱 simple-web-request (Beginner) (0) | 2023.11.07 |
[Dreamhack] Carve Party (Beginner) (0) | 2023.10.05 |
[Dreamhack] devtools-sources (Beginner) (0) | 2023.10.03 |
[Dreamhack] cookie (Beginner) (0) | 2023.10.03 |