-
[Lord of SQLInjection] #18 nightmare[+] Security [+]/Lord of SQLInjection 2020. 5. 4. 05:11
18번째 문제 악몽!
코드를 살펴보자면
비밀번호를 입력해서 레코드를 조회해야하는데 id != 'admin'이라고 admin으로 조회하는 걸 막아놨다.
여느때와 같이 prob과 _ . ( ) 는 필터링 되어있고
# 과 - 도 막혀있어서 id!='admin' 부분을 날려버릴수도 없고?
뭔가 한가지 빠져있는거같은데?
; + (null)로 쿼리를 끊어 버릴 수 있지 않은가?
이번엔 쿼리가 pw가 id보다 앞서 있는 형태다.
쿼리를 끊어버리세요~ 가 출제자의 의도인 듯 하다.
좋아! 쿼리를 끊어버리는 것까지는 알겠으나
if(strlen($_GET[pw])>6) exit("No Hack ~_~"); 에서 글자수를 6글자까지로 제한을 걸어 놨다.
쿼리를 ')하고 닫고 ;%00 까지 만 4글자를 쓰는데 어떻게 하란 말인가??
;%00 으로 쿼리를 끊는 것과 ')까지는 확실히 필요한 부분인데 말이다.
닫힌 쿼리는 ('')
거짓 = 거짓 은 True가 된다
이 두가지를 알아야 한다!
')=0;%00 을 삽입하여 문제를 해결했다.
딱 6글자네!
여튼!
'[+] Security [+] > Lord of SQLInjection' 카테고리의 다른 글
[Lord of SQLInjection] #20 dragon (0) 2020.05.04 [Lord of SQLInjection] #19 xavis (0) 2020.05.04 [Lord of SQLInjection] #17 zombie_assassin (0) 2020.05.04 [Lord of SQLInjection] #16 succubus (0) 2020.05.04 [Lord of SQLInjection] #15 assassin (0) 2020.05.04