-
SQL injection 바로 잡기 #1 Error Based Blind SQL injection 9eNWargame Site/SQL injection 2019. 5. 20. 00:19
최근 SQL injection 실습 사이트를 만들어보면서 그 간 공부하면서 잘못 잡았던 개념들을 정리하고자
SQL injection 바로 잡기 섹터를 구성했다.
직접 구현해보지 않으면 모를만한 내용을 다룰 예정이다.
Los 28 번 문제인 프랑켄슈타인의 궁금점이 사이트 구축을 통해서 해결이 되었다.
9eN 의 문제였다.
근본적으로 Error 의 종류부터가 다른 것이었다.
1. Syntax Error
2. Logical Error
문법 에러는 Query 자체가 실행되지 않은 채로, 바로 에러 메세지를 반환하는 특성을 지니고 있다.
하지만, 논리적 에러는 Query 자체는 실행이 되지만, 논리적 오류로 인해 메세지를 반환하는 특성을 지니고 있다.
따라서, Error Based SQL injection 을 하기 위해서는 Logical Error 를 이용해야 한다는 점이 위 고민의 핵심이었다.
9eN 의 형태에서
N 이 308 이상의 숫자의 경우 Syntax Error 에 해당되어 Query 자체가 문법적오류를 일으킨다.
그 말은 307 로는 문법적 오류가 나지 않는다 즉, 307 은 Error Based SQL injection 에 적합한 숫자이다.
추가적으로 9e307*N 을 했을 때, N 이 1.96... 이상의 값을 사용하게 되면
Logical Error 에 해당하는 Boundary Error 가 발생하면서
문제를 해결할 수 있는 것이었다.
이 부분에 대해서 너무너무너무 궁금했기 때문에 알고 나니 너무 후.련.했.다.
여느 블로그에서도 N 을 308 이상의 값을 사용하지 않는 것이 이 이유 때문이다.
이를 이해하기 위해 사이트를 직접 구생해보고 테스트 해봤다.
부디 읽으시는 분들도 이 개념을 바로 잡으셨으면 좋겠습니다 ^^
아, 그리고 이제 곧 출간될 책에 이 내용이 더 자세하게 기재되어 있습니다 ~ 많은 홍보 부탁드릴게요
'Wargame Site > SQL injection' 카테고리의 다른 글
SQL injection 바로 잡기 #3 Bool Value (0) 2019.05.20 SQL injection 바로 잡기 #2 문자와 숫자의 비교 (0) 2019.05.20 Test 중입니다. (0) 2019.05.15 SQL injection 06 (풀어보세요) (0) 2019.04.28 |Lord of SQL_injection| #33 Allclear (0) 2019.04.08 댓글