Today I Learned …
[Lord of SQL Injection] 16번 succubus 풀이 본문
* 개인적인 공부 내용을 기록한 글입니다.
이전 문제
https://choco4study.tistory.com/103
16번 문제 succubus 분석 및 풀이
16번 문제는 다음과 같다.
보자마자 드디어 그 문제구나! 싶었다.
싱글쿼터 우회에는 두 가지 방법이 있다.
첫번째는 그냥 더블쿼터를 쓰는 것이다.
그러나 더블쿼터로는 서버측 쿼리문에 열려있는 싱글쿼터를 닫아줄 수가 없기 때문에 쿼리문을 원하는 방향으로 아예 틀어줄 수는 없다.
두번째는 아주 한정적인 상황에서만 쓸 수 있는 방법이다!
이번 문제처럼 두개 이상의 파라미터를 받고 있을 때, 그리고 둘 모두 싱글쿼터에 감싸져 있을 때만 사용할 수 있다.
그 내용은 다음과 같다.
id=' ' and pw=' '
id='\' and pw=' or 1=1 %23 '
바로 요것이다.
첫번째 파라미터로 역슬래시(\)를 줘서 바로 뒤의 싱글쿼터를 일반 문자로 이스케이프 시켜주는 것이다.
그렇게 해주면 빨간색 부분이 통째로 id의 파라미터가 되어버린다.
그 후, 두번째 파라미터로 or 1=1 %23 을 주면 문제없이 첫번째 레코드를 뽑아올 수 있게 된다.
(∵ FALSE or TRUE ⇒ TRUE 가 되므로)
따라서, 입력할 답은
id=\&pw=or 1=1 %23
이다.
답을 넣어보면,
16번 문제가 풀린다.
'Wargame > Lord of SQL Injection' 카테고리의 다른 글
[Lord of SQL Injection] 18번 nightmare 풀이 (0) | 2021.12.12 |
---|---|
[Lord of SQL Injection] 17번 zombie_assassin 풀이 (0) | 2021.12.10 |
[Lord of SQL Injection] 15번 assassin 풀이 (2) | 2021.12.09 |
[Lord of SQL Injection] 14번 giant 풀이 (0) | 2021.12.09 |
[Lord of SQL Injection] 13번 bugbear 풀이 (0) | 2021.12.09 |
Comments