no image
pathtraversal
소스코드에서 userid 정보를 확인할 수 있다. 문제에서 flag값은 /api/flag에 있다고 알려줬고 서버에 guest와 admin을 입력하면 burf suite에 출력되는 userid이 0,1로 변경되는 것을 확인할 수 있었다. 따라서 ../flag로 값을 변경했더니 flag값이 출력되었다. @app.route('/get_info', methods=['GET', 'POST']) def get_info(): if request.method == 'GET': return render_template('get_info.html') elif request.method == 'POST': userid = request.form.get('userid', '') info = requests.get(f'{API..
2023.11.09
no image
phpreg
// pw filtering if (preg_match("/[a-zA-Z]/", $input_pw)) { echo "alphabet in the pw :("; } else{ $name = preg_replace("/nyang/i", "", $input_name); $pw = preg_replace("/\d*\@\d{2,3}(31)+[^0-8\"]\!/", "d4y0r50ng", $input_pw); if ($name === "dnyang0310" && $pw === "d4y0r50ng+1+13") 소스코드의 일부분 정규표현식을 알아야 함 \d* : 0개 이상의 숫자 \@ : @ \d{2,3} : 2자리나 3자리 숫자 (31) : 31이라는 문자열 [^0-8\"] : 0부터 8까지의 숫자 및 인용 부호를 ..
2023.11.09
no image
xss-1
여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스이다. XSS 취약점을 이용해 플래그를 획득하는 문제이다. 플래그는 flag.txt, FLAG 변수에 있다. 서버에 들어가보면 위와 같이 3가지 페이지를 볼 수 있다. vuln(xss) page를 누르면 '1' alert창이 뜬다 @app.route("/memo") def memo(): global memo_text text = request.args.get("memo", "") memo_text += text + "\n" return render_template("memo.html", memo=memo_text) memo는 들어갈 때마다 memo라는 문자열이 추가되었다. memo에 입력되는 hello는 없어지지 않고 계속 추가되는 것을 보아 쿠키..
2023.11.08
no image
Carve Party
호박을 10000번 클릭하여 해결해야 하는 문제이다. 만번을 전부 클릭할 수 없기 때문에 소스코드를 확인하여 해결해야 한다. 소스코드가 주어지는 문제가 아니라서 개발자모드로 html 코드를 확인했다. 완벽하게 해석하지는 못했지만 #jack-target을 10000번 클릭하는 것 같았다. 그래서 콘솔에 반복문을 사용해 10000번을 클릭하도록 만들어야 한다. 이렇게 콘솔에 입력하면 플래그값이 뜬다. 원래 그런건지는 모르겠지만 코드는 자동완성으로 작성되었다. 검색해보니까 trigger() 함수는 jQuery로 특정 이벤트 유형에 대해 선택한 요소에 연결된 모든 핸들러와 동작을 실행시킨다. click이라는 이벤트를 trigger 함수로 호출한 것이다. jQuery에 대한 내용을 몰라서 콘솔에 작성할 코드를 몰..
2023.11.03
no image
file-download-1
파일 다운로드 취약점이 존재하는 웹 서비스 flag.py를 다운받으면 플래그 획득 가능 @APP.route('/upload', methods=['GET', 'POST']) def upload_memo(): if request.method == 'POST': filename = request.form.get('filename') content = request.form.get('content').encode('utf-8') if filename.find('..') != -1: return render_template('upload_result.html', data='bad characters,,') with open(f'{UPLOAD_DIR}/{filename}', 'wb') as f: f.write(co..
2023.11.03
no image
ex-reg-ex
문제에서 요구하는 형식의 문자열을 입력하여 플래그를 획득하는 문제 중간에 메일을 의미하는 코드가 작성되어 있다고 생각했다. m = re.match(r'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+', input_val) r은 특수문자를 이스케이프하는 문제를 피하기 위해 정규 표현식을 정의할 때 사용되는 원시 문자열을 의미한다. 1. dr 2. \w{5,7} : 5개에서 7개의 문자 3. e 4. \d+ : 하나 이상의 숫자 5. am@ 6. [a-z]{3,7} : 3개에서 7개의 소문자 알파벳 7. \. : 마침표 8. \w+ : 하나 이상의 문자 draaaaae1am@abc.a
2023.11.02
no image
web-misconf-1
기본 성정을 사용한 서비스 로그인한 후 Organization에 플래그를 설정해 놓은 문제이다. 먼저 admin/admin으로 로그인을 했더니 성공했다. 문제에서 힌트를 얻어 Organization 위주로 봤는데 플래그는 없었다. DH를 검색해서 Setting에서 플래그값을 발견할 수 있었다.
2023.11.01
no image
Flying Chars
서버에 들어가면 빠르게 이미지들이 움직이고 있다. 개발자 모드를 사용해서 이 이미지들이 천천히 움직이거나 멈추게 만들어야 한다. 개발자 모드의 콘솔창은 자바스크립트 코드를 수정해서 테스트할 수 있다. 원래의 자바스크립트 코드이다. 랜덤으로 설정한 임의의 값으로 img를 호출하는 것 같다. 따라서 마지막 인수를 1로 수정하고 콘솔창에 입력했더니 이미지가 천천히 움직였다.
2023.11.01
no image
simple-web-request
step 1~2 단계를 거치면 플래그가 출려된다. step1 화면이다. 2개의 param 값을 입력해야 한다. 이 값은 문제 파일에서 찾을 수 있었다. param = getget param2 = rerequest step2도 위와 같은 방식으로 찾을 수 있다. param = pooost param2 = requeeest 이 값들을 순서대로 입력하면 플래그값이 뜬다.
2023.11.01
Prev 1 2 3 4 Next
반응형