반응형
[DREAMHACK 워게임] 웹해킹_command-injection-1 문제풀이
Security2023. 11. 24. 14:09[DREAMHACK 워게임] 웹해킹_command-injection-1 문제풀이

이는 인자가 ""에 쌓여 출력되고 문자 제한이 걸린 command injection 문제이다. 따라서 문자제한 회피를 위해 위와 같이 burp suite를 이용하였다. 1.1.1.1 ls 출력 -> 문자제한으로 막힘 proxy로 문자제한 우회 1.1.1.1을 보내고 그 후 proxy하여 ; ls를 출력해봄 -> “” 가 붙어 해당 명령어 막힘 "{host}"로 되어있는것 발견 “” 우회하기 "; ls ./ " -> 막힘 여기서 포인트는 둘다 주소인것 따라서 따옴표로 묶어도 오류 안남 "; ls “./” 하면 먹힘! -> 여기 아래에 flag.py 발견함 그렇다면 "; cat "./flag.py"하면 답 발견가능함!

[DREAMHACK 워게임] 웹해킹_simple_sqli 문제풀이
Security2023. 11. 24. 14:01[DREAMHACK 워게임] 웹해킹_simple_sqli 문제풀이

해당문제는 sql injection 유형이다. @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'GET': return render_template('login.html') else: userid = request.form.get('userid') userpassword = request.form.get('userpassword') res = query_db(f'select * from users where userid="{userid}" and userpassword="{userpassword}"') if res: userid = res[0] if userid == 'admin': return f'hello ..

[DREAMHACK 워게임] 웹해킹_CSRF-2 문제풀이
Security2023. 11. 24. 12:30[DREAMHACK 워게임] 웹해킹_CSRF-2 문제풀이

이 문제의 중요한 점은 admin의 비밀번호가 flag이고 admin으로 로그인하면 home화면에 flag가 출력된 다는 것이다. -> 따라서 우리가 고민해야하는 것은 admin으로 그럼 어떻게 구할 것인가 이다 이때 코드를 살펴보면 @app.route("/flag", methods=["GET", "POST"]) def flag(): if request.method == "GET": return render_template("flag.html") elif request.method == "POST": param = request.form.get("param", "") session_id = os.urandom(16).hex() session_storage[session_id] = 'admin' if no..

[DREAMHACK 워게임] 웹해킹_xss-2 문제풀이
Security2023. 11. 24. 12:21[DREAMHACK 워게임] 웹해킹_xss-2 문제풀이

xss 우회하는 방법 사용하는 문제이다, 요런 형식의 태그를 사용했다. 해당 태그 onload 내 함수로 cookie 값을 출력하게 하면 값이 나온다. cookie 값은 DH{3c01577e9542ec24d68ba0ffb846508f} 이였다. https://noirstar.tistory.com/309 참고! *chat gpt가 설명해준 svg 태그 페이로드은 Cross-Site Scripting (XSS) 공격의 예시입니다. 이 페이로드은 취약한 웹 페이지의 SVG 이미지에 주입될 경우, 문서의 도메인을 나타내는 경고 대화상자를 트리거합니다. 페이로드의 구성 요소는 다음과 같습니다: : 이는 SVG(Scalable Vector Graphics) 요소의 시작을 나타냅니다. /onload=alert(doc..

[DREAMHACK 워게임] 웹해킹_XSS문제 풀이
Security2023. 11. 24. 12:16[DREAMHACK 워게임] 웹해킹_XSS문제 풀이

이 문제에서 중요한 것은 3가지로 1. 각 페이지의 유형과 2. FLAG값이 어디에 들어있는지 3. 127.0.0.1의 의미를 아는 것이다. 페이지는 총 3종류로 vuln(xss) page, memo, flag가 있는데 vuln은 입력값을 그대로 return한다. memo는 memo변수의 값을 그대로 출력하며 flag는 127.0.0.1:8000 포트에 post로 쿼리문을 보낸다. 따라서 vuln페이지는 xss 공격이 가능하다. 그리고 127.0.0.1은 로컬호스트이다. 그러므로 패킷을 외부까지 보내지 않는다. 또한 코드를 살펴보면 /**코드 전체에서 일부만 조각해옴**/ try: FLAG = open("./flag.txt", "r").read() if not check_xss(param, {"name"..

반응형
image