728x90
이번 포스트에서는 Lord of SQLInjection의 vampire문제를 다루겠다.
문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다.
## 문제 해석 :
해당 문제는 preg_match() 함수를 통해 '를 필터링하고 있으며, strtolower() 함수를 통해 입력된 값을 소문자로 바꾸고, str_replace() 함수를 통해 admin을 공백으로 바꾼 것을 알 수 있다.
또한 id값이 admin일때만 해당 문제를 해결할 수 있는 것으로 보인다.
## 문제 풀이 :
우선 ADMIN을 넣어서 시도해보겠다.
### 사용할 공격문 : id=ADMIN
### 실행 결과 :
화면에 변화가 없다. 즉, 우리가 입력한 ADMIN이 admin으로 변경된 다음에 str_replace()에 의해 공백으로 치환된 것이다.
그럼 admin을 2번 입력하여 공격을 시도해보겠다.
### 사용할 공격문 : id=adadminmin
### 실행 결과 :
## 추가 해석 :
쿼리문 : id=adadminmin
여기서 우리가 입력한 공격문 중의 ad와 min사이의 admin이 치환되어 남은 쿼리가 admin이 되므로 공격에 성공한 것이다. 즉 ad'admin'min -> ad''min -> admin의 순서로 동작하여 admin이라는 값이 나온 것이다.
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
Lord of SQLInjection (11. golem) (0) | 2022.05.27 |
---|---|
Lord of SQLInjection (10. skeleton) (0) | 2022.05.25 |
Lord of SQLInjection (8. troll) (0) | 2022.05.21 |
Lord of SQLInjection (7. orge) (0) | 2022.05.20 |
Lord of SQLInjection (6. darkelf) (0) | 2022.05.19 |