쉽고 깔끔하게
[LOS ; Lord of SQL Injection] 16번 succubus 문제풀이 본문
728x90
반응형
문제
https://los.rubiya.kr/chall/succubus_37568a99f12e6bd2f097e8038f74d768.php
풀이
- preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수
- $pattern : 문자열로 검색할 패턴
- $subject : 입력 문자열
- [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둠
따라서 얻을 수 있는 정보로는 id와 pw의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다.
1) prob
2) _
3) .
4) ( )
5) '
여기서 가장 중요한 점은 ' 을 필터링 한다는 점이다. 따라서 preg_match의 필터링을 피하기 위해서 \ 를 이용하고자 한다.
\ 를 사용하게 되면 이스케이프 처리가 되고, 이는 쿼리문에 영향을 미치지 않는 일반 문자열이 된다.
따라서 id=\ 를 입력하게 되면 쿼리문이 SELECT id FROM prob_succubus WHERE id='\' and pw='' 이 되면서 노란색으로 표시된 부분이 문자열로 인식된다.
결과적으로 id=\&&pw=or 1=1%23를 입력하면 문제를 해결할 수 있다.
728x90
반응형
'WebHacking > LOS' 카테고리의 다른 글
[LOS ; Lord of SQL Injection] 18번 nightmare 문제풀이 (0) | 2022.04.07 |
---|---|
[LOS ; Lord of SQL Injection] 17번 zombie_assasin 문제풀이 (0) | 2022.04.05 |
[LOS ; Lord of SQL Injection] 15번 assassin 문제풀이 (0) | 2022.03.31 |
[LOS ; Lord of SQL Injection] 14번 giant 문제풀이 (0) | 2022.03.30 |
[LOS ; Lord of SQL Injection] 13번 bugbear 문제풀이 (0) | 2022.03.28 |