본문 바로가기
CTF/los

[CTF] Lord of SQLInjection 16번 zombie_assassin Write-Up

by spareone 2026. 3. 10.
[그림 1] 문제 메인 페이지

15번 문제와 비슷한 코드인데, 이번엔 ‘ 검열 대신 strrev(addslashes()) 함수가 있습니다.

select id from prob_zombie_assassin where id='{$_GET[id]}' and pw='{$_GET[pw]}'

이 문제도 id와 pw를 입력받으며, 이것들을 잘 이용해 인젝션하면 됩니다.

‘를 입력하게 되면, addslashes() \’가 되고, strrev()로 인해 최종적으로 ‘\가 됩니다.

[그림 2] NULL을 입력한 모습

addslashes() 작동 범위는 ‘ ” \ NULL 입니다.

NULL을 넣어보니 0\로 된 것을 확인할 수 있습니다.

그러면, \%00을 넣으면 0\’\가 되어 \’가 생기게 됩니다. 이는 일반 문자열 역할을 하게 됩니다.

select id from prob_zombie_assassin where id='0\'\' and pw=' or 1#'

최종적으로 이런 쿼리를 만들면 됩니다.

pw에도 저렇게 들어갈 수 있도록 거꾸로 입력해야 합니다.

[그림 3] 문제 정답처리

알맞게 넣으면 문제가 정답처리 됩니다.


댓글