xxe漏洞(xml外部实体注入漏洞)

admin 2024年1月18日11:25:39评论33 views字数 1129阅读3分45秒阅读模式

想要挖掘一个漏洞我们首先就要知道这个漏洞是如何产生的。

1.漏洞产生原理

XXE漏洞就是攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题

也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入

2.漏洞利用

payload注入XML文件中,一旦文件被执行,将会读取服务器上的本地文件,并对内网发起访问扫描内部网络端口。

有回显和无回显:有回显的情况可以直接在页面中看到Payload的执行结果或现象,无回显的情况又称为blind xxe可以使用外带数据通道提取数据

3.靶场案例讲解——使用pikachu-xxe讲解

在这里给大家推荐:http://114.116.45.110/里面有各种靶场,不想自己搭建的小伙伴可以使用一下

正常回显XXE

正常回显XXE是最传统的XXE攻击,在利用过程中服务器会直接回显信息,可直接完成XXE攻击。

报错XXE

报错XXE是回显XXE攻击的一种特例,它与正常回显XXE的不同在于它在利用过程中服务器回显的是错误信息,可根据错误信息的不同判断是否注入成功。

盲注XXE

当服务器没有回显,就需要选择使用盲注了。可组合利用file协议来读取文件或http协议和ftp协议来查看日志。

1.查看受攻击机的服务器日志
2.
通过Dnslog平台查看是否进行查询
3.Burp Collaborator Everywhere
插件验证

进入靶场可以看到一个接收xml数据的api,那么我们在实施攻击之前判断一下有无回显:

<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe "
小黑子" > ]>
<a>&xxe;</a>

输入上述payload之后回显了小黑子说明存在回显。注意:只能判断是否存在回显,不能判断是否支持外部实体。

xxe漏洞(xml外部实体注入漏洞)

在知道存在回显后,可以尝试读取一些敏感目录,比如读取c:/windows/win.ini,它是每个windows系统都有的,linux系统的的话可以读取/etc/passwd,当然想要读取其他文件目录,只需更改绝对路径即可(file://协议只能用绝对路径)

payload

<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini"> ]>
<a>&xxe;</a>

xxe漏洞(xml外部实体注入漏洞)

成功读取文件内容。

4.危害

1.DOS攻击

2.SSRF攻击

3.使用file协议读取任意文件

4.端口探测

5.利用支持的协议执行系统命令

5.防护

1.禁用外部实体

2.过滤和验证用户提交的XML数据

原文始发于微信公众号(小黑子安全):xxe漏洞(xml外部实体注入漏洞)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月18日11:25:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   xxe漏洞(xml外部实体注入漏洞)http://cn-sec.com/archives/2405002.html

发表评论

匿名网友 填写信息