728x90
이번 포스트에서는 Lord of SQLInjection의 zombie문제에 대해 다루겠다.
문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다.
## 문제 해석 :
해당 문제는 preg_match() 함수를 통해 rollup, join, ace, @를 필터링하고 있다는 것을 알 수 있다.
또한 pw값을 알아야 문제를 해결할 수 있는 것으로 보인다.
## 문제 풀이 :
ace가 필터링 처리되어 replace() 함수를 사용하지 못한다. 따라서 다른 방식으로 접근해야 한다.
DB의 information_schema에는 processlist이라는 테이블이 존재한다. 해당 테이블에는 현재 실행 중인 쿼리가 저장되어 있다.
따라서 이를 활용하면 문제를 쉽게 해결할 수 있다.
### 사용할 공격문 : pw=' union Select substr(info, 38, 72) from information_schema.processlist%23
### 실행 결과 :
## 추가 해석 :
쿼리문 : pw=' union Select substr(info, 38, 72) from information_schema.processlist%23
싱글 쿼리 이후의 값만 원하므로 substr() 함수를 통해서 잘라낸 다음에 서버로 전송하였다.
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
Lord of SQLInjection (30. ouroboros) (0) | 2022.06.29 |
---|---|
Lord of SQLInjection (29. phantom) (0) | 2022.06.28 |
Lord of SQLInjection (28. frankenstein) (0) | 2022.06.23 |
Lord of SQLInjection (27. blue_dragon) (0) | 2022.06.21 |
Lord of SQLInjection (26. red_dragon) (0) | 2022.06.20 |