write-up(web)/LOS
[Lord of SQLInjection] zombie_assassin write-up
ssongk
2022. 8. 1. 17:11
문제의 소스 코드입니다.
where 절의 조건을 참으로 만드는 게 문제의 목표입니다.
사용자에게 입력을 받아 addslahses 함수를 적용한 뒤 strrev 함수로 문자열을 뒤집습니다.
addslashes 함수는 ', ", \, nul byte에 \ 문자를 추가해 일반 문자로 만들어줍니다.
그래서 where 절의 조건 부분인 id='' and pw'' 를 조작해 id=' and pw' 가 되도록 만들어줘야 합니다.
또한 strrev 함수에 의해 ', ", \, nul byte(\0)는 각각 '\, "\, \\, 0\로 나오게 됩니다.
먼저 id에 nul(%00)을 넣어줘서 뒤의 '를 일반 문자로 바꿔주면 0\' and pw' 까지 id에 들어가게 됩니다.
이후 무조건 참이 되는 조건을 뒤에 넣어주면 됩니다.
pw에 남은 하나의 '문자는 주석(#,%23)으로 날려주면 문제가 풀립니다.