原文链接:https://jspin.re/fileupload-blind-sqli/
这将是一篇简短的博客文章和关于Bug Bounties的第一篇文章,我正试图更多地参与这个问题,我正在寻找漏洞我的业余时间和90%的时间在Synack上。
本月初我被邀请参加在HackerOne上运行的私人bug赏金计划,由于一些特殊的原因,我不会在这里告诉公司的名字。
我问了一些朋友,如果他们知道应用程序中有一些他们愿意与我分享的“fishy”区域,那么我自己就会进入这个相同的程序,这就是朋友的意思。
与https://twitter.com/reefbr交谈后,他向我发送了一个关键域(范围内)的自注册页面。注册过程没有任何问题,在点击发送按钮后几秒钟,我收到了一封包含访问详细信息的电子邮件。
在用户注册中发现一些问题,在应用程序中找到文件上传功能非常快。文件上传功能很简单,所以我尝试上传一个随机文件,看看应用程序是否有任何安全控制。我发现的限制是:
只接受PDF文件
AV在后端服务器上运行
在浏览上传功能后,我意识到应用程序只验证文件类型扩展名,例如“ filename .pdf ”。我尝试绕过这个验证,我在一些方面取得了
成功,但最终我没有在服务器端达到任何执行,是时候改变策略了。
回到过去,当我作为Penetration Tester履行我的官方日常职责时,我遇到了一个将文件名包含到数据库中的Web应用程序,据我记得那时
我在文件名中有一个Blind(基于时间的)SQL注入参数。那么,为什么不在这个应用程序中测试?
Burp Proxy设置为拦截HTTP请求,然后我点击应用程序中的Upload按钮并将原始filename参数替换为:
注意:我尝试发送没有.pdf扩展名的请求,但应用程序拒绝了。顺便说一下,这是Burp Scanner用于主动测试的相同Payload。
该应用程序在Cloudflare WAF “后面”运行,因此在尝试确认应用程序是否易受攻击之后,我的所有请求都收到了“拒绝访问”消息。
现在是时候回到https://twitter.com/reefbr,向Manoel报告绕过Cloudflare到同一个程序并再次......他告诉了我这件事。
使用@reefbr找到的bypass(配置问题)我确实设法确认SQL注入(最后)。
下面是我的PoC。初步要求如下:
让我们增加sleeping time...
慢慢的增加 sleeping time:
让我们确保分类小组能够理解并能够重现,所以+1进行请求......
这是所有的内容,希望你喜欢。
最后一点,这个私人程序正在处理非常敏感的信息(PII),因此提取任何数据会给程序所有者带来新的问题。考虑到这一点,
我选择使用睡眠Payload继续开发过程,并比较响应时间以证明漏洞。
已发送报告
报告分类
已解决的报告(已修复错误)
赏金支付