분류 전체보기 26

[Webhacking.kr] old-38 풀이

38번이다. LOG INJECTION이라고 대문짝만하게 적어놨다. input을 받는 박스 하나가 있다. 어떤 값을 넣고 Login을 누르면 저 빈화면으로 돌아온다.   admin.php라는 게 있는 것 같다.  admin.php이다.  내 아이피: 입력값으로 LOG가 저장된다. MY IP:admin으로 로그를 만들어내면 되는 것 같다.  물론 admin으로 보내면 막힌다 구글링해보니 \n (줄바꿈 문자) 를 통해서 우회할 수 있다고 한다. (전에도 그렇게 풀었던 거 같긴 함) 안됨  HTML 수정해서 보내면 그만이야~ 보낸 뒤 admin 페이지 들어가면

Webhacking.kr 2024.07.12

[Webhacking.kr] old-16 풀이

문제 페이지이다. 별이 3개 있다. 알 수 있는게 없어 Elements를 보자 *** 들여쓰기가 안돼있어서 복잡하긴 한데  3번째 줄에 있는 onkeypress로 눌린 키보드 값을 가지고 mv함수를 호출한다.  * onkeypress(ASCII)  mv(cd) 함수를 보면 cd 값이 100이면, left에서 50만큼 이동한다. (왼쪽 끝에서 50만큼 떨어져있다는 말임) cd값이 124면, fromCharCode(cd).php로 이동한다. fromCharCode는 아스키를 문자로 바꿔준다.124는 | 이므로 '|' 를 누르게 된다면 |.php로 이동하게 된다.   혹은 console에서 mv(124)를 입력해도 된다.

Webhacking.kr 2024.07.11

[Webhacking.kr] old-15 풀이

문제 페이지에 접속하면 Access_Denied 라면서 확인을 누르면 / 로 이동시켜버린다.  자바스크립트를 활용해서 location.href 스크립트를 박아놓은 것 같다. 그럼 어떻게 하냐?  크롬에는 javascript를 비활성화 시키는 기능이 있다.  설정 - 개인 정보 보호 및 보안 - 사이트 설정 - 하단에 콘텐츠 - 자바스크립트 - 사이트에서 'JavaScript를 사용하도록 허용하지 않음' 선택  설정하고 다시 문제 페이지를 접속해보면  빈 페이지가 나오게 된다. 여기서 개발자도구로 Elements를 확인해 보면  코드를 확인할 수 있다. 코드에 적힌대로 ?getFlag를 URL에 추가해보면  주의할 점: ?getFlag 쓰기 전에 설정에서 다시 자바스크립트 사용으로 바꿔줘야 한다

Webhacking.kr 2024.07.11

[Webhacking.kr] old-17 풀이

이번 방학에는 Webhacking.kr을 정복해보겠다.작년 군대에서 반 가까이 풀었지만 지금은 기억이 하나도 나지 않기에 도전해 볼 만하다고 생각한다.Solved 순서대로 풀었다. (중간에 빈 문제는 특정 포트가 싸지방 방화벽에 막혀서 접속이 안됐던 것으로 기억한다.) 암튼 풀이는 내가 봤을 때 좀 의미있는 문제? 교훈을 얻을 수 있는 문제라던가 복습 안하면 까먹을 것 같은 문제 위주로 풀이하려고 한다. 첫 문제는 solved가 3번째로 많은 old-17을 풀이해보겠다.  입력 값을 받는 박스 하나만 덩그러니 있다. 개발자도구 - Elements 에서 소스를 볼 수 있다.  중요한 부분만 갖고 왔다.  unlock이라는 변수에 아주 긴 수식을 대입하고, sub()라는 함수를 실행한다.  login.pw...

Webhacking.kr 2024.07.11

[Dreamhack] Addition calculator 풀이

덧셈 식을 입력하면 계산 결과를 출력하는 웹 서비스란다. flag는 ./flag.txt 에 있다고 한다.  문제 페이지이다. 입력을 받는다. 1+2 를 입력하게 되면? 소스코드를 보자#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport subprocessimport reapp = Flask(__name__)def filter(formula): w_list = list(string.ascii_lowercase + string.ascii_uppercase + string.digits) w_list.extend([" ", ".", "(", ")", "+"]) if re.search("(syst..

Dreamhack 2024.05.26

[Dreamhack] what-is-my-ip 풀이

How are they aware of us even behind the wall..?어떻게 그들이 우리를 알고 있냐 벽 뒤에 있음에도..(?) 영어못함 그들이 우리 ip를 어떻게 알고 있냐 라고 물어보는 것 같은 그냥 제 생각이구요Flag는 /flag에 있다고 하네요~ 문제 페이지이다. 들어가면 제 ip가 출력되는 모습을 볼 수 있다. 암튼 소스 분석 ㄱㄱ #!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag()..

Dreamhack 2024.05.23

[Dreamhack] simple_sqli_chatgpt 풀이

simple_sqli_chatgpt이다. GPT센세와 함께 풀어보라고 한다..! 하지만 문제는 고작 레벨 1.. 혼자 해결해보자  문제 페이지이다. Login이 있다. 나머지 About, Contact는 클릭해봐도 URL에만 #about, #contact 이 추가될 뿐 반응이 없다. login 페이지이다.  input으로 userlevel을 받는다.  소스코드 ㄱㄱ#!/usr/bin/python3from flask import Flask, request, render_template, gimport sqlite3import osimport binasciiapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open('./flag.txt',..

Dreamhack 2024.04.03

[Dreamhack] BypassIF 풀이

BypassIF이다. 제목만 봐서는 IF문을 바이패스 해야될 것 같다. 문제 페이지이다. 맞는 key를 submit 하면 될 것 같다. 아무 값이나 넣어봤는데 아무 반응이 없다. 감이 안잡히므로 소스코드를 보도록 하자. #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect, url_for import string import os import hashlib app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" KEY = hashlib.md5(FLAG.encode())...

Dreamhack 2024.04.03

[Dreamhack] XSS Filtering Bypass Advanced 풀이

이번엔 XSS Filtering Bypass가 Advanced 돼서 돌아왔다..! 무려(?) 3단계다.. 뭐가 달라졌는지 알아보자 저번 문제와 같이 3개의 페이지가 있다. /vuln 페이지이다. 스크립트 사용이 가능하다는 것을 보여준다. @app.route("/vuln") def vuln(): param = request.args.get("param", "") param = xss_filter(param) return param /vuln 소스코드다. param의 파라미터 값을 받아서 xss_filter에 넘겨준다. def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): ret..

Dreamhack 2024.03.24