일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- blind sql injection
- IF문
- object
- document
- 객체
- 포인터
- 메소드
- 백준 알고리즘
- jQuery
- 파이썬
- xss game 풀이
- lord of sql injection
- Pwndbg
- 자바스크립트
- python
- xss game
- burp suite
- htmlspecialchars
- 사칙연산
- 조건문
- 함수
- sql injection
- 김성엽 대표님
- 백준 파이썬
- suninatas 풀이
- github
- property
- window
- element 조회
- 배열
- Today
- Total
power-girl0-0
[ Los ] goblin 본문
[ 문제 ]
[ 풀이 ]
1) 10줄
소스를 확인해보면 id가 admin일 때 문제를 클리어할 수 있다.
2) 6줄
해당 query문을 확인해보면, id는 guest로 지정되어 있으며 no만 입력받아 오는 것을 알 수 있다.
따라서, id를 guest가 아닌 admin으로 넣어야 문제를 클리어할 수 있다.
먼저, no에 특정 값인 1을 넣어보자.
실행 결과, hello guest가 출력되는 것을 확인할 수 있다.
그렇다면, 0 값을 넣으면 어떻게 될까?
아무것도 출력되지 않는다.
즉, guest에 해당되는 no는 1이라는 것을 알 수 있다.
OR 을 이용해서 id 에 admin 을 입력해보자.
OR 연산자는 둘 중 하나만 참이어도 TRUE로 나온다.
해당 원리를 이용하여 id='guest' and no=0을거짓(False)으로 만들고 id=admin은 참(True)으로 만들 수 있다.
? no=0 or id='admin'
실행 결과, 다음과 같이 ' No Quotes ~.~ ' 문장이 출력된다.
' No Quetes ~.~ ' 문자열에 의미에 대해서 알아보자.
3) 5줄
소스를 보니 "No Quetes ~.~" 문자열에 대한 소스를 찾을 수 있었다.
preg_match 는 PHP4, 5, 7에서 지원하는 함수로, 정규표현식 중 하나이며 지정한 패턴이 일치하면, 검색 결과를 반환해주는 함수이다.
즉, 해당 페이지는 preg_match함수를 이용하여 ' (작은 따옴표), " (큰따옴표), \ 를 필터링하고 있다.
' (작은 따옴표) 를 사용하지 말고, 값을 넣어보자!
' (작은 따옴표)를 사용하지 않고도 값을 넣을 수 있는 방법은 두가지가 있다.
방식 1. 문자열을 16진수로 바꿔서 넣어준다.
admin을 16진수로 바꿔줘서 값을 넣어보자.
( 16진수로 바꿀 수 있는 사이트 -> https://www.percederberg.net/tools/text_converter.html )
16진수로 바꾸니 0x61646D696E가 출력되었다. ( 16진수는 맨 앞에 0x 를 붙여서 표현한다. )
? no=0 or id=0x61646D696E
성공적으로 문제를 클리어 하였다.
방식 2. char( )함수를 이용하여 값을 넣어준다.
char()함수는 mysql의 내장함수로, 아스키 코드를 바꿔주는 함수이다.
즉, char()함수는 ' ( 작은 따옴표 ) , " ( 큰 따옴표 ) 를 사용하지 않고도 문자열을 입력할 수 있다.
? no=0 or id=char(97,100,109,105,110)
3번 문제인 goblin문제도 클리어 /(@^0^@)/
'War game > Lord of SQL Injection' 카테고리의 다른 글
[ Los ] darkelf (0) | 2021.03.20 |
---|---|
[ Los ] wolfman (0) | 2021.03.20 |
[ Los ] orc (0) | 2021.03.19 |
[ Los ] cobolt (0) | 2021.01.25 |
[ Los ] gremlin (0) | 2021.01.25 |