-
[CrackUs] LEVEL 13[+] Security [+]/CrackUs 2020. 7. 18. 20:59
LEVEL 13
$result['pw']==$_GET['pw'] 를 보니 이번에도 Blind SQL Injection 문제다.
하지만 이번엔 조금 다른 것이 substr을 필터링 해놓았다.
이전에 풀었던 or 필터링 문제에서 설명해 놓은 것 처럼 or 와 || 를 둘다 필터링 해놓지 않으면 무의미하다.
substr또한 마찬가지다, mid, left right 로 대체가 가능하다.
substr이 mid로 대체된다는 점을 알기만하면 LEVEL 11 문제와 별반 다르지않다고 생각했다
음...? 왜 안풀리지...?
문제는 $result['pw']==$_GET['pw'] 의 의미는 데이터베이스에서 가져온 pw와 URL쿼리에 삽입한 pw가 정확히 일치해야한다.
대소구분을 하지않는 mysql특성상 'AbCd' 와 'ABCD'가 True 지만 PHP에선 그렇지 못하다.
그래서 result에 값이 들어있나 $result['pw']==$_GET['pw'] 는 만족하지 못하므로, else if (%result) {echo "Good J0b :D;}으로 넘어가버린다.
이제야 LEVEL 10문제에서 대문자로 입력했을때 먹히지 않은 까닭을 알겠다!
Python 코드를 수정하여 문제를 해결하였다.
[Lord of SQLInjection] #11 golem
이제 11번째 몬스터! 골렘이다. 이제 뭔가 중간급 몬스터가 나온듯하다. 골렘! 좋아! 코드를 살펴보면 or and sutstr( = 등이 모두 필터링 되어있고, 최종적으로 요구하는 것은 admin의 비밀번호를 정확
devjounal.tistory.com
'[+] Security [+] > CrackUs' 카테고리의 다른 글
[CrackUs] LEVEL 15 (1) 2020.07.18 [CrackUs] LEVEL 14 (0) 2020.07.18 [CrackUs] LEVEL 12 (0) 2020.07.18 [CrackUs] LEVEL 11 (0) 2020.07.18 [CrackUs] LEVEL 10 (1) 2020.07.17