简单的记一次xxe,复习复习
首先拿到这个题
根据题名就知道是xxe漏洞
这里不复习什么是xxe,只是大概总结一下基本做题方法方向。
首先当然是构造恶意外部实体
基本构造方法如下
例
<!DOCTYPE ANY [ <!ENTITY test SYSTEM "file:///flag"> ]>
“file:///flag” 引号里的内容可以根据实际情况改变
有 file:///flag file协议读取flag(注意目录)
以下是内网探测命令
file:///etc/hosts
file:///proc/net/arp
file:///proc/net/tcp
file:///proc/net/udp
file:///proc/net/dev
file:///proc/net/fib_trie
还有常见的读取密码
file:///etc/passwd
以下为php://filter伪协议读取文件内容 resource后加路径
php://filter/read=convert.base64-encode/resource=
以下为访问存活主机
这里就以此题为例
第一步抓提交账号密码的包
第二步修改包
注意这里的提交账号名称需与xml里的根元素名称一致 即 admin 和&admin 对应
我这里是查找存活主机
其他网上别的答案可能不同,他们直接读取flag ,但是我尝试并不可以,可能是buuctf改了题吧
之后发现ip
注意如果用其他的内网探测命令可能查到假ip 也不能这样说 就是无用的ip 例如查到我图中的169.254.1.1 是没用的
查到ip之后尝试访问
只能说想得美
没那么容易,可以发现失败了,于是很自然的爆破ip的最后一位(确实很自然)
如下
找到长度最短的 查看响应包 获取flag