安全渗透学习- Pikachu(XXE)

XXE(XML External Entity Injection) XML外部实体注入

与SQL注入相对应,XXE就是在可以解析XML的地方(比如一个输入框等处)只要可以解析XML语言的代码就可以,在这种地方提交XML的恶意代码来执行。

XXE漏洞主要也是因为没有对用户输入(用户提交的数据,比如你在输入框输入这个XML恶意代码)并没有合理检测与过滤,将用户提交的数据当XML来执行,造成XXE(XML外部实体注入),最简单的利用方法其实就是用hackbar V2里的XXE选项,它自带了XXE的payload生成功能,直接复制然后放到输入框(可以解析XML代码的地方)就可以了。

所以要了解XXE漏洞,首先需要学习了解XML的组成

XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言 (就是如果数据都放到html中的话整个html就会显得特别臃肿,由此,html只用来展示网页的页面,而XML则用来负责存储和传输相关的数据,各司其职)

XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素

XXE漏洞的话主要是因为DTD的部分出了问题

常见的XML语法结构如下所示

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。

DTD 可以在 XML 文档内声明,也可以外部引用。

DTD(Document Type Definition,文档类型定义),用来为 XML 文档定义语法约束,可以是内部申明也可以使引用外部DTD现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。

 内部申明DTD格式 

<!DOCTYPE 根元素 [元素申明]>

 外部引用DTD格式

<!DOCTYPE 根元素 SYSTEM "外部DTD的URI">

引用公共DTD格式

<!DOCTYPE 根元素 PUBLIC "DTD标识名" "公共DTD的URI">

pakachu靶场安装:

直接利用docker安装

sudo docker run -d -p 8000:80 area39/pikachu:latest

然后 docker ps -a查看运行镜像

然后ip:8000端口直接访问

构造payload

<?xml version = "1.0"?>

<!DOCTYPE note [

    <!ENTITY hacker "test">

]>

<name>&hacker;</name>

外部实体引用Payload 查看服务器文件

<?xml version = "1.0"?>

 <!DOCTYPE ANY [

     <!ENTITY f SYSTEM "file:///etc/passwd"> ]>

 <x>&f;</x>

防御办法

使用开发语言禁用外部实体;

过滤SYSTEM、PUBLIC等关键字;

xxe-lab地址:https://github.com/c0ny1/xxe-lab

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pikachu是一个开源的漏洞扫描工具,XXE(XML External Entity)漏洞是其中一个模块。 XXE漏洞是指攻击者通过构造恶意的XML实体来访问本地或远程文件系统,从而获取敏感信息或执行任意代码。这样的漏洞通常出现在使用XML解析器的应用程序中,当应用程序没有正确配置解析器时,攻击者可以利用XXE漏洞来进行攻击。 在pikachu中,XXE模块可以帮助用户扫描和发现应用程序中的XXE漏洞,并提供修复建议。使用pikachu进行XXE扫描的过程包括将pikachu文件夹放到web服务器根目录下,修改配置文件中的数据库连接配置,然后访问相应的URL进行安装和初始化。 总结来说,pikachu是一个漏洞扫描工具,其中包含XXE漏洞模块,可以帮助用户发现和修复应用程序中的XXE漏洞。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Pikachu系列——XXE](https://blog.csdn.net/Zlirving_/article/details/106274289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [pikachuxxe](https://blog.csdn.net/qq_43665434/article/details/113867722)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值