오늘은 SQL Injection을 직접 실험해 볼 것이다.
sql injection이란
입력 값에서 비정상적인 문구를 입력하여 비정상적인 동작을 유발시키는 것이다.
오늘 내가 할 것은
로그인 상태에서 비밀번호로 비정상적인 문구를 입력하여
로그인에 성공해 보겠다.
사용할 sql injection의 원리는
입력한 데이터가 서버로 날라가고 코드에 입력되는데
1' or '1 과 같은 값을 입력하게 되면
코드 상에서 항상 참의 값을 유발하여 로그인에 성공하는 것이다.
다른 예로는 주석처리를 이용하여
sql injection을 시행하는 방법이다.
SQL Injection을 통해 받는 응답을 통해서 페이지 코드를 유추하여
정확하고 원하는 동작을 유발하도록 SQL을 Injection 하는 것이다.
SQL Injectino은 실제 서버에서 사용하면 안된다.
(불법!)
이 공격을 수행해보기 위해
서버를 만들어야한다.
간단하게 php 파일을 생성한다.
(php 파일 생성)
(php 파일 작성)
php 파일을 작성한다.
간단히 로그인창을 만들 것이다.
아이디와 비밀번호를 입력받고
인증하는 페이지다.
로그인 페이지 만드는 과정은 (JSP 혹은 Web 프로그래밍 게시판에 정리하겠다.)
(만들어진 페이지 모습)
이제 이 서버에 공격을 해보겠다.
공격에 앞서 방화벽 부터 체크해야한다.
wafw00f는 웹 방화벽 탐지 프로그램이다.
(웹 서버 IP 주소 입력)
(실행 화면)
실행 화면을 보면
웹 방화벽이 탐지 되지 않았다.
즉 공격이 가능하다는 뜻이다.
이제 sql 구문을 입력해 보겠다.
(sql 구문 입력)
sql 구문을 입력한다.
(로그인 성공)
입력한 sql 문구는
1' or '1
이다.
비밀번호가 아님에도 불구하고 로그인에 성공하였다.
공격 성공!
이 공격을 탐지 할 수 있을까?
서버에서 wireshark를 동작시키고있었다.
(wireshark 동작)
패킷 캡쳐를 중단하고
conversations 로 들어가 패킷을 확인해 볼것이다.
많은 양의 패킷의 경우 conversation 항목으로 쉽게 패킷 내용을 볼 수 있다.
(일일이 패킷내용을 보기 힘드므로.)
(conversation 클릭)
(패킷 Follow Stream)
공격자 (120번) 이 접속한 내용을 확인해보겠다.
패킷을 클릭해서 Follow Stream 을 클릭한다.
(패킷 내용)
패킷 내용을 확인해보니
패스워드에 비정상적인 값이 입력된 것을 확인 할 수 있었다.
'Hacking > Kali penetration' 카테고리의 다른 글
모의 해킹(Kali) - Spear Phishing Attack Vectors (3) | 2017.01.16 |
---|---|
모의해킹(Kali) - Mass Mailer Attack (0) | 2017.01.15 |
모의해킹(Kali) - 패스워드 크랙(FTP서버) (0) | 2017.01.12 |
모의해킹(Kali) - DNS Spoofing, Ettercap (0) | 2017.01.07 |
Kali - ARP Spoofing, Sniffing 공격 (0) | 2017.01.06 |