xxe
学点关于xxe的知识,具体从红日安全这篇文章来学
xxe目前我觉得就是通过外部xml的声明,在使用的时候注入内容,达到目的
具体payload先保存一份
1.1 读取任意文件
PHP中可以通过FILE协议、HTTP协议和FTP协议读取文件,还可利用PHP伪协议。
1 | <?xml version="1.0"?> |
XML在各语言下支持的协议有:
1.2 执行系统命令
这种情况很少发生,但在配置不当/开发内部应用情况下(PHP expect模块被加载到了易受攻击的系统或处理XML的内部应用程序上),攻击者能够通过XXE执行代码。
1 | <?xml version="1.0"?> |
1.3 探测内网端口
可根据返回信息内容判断该端口是否打开。若测试端口返回“Connection refused”则可以知道该端口是closed的,否则为open。
1 | <?xml version="1.0" encoding="utf-8"?> |
按照输出信息分为正常,报错,Blind xxe,跟sql注入类似吧
利用bwapp进行过测试,先选择xxe-low等级测试,确实跟文章一样,具体我就不截图了
1 | <reset><login>bee</login><secret>Any bugs?</secret></reset> |
这里有两个元素,就注入这其中一个,文中用第一个,我就用第二个,也是可以成功的,这里用来探测端口开放性
1 |
|
22端口是开放的,他的信息与未开放端口回显不一样
在比如,读取任意文件,读取/etc/passwd
1 |
|
同样也是可以成功
blind xxe需要配合读取日志,这里没有文件包含不做尝试,暂时先放着
本文作者:NoOne
本文地址: https://noonegroup.xyz/posts/d5c9598b/
版权声明:转载请注明出处!