pikachu-xxe和url跳转

XXE -“xml external entity injection”

既"xml外部实体注入漏洞"。
概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题"
也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。

具体的关于xml实体的介绍,网络上有很多,自己动手先查一下。
现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。
以PHP为例,在PHP里面解析xml用的是libxml,其在≥2.9.0的版本中,默认是禁止解析xml外部实体内容的。
XML是可扩展的标记语言(eXtensible Markup Language),设计用来进行数据的传输和存储

第一部分:XML声明部分

第二部分:文档类型定义 DTD

第三部分:文档元素
payload:

<?xml version = "1.0"?>  
<!DOCTYPE note [     <!ENTITY hacker "xxe"> ]>  
<name>&hacker;</name>
<?xml version="1.0"?> <!--XML文档定义--> 
<!DOCTYPE message [ <!--定义该文档为message类型--> 
<!ELEMENT message(username,password)<!-- 定义message有两个元素--> 
<!ELEMENT username(#PCDATA)> <!-- 定义username元素为#PCDATA类型 --> 
<!ELEMENT password(#PCDATA)> 
]>

bp抓包,确认含有xml:
在这里插入图片描述

将上面payload提交:
在这里插入图片描述

不安全的url跳转

不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。
如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话就可能发生"跳错对象"的问题。

url跳转比较直接的危害是:
–>钓鱼,既攻击者使用漏洞方的域名(比如一个比较出名的公司域名往往会让用户放心的点击)做掩盖,而最终跳转的确实钓鱼网站
查看各个链接的url:
在这里插入图片描述

将url换成百度url:
在这里插入图片描述

在这里插入图片描述

### 关于 Pikachu-Master 项目中的 XXE 漏洞 #### 解决方案概述 针对 Pikachu-Master 项目中存在的 XML 外部实体 (XXE) 漏洞,主要的防护措施集中在防止恶意输入被解析器处理以及限制外部资源访问。具体来说: - **禁用外部实体扩展**:通过配置应用程序使用的 XML 解析库来阻止其加载来自外部的 DTD 实体声明[^3]。 - **验证并清理用户输入**:确保所有接收自用户的 XML 数据都经过严格的模式校验或白名单过滤机制,从而排除潜在危险字符结构。 - **采用安全编码实践**:遵循 OWASP 推荐的安全开发指南,在编写涉及文件操作、网络请求等功能模块时特别注意防范注入类风险。 #### 技术实现细节 对于 PHP 应用程序而言,可以通过设置 `libxml_disable_entity_loader(true)` 来关闭默认开启的外部实体加载功能,这一步骤应当尽可能早地执行以覆盖整个应用生命周期内的所有 XML 解析活动[^4]。 另外一种方法是在服务器端对上传的内容进行预处理,移除不必要的 DOCTYPE 声明部分,并替换掉可能引起问题的标准实体引用形式,例如下面这段代码展示了如何利用正则表达式完成这一任务: ```php <?php function sanitize_xml($input){ $pattern = '/<!DOCTYPE.*?>/'; return preg_replace($pattern, '', htmlspecialchars($input)); } ?> ``` 此外,还可以考虑引入专业的第三方组件如 [XMLReader](https://www.php.net/manual/en/book.xmlreader.php),它提供了更细粒度控制的能力用于读取大型 XML 文档而不必一次性将其全部载入内存中;同时配合使用 [DOMDocument::loadHTML()](https://www.php.net/manual/en/domdocument.loadhtml.php) 方法代替原始的 load 函数也能有效规避某些类型的 XXE 攻击向量。 #### 预防建议 为了进一步降低遭受此类攻击的可能性,开发者还应该定期审查依赖项是否存在已知漏洞,并及时更新至最新版本;保持良好的日志记录习惯以便快速响应异常情况的发生;最后也是最重要的一点就是加强团队内部关于 Web 安全意识方面的培训教育工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值