记一次Vulnhub-XXE靶场全过程(详细)

xxe靶场下载地址:https://download.vulnhub.com/xxe/XXE.zip

(国外网站下载慢)

一、准备靶场环境:

下载完压缩包(解压):

点开虚拟机:

然后打开虚拟机:

如果发现不了靶机ip,建议勾选如图设置

二、信息收集:

因为靶场网络是随机分配的,所以把kali放在同一网段,然后进行扫描主机确定靶场IP地址(通过arp协议):

Ip192.168.120.128是靶场地址

确认后进行端口扫描:

只开放了80 端口,游览器访问:

发现是默认apache2页面,进行目录扫描:

dirsearch命令工具扫描目录:

发现robots.txt,猜测是源码泄露,访问

三、漏洞发现和利用

发现网址后台,再访问:

因为是xxe靶场,于是猜测登录是用xml数据传输,使用bp抓取登录包内容:

发现是xml格式,于是构造poc

访问本地xxe.php的源码,用base64格式输出。解码得:

<?php

libxml_disable_entity_loader (false);

$xmlfile = file_get_contents('php://input');

$dom = new DOMDocument();

$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);

$info = simplexml_import_dom($dom);

$name = $info->name;

$password = $info->password;

echo "Sorry, this $name not available!";

?>

无作用,想起之前的admin.php,同样查看admin.php的源码:

解码得(部分):

 

               if ($_POST['username'] == 'administhebest' &&

                  md5($_POST['password']) == 'e6e061838856bf47e1de730719fb2609') {

得到登录密码,因为是在admin.php的源码里于是访问admin.php网址:

MD5加密的password在网站解得:

登录进去:

点击flag发现404错误,但是有新的文件名

于是再依靠上面的xxe漏洞查看flagmeout.php的源码:

解base64得

<?php

$flag = "<!-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) -->";

echo $flag;

?>

 全是大写字母和数字,猜测是base32加密:

base64解密发现路径:

发现路径,再次依靠上面的xxe漏洞读取源代码:

解码得:

$_[]++;$_[]=$_._;$_____=$_[(++$__[])][(++$__[])+(++$__[])+(++$__[])];$_=$_[$_[+_]];$___=$__=$_[++$__[]];$____=$_=$_[+_];$_++;$_++;$_++;$_=$____.++$___.$___.++$_.$__.++$___;$__=$_;$_=$_____;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$___=+_;$___.=$__;$___=++$_^$___[+_];$Ã=+_;$Ã=$Ã=$Ã=$Ã=$Ã=$Ã=$Ã=$Ã=$Ã=++$Ã[];$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$Ã++;$__('$_="'.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.$___.$Ã.$Ã.$Ã.'"');$__($_);

看不懂,但是是flag.php里的内容,猜测是php代码,于是放入在线的php环境或者自己的 网站查看:

注意!php解析器版本是php5才能正常解析出flag,版本过高都会显示不出flag。

                        那么最后感谢你的阅读,点个赞吧。如果有错误欢迎指正。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值