728x90
이번 포스트에서는 Lord of SQLInjection의 darkelf문제에 대해 다루겠다.
문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다.
## 문제 해석 :
해당 문제는 preg_match() 함수를 통해 prob, _, .,(, ), or, and를 필터링한 것을 알 수 있다.
또한 id값이 admin일때만 문제를 해결할 수 있는 것으로 보인다.
## 문제 풀이 :
먼저, 원래의 쿼리문을 무효화 시키고 id값이 admin이 되도록 만들어본다.
### 사용할 공격문 : pw=' or id='admin
### 실행 결과 :
예상했던 대로 "OR"이 필터링된 것을 확인할 수 있다.
그럼 문자로 된 OR말고 OR연산자의 기호를 통해 공격문을 작성해보겠다.
참고로 OR연산자의 기호는 "||"이다.
### 사용할 공격문 : pw=' || id='admin
### 실행 결과 :
## 추가 해석 :
SQL Injection 우회에 자주 사용될 연산자 우회를 정리하자면 다음과 같다.
연산자 | 우회 방법 |
OR | - || |
AND | - && - URL Encoding : %26%26 |
= (등호) | - like ex) pw like "%a%" - in ex) pw in "1234" - instr() ex) instr(pw, "password") - <, > ex) length(pw) = 8 ---> length(pw) > 7 and length(pw) < 9 |
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
Lord of SQLInjection (8. troll) (0) | 2022.05.21 |
---|---|
Lord of SQLInjection (7. orge) (0) | 2022.05.20 |
Lord of SQLInjection (5. wolfman) (0) | 2022.05.18 |
Lord of SQLInjection (4. orc) (0) | 2022.05.17 |
Lord of SQLInjection (3. goblin) (0) | 2022.05.16 |