일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- XSS
- blind-sqli
- regex
- pwn
- 예전글
- web
- 예전글 #PS
- pwnable
- JS
- cookie
- 백준
- blind_sqli
- 예전글 #CNN
- Pwnable.kr
- cce2023
- cryptohack.org
- HTB
- SQLi
- webhacking.kr
- pwn.college
- Crypto
- SECGAME
- PS
- Bob
- Today
- Total
목록전체 글 (50)
아모에요
문제 소스를 보면 base64로 20번 인코딩하고 문자열을 치환한 값이 쿠키에 저장된다. 이를 역산한 값이 admin, nimda이면 문제가 풀린다. 어렵지 않게 이를 코드로 짤 수 있다. admin, nimda를 20번 인코딩한 값은 import base64 def encode(text): text_bytes = text.encode('ascii') text_base64 = base64.b64encode(text_bytes) tb64str = text_base64.decode('ascii') return tb64str id = "admin" pw = "nimda" for i in range(20): id = encode(id) pw = encode(pw) print(id) print(pw) 의 코드로 ..
접속하면 login, join 두개의 버튼이 존재하고 join은 작동을 안한다. login.php에 들어가봐서 온갖 SQLi를 시도해도 먹히지 않는다. 뭔가 힌트를 얻을 수 있을까 싶어 /web-05/mem/에 접속해보았더니 보이지 않던 join.php가 존재함을 알 수 있다. join.php에는 괴상한 자바스크립트가 존재하는데 이를 뷰티파이어에 넣고 분석해보자. l = 'a'; ll = 'b'; lll = 'c'; llll = 'd'; lllll = 'e'; llllll = 'f'; lllllll = 'g'; llllllll = 'h'; lllllllll = 'i'; llllllllll = 'j'; lllllllllll = 'k'; llllllllllll = 'l'; llllllll..
문제 소스를 보면 hash가 (1000000~99999999)salt_for_you 형태의 값으로 결정되고 이를 500번 sha1 해시화한 것이 표시되는 해시값이다. 10000000~19999999 까지의 해시값의 앞 8글자정도만 구한 다음에 이 데이터와 맞는 숫자를 대입해주면 문제가 풀린다. [hash.txt를 생성하는 코드] import hashlib import tqdm f = open("./hash.txt","w") for i in tqdm.tqdm(range(10000000,20000000)): sess = str(i) + "salt_for_you" res = sess for j in range(500): res = hashlib.sha1(res.encode("ascii")).hexdigest(..