본문 바로가기

STUDY/Dreamhack8

[Dreamhack] CSP Bypass(web,2) CSP를 우회하는 문제@app.after_requestdef add_header(response): global nonce response.headers[ "Content-Security-Policy" ] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'self' 'nonce-{nonce}'" nonce = os.urandom(16).hex() return responseCSP 설정을 보고 뭘 의미하는 지 파악self : 페이지의 현재 출처 (Origin) 내에서 로드하는 리소스만 허용합니다.flag 메뉴에서 source를 자기 자신으로.. 2024. 7. 13.
[Dreamhack] Long Sleep(rev, 2) 바이너리를 실행하면 한줄만 출력하고 계속 멈춰있다. 뭘 입력하거나, 연산해야하는 것이 아닌 바이너리 패치를 통해 문제를 풀어야 하는 듯 하다. sleep이 걸려 있는 것 같은데, sleep 함수를 직접 쓰진 않는 것 같다.IDA로 코드를 보다가, nanosleep을 호출하는 systemcall을 찾았다. 이 부분을 우회에 주면 되는 것으로 보인다.nanosleep 이 있는 함수를 호출하는 아래 if 문에 들어가지 않도록 설정해주려한다.디버거로 실행해서 값을 바꿔주고, 이어서 실행되도록하니 flag가 출력되었다. 2024. 7. 10.
[WEB] DOM XSS https://dreamhack.io/wargame/challenges/438 DOM XSSDescription Exercise: DOM XSS에서 실습하는 문제입니다. 문제 수정 내역 2023.08.11 Dockerfile 제공dreamhack.io #!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)nonce = os.urandom(16).hex()try: .. 2024. 7. 9.
[WEB] Switching Command 웹 페이지에 접속! username에 값들을 넣어보았다. 문자열을 넣으면 JSON형식으로 입력하라고 나오고, 숫자는 그냥 들어감. 이것저것 해보다가 웹 소스코드가 있다는 것을 잊었다는 게 생각났다.index.php에서 admin으로 로그인하는 방법을 유추할 수 있다사용자의 입력 값을 JSON 형태로 파싱하기 때문에 boolean 타입을 값으로 설정할 수 있다고 한다.JSON 형태로 username을 넣어준다.test.php 에서 cmd 파라미터에 웹쉘을 업로드한다.(curl "https://gist.githubusercontent.com/joswr1ght/22f40787de19d80d110b37fb79ac3985/raw/50008b4501ccb7f804a61bc2e1a3d1df1cb403c4/easy-s.. 2024. 6. 23.
[rev] Summer Fan (level2) 안드로이드 apk 리버싱문제이다.JADX로 디컴파일 해본다. MainActivityKt 클래스의 generateFlag() 함수를 이용해서 플래그가 생성되는 것을 확인할 수 있다.변수는 다음과 같이 받아온다.위 두가지 내용을 기반으로 연산하는 것을 python 코드로 작성하면 다음과 같다. ChatGPT를 잘 이용하면 더 빠르게 코드를 작성해준다 ㅎㅎFLAG = [220, 211, 180, 230, 192, 22, 341, 220, 227, 341, 139, 163, 355, 293, 333, 196, 142, 216, 376, 133, 248, 26, 342, 378, 231, 149, 145, 173, 185, 1, 10, 198]KEY = ["h", "o", "t", "_", "h", "o", "t.. 2024. 6. 15.
[web] Dream Gallery (level2) 파일업로드에서 text 파일을 업로드한 후, 개발자도구로 파일을 보면 base64로 디코딩된 값이 있음해당 값을 인코딩하면, text 파일에 있는 문구가 인코딩되어 있다는 것을 알 수 있음. 이걸 이용하여 flag를 읽어와야 하는 것으로 보임.코드를 보니, file:// 와 flag 문자열이 필터링 되어 있음찾아보니 file:// 는 file:/ 로 우회 가능하고, flag는 URL 인코딩하여 우회할 수 있다.개발자 도구로 base64 되어있는 값을 디코딩해보면, 플래그가 나온다. 2024. 6. 14.
반응형