쉽고 깔끔하게
[LOS ; Lord of SQL Injection] 3번 goblin 문제풀이 본문
728x90
반응형
문제
https://los.rubiya.kr/chall/goblin_e5afb87a6716708e3af46a849517afdc.php
풀이
- preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수
- $pattern : 문자열로 검색할 패턴
- $subject : 입력 문자열
- [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둠
따라서 얻을 수 있는 정보로는 no의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다.
1) prob
2) _
3) .
4) ( )
5) '
6) "
7) `
이전 문제들과는 다르게 싱글 쿼터(')와 더블 퀴터(")를 필터링하고 있어 기존의 공격은 사용할 수 없다.
또한 문제를 해결하기 위해서는 id의 값이 admin이어야 한다.
그러므로 스트링 우회를 통해 문제를 해결하고자 한다.
먼저 guest의 no 값을 알아보기 위해 숫자를 대입해본 결과, id = guest인 경우 no = 1이라는 것을 확인할 수 있었다.
이를 통해 알 수 있는 것으로는 guest의 no가 1이기 때문에 admin의 no는 1이 아닌 다른 숫자라는 것이다.
결과적으로 no=0 (guest의 no 값인 1을 제외한 다른 숫자)와 adamin의 hex(16진수) 값인 0x61646d696e을 통해 다음과 같은 쿼리문을 작성하여 문제를 해결할 수 있다.
▶︎ no=0 or id=0x61646d696e
▶︎ no=0||id=0x61646d696e
728x90
반응형
'WebHacking > LOS' 카테고리의 다른 글
[LOS ; Lord of SQL Injection] 6번 darkelf 문제풀이 (0) | 2022.03.16 |
---|---|
[LOS ; Lord of SQL Injection] 5번 wolfman 문제풀이 (0) | 2022.03.15 |
[LOS ; Lord of SQL Injection] 4번 orc 문제풀이 (0) | 2022.03.14 |
[LOS ; Lord of SQL Injection] 2번 cobolt 문제풀이 (0) | 2022.03.10 |
[LOS ; Lord of SQL Injection] 1번 gremlin 문제풀이 (0) | 2022.03.10 |