Web Security/web hacking
SQL injection 취약 부분 찾기
minpo
2024. 10. 24. 03:55
웹 CTF를 풀다가 실제 웹 사이트의 취약점을 찾을 때, 취약한지 취약하지 않은지 빠르게 확인하는 절차가 필요하다. 아무래도 CTF의 경우 SQL injection 문제의 경우 확실히 input 요소에 sql 구문을 잘 넣기만 하면 된다는 것을 알고 있다. 하지만 버그 바운티 등 실제 사이트는 아니다. 또한 소스코드의 유무에서 차이가 난다.
그렇다면 어떻게 빠르게 취약점의 존재여부를 확인할 수 있을지가 문제가 된다.
만약 ?indexPage=1이라는 파라미터가 존재한다면 2-1과 같이 산술연산을 통해서 확인을 할 수 있다. 에러가 발생하지 않고 page=1를 반환한다면 취약한 점이 존재하는것이다.
?indexFind = hello의 처럼 문자를 넣는 경우 hel' 'lo처럼 연결연사자를 사용할 수 있다. 연결 연산자란 python에서 문자열을 + 으로 합치는 것과 같은 것이다.
물론 DB마다 sql이 작동되는 방식이 다르다
mysql : 'te' 'st' = > test
sqllite,oracle : 'te' || 'st' => test
MSSQl : 'te'+'st' => test
이를 잘고려해야됨