728x90
해당 문제 정보는 아래와 같다.
접속 정보 보기를 통해 확인한 페이지는 아래와 같다.
Socket 페이지로 넘어가는 'Raw Socket Sender' 부분을 누르니 아래와 같은 페이지를 볼 수 있었다.
host, port, data를 작성하여 send 할 수 있는 기능으로 유추할 수 있다.
우선 아무 값이나 넣고 Send 버튼을 누르니
time out 에러가 발생한 것을 볼 수 있었다.
이제 문제로 주어진 파일을 확인해보자.
@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
app.run(host='0.0.0.0', port=8000)
위 코드는 문제 파일에 있는 파이썬 코드의 일부 내용 중 admin.html에 대한 설명이 담겨있다. 해당 코드를 통해 위 조건들을 만족하는 값을 제공하면 FLAG 값을 성공적으로 return 할 수 있다는 것을 추측할 수 있다.
코드의 마지막 줄에서 확인한 host와 port 값인 0.0.0.0과 8000을 입력해주고 Data 부분에는 아래내용을 입력해줄 수 있다.
POST /admin HTTP/1.1
Host: 127.0.0.1
User-Agent: Admin Browser
DreamhackUser: admin
Cookie: admin=true
Content-Type:application/x-www-form-urlencoded
Content-Length: 12
userid=admin
모든 값을 입력한 후 Send 버튼을 누르니 플래그 값을 확인할 수 있었다.
문제 해결!!
[참고자료]
728x90
'CTF' 카테고리의 다른 글
[Dreamhack] 🌱 simple-web-request (0) | 2023.05.25 |
---|---|
[Dreamhack] ex-reg-ex (0) | 2023.05.25 |
[Dreamhack] broken-png (0) | 2023.05.21 |
[Dreamhack] simple-ssti (0) | 2023.05.21 |
[Dreamhack] dreamhack-tools-cyberchef (0) | 2023.05.13 |