XXE外部实体注入漏洞之——CTF考题补充与——及XXE漏洞修复

CTF考题 测试及漏洞修复

扩展考题

	jarvisoj 上的一道题目 API 调用

这道题的题目说明是 请设法获得目标机器/home/ctf/flag.txt 中的 flag 值。
进入题目 http://web.jarvisoj.com:9882/ 发现一个输入框,我们对其进行抓包
是一个 json 数据提交,修改数据发现可以被解析
这是一道 xxe 的题,怎么获取 flag?只要将 json 处改为 xml,然后提交 xml 文档即可

XXE 漏洞修复与防御

如下针对三种语言的配置更改
PHP
libxml_disable_entity_loader(true);

JAVA
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
setFeature(“http://apache.org/xml/features/disallow-doctype-decl”,true);
setFeature(“http://xml.org/sax/features/external-general-entities”,false)
setFeature(“http://xml.org/sax/features/external-parameter-entities”,false);

Python
from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

手动黑名单过滤(不推荐)
过滤关键词:<!DOCTYPE、<!ENTITY SYSTEM、PUBLIC
xee 渗透学习参考
参考地址:https://xz.aliyun.com/t/3357
阿里云上的 一篇文章带你深入了解XXE,是目前最全的一个总结了,有兴趣可以看一下

发布了117 篇原创文章 · 获赞 11 · 访问量 6463

猜你喜欢

转载自blog.csdn.net/weixin_43079958/article/details/105476758