일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- cookie
- web
- HTB
- 예전글 #PS
- Bob
- pwnable
- JS
- Pwnable.kr
- pwn.college
- cryptohack.org
- SECGAME
- 예전글
- cce2023
- Crypto
- SQLi
- XSS
- PS
- webhacking.kr
- 백준
- 예전글 #CNN
- regex
- blind-sqli
- pwn
- blind_sqli
- Today
- Total
목록Study/Hacking (40)
아모에요
id = admin으로 로그인하면 you are not admin이라 뜨면서 튕겨진다. id = test로 로그인해보면 userid cookie가 설정됨을 알 수 있고, 뒤에 =가 붙어있어 base64형식임을 유추할 수 있다. 이를 decode해보면 128자 길이의 0~9,a~f까지의 문자로 이루어진 문자열이 나오는데 32글자씩 끊어서 해시 Decrypt 사이트에서 검색해보면 각각 t,e,s,t가 나온다. 반대 과정을 거쳐서 admin을 한글자씩 끊어서 HASH화, 그 다음 합쳐서 base64인코딩, 다음으로 url인코딩을 해서 쿠키값에 집어넣으면 문제가 풀리게 된다. 1. md5 encrypt admin -> 0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448..
앞선 문제들과 마찬가지로 스크립트가 주어진다. unlock 값을 콘솔에서 확인한 다음 pw에 넣으면 문제가 풀린다.
문제 소스를 보았을 때, mv(124)를 실행하면 바로 풀릴 것 같다. 실제로도 실행시 바로 풀리게 된다.
주어진 사이트에 접속하려는데 Access_Denied라 뜨면서 튕겨진다. 프록시로 리퀘스트를 분석해보면 ?getFlag에 접속하면 플래그를 주는 것 같다. 접속해보자. 문제가 바로 풀리게 된다.
소스를 보면 다음과 같은 스크립트가 존재하는데, 이를 콘솔에 대입해서 ul값을 찾고 입력하면 문제가 풀린다. 540을 대입시 풀리게 된다.
A1 칸에 FLAG{?????????????}이 주어지고 이 값은 다른 시트지에서 받아오는 것을 확인할 수 있다. 시트지 주소로 접속해보면 접속이 되지 않는다. 그러나 페이지를 불러오는 와중에 평문으로 데이터를 받아왔을 것을 예상해서 시트지 링크를 개발자 도구의 Network 탭에서 검색해보았다. 확인해보면 플래그가 나와있다.
정확히 0개의 옵션을 선택해야 제출이 가능한데.. 하나도 선택하지 않으면 제출이 안되는 그런 상황이다. 혹시나 해서 view-source를 보았는데 플래그가 노출되어있다. ...?
문제 소스를 보면 $pat="/[1-3][a-f]_.*$SERVER[REMOTE_ADDR].*\tp\ta\ts\ts" 의 정규표현식 형태이다. 이게 ?val= 값과 일치하면 풀린다. 정규식을 잘 알고 있는 사람이라면 금방 풀 수 있다. [1-3]은 [1-3]범위에 있는 문자 하나를 지칭한다. 1 [a-f]{5}는 [a-f]범위에 있는 문자 5개를 지칭한다. aaaaa _는 _ .*는 .(아무 문자나 가능) *(0개 이상의 개수) 이므로 아무 문자도 입력하지 않아도 된다. $_SERVER[REMOTE_ADDR]는 내 ip주소 \tp\ta\ts\ts는 탭을 인코딩해서 %09p%09a%09s%09s 형태로 입력하면 된다. ?val=1aaaaa_182.224.141.25%09p%09a%09s%09s를 입력하면 ..