코드 분석
id와 pw 두 문자열 모두 따옴표가 있는지 체크한다.
공격 기법
따옴표가 필터링되어 있어 escape가 불가능해 보이지만, '\' (역슬래시)를 이용하면 뒤에 오는 따옴표를 문자로 처리할 수 있다.
자세한 설명
만약, id에 \ 를 주입하게 되면 무슨 일이 생기는지 알아보자
\로 인해 바로 뒤에 있는 싱글 쿼터가 id와 비교하는 문자열을 닫아주지 않고, 실제 문자 '로 받아들여 뒤에 있는 and pw = ' 까지 id와 비교하는 문자열로 치환된다.
이제 pw에 or 1 # 을 주입한다면 아래와 같은 쿼리가 완성되어 참을 반환할 것이다.
'Web > Lord of Sql injection' 카테고리의 다른 글
nightmare 문제 풀이 (0) | 2023.09.12 |
---|---|
zombie_assasin 문제 풀이 (0) | 2023.09.11 |
assasin 문제 풀이 (0) | 2023.09.10 |
giant 문제 풀이 (0) | 2023.09.10 |
bugbear 문제 풀이 (0) | 2023.09.10 |