小迪web自用笔记59

Xxe,xml

Xxe与ssrf类似(服务器错误引用外部资源),不过那个是因为没过滤本地。

*Xml是传输存储数据的,你要在里面取出数据的话,后端就会解析这个语言,如果XML中有恶意代码被解析就会造成攻击。

里面存储了一些件名文件名之类的信息,类似于json

弄一个恶意xml外部引用,让text变量读取这个文件路径,然后回显就是这样。

如何看能不能这样测试,黑盒观察XML的特征,看看数据格式。

或者是看数据类型后面写了东西没。

或者是bp关键字搜索

Xml像json那样传输数据(就是JSON格式传递。)

如果对方有解析,解析里面有读取XML的内容,并解析了外部实体,就形成了xxe

↑从别的网站引用dtd资源,而dtd资源中又有恶意函数。

回显

传这两个文件:

总结

带外:访问DNSblog(无回显,判断有无执行。

外部引用实体:不用学习xml本身代码,可以攻击成功,dtd加载库文件,类似于包含文件。(有回显

把核心代码放到dtd,后面做访问加载。

(所以可以两个一起用)

有回显代码。

也可以不写dtd全写xml。

无回显读文件:

为什么这个例子一改就可以改对,因为他有xml处理。

例子:白盒

搜索关键词

XmL功能↑

由于这个变量调用了,所以找一下文件路径并访问。

过程总结

xxe一般只能文件读取,命令执行一般是别的插件的问题。

XXe读取PHP时,PHP内容不能带空格,不然后面拼接会出问题。

可以用伪协议,Base64

不是说必须要文件包含吗?

你这个问题的核心在于对"文件包含"和"伪协议利用场景"的混淆,我们可以拆开来看:

  1. 伪协议不是只能在文件包含中使用

php://filter 这类伪协议本质上是 PHP 提供的数据流封装器,它的作用是:

  • 将文件内容作为数据流处理

  • 支持通过过滤器(如 convert.base64-encode )对数据编码/解码

  • 可以访问服务器本地文件系统

它的使用场景不局限于 文件包含漏洞(如 include($_GET['file']) ),还包括:

  • XML 外部实体注入(XXE):通过 XML 解析器加载外部实体时触发

  • 任意文件读取漏洞:通过其他函数(如 file_get_contents() )触发

  • SSRF 漏洞:通过构造伪协议地址让服务器主动请求

  1. 文件包含漏洞的本质

文件包含漏洞的核心是:

  • 服务器端脚本(如 PHP)主动执行了一个包含文件的操作

  • 攻击者可以控制被包含的文件路径

在这种场景下,伪协议的作用是:

  • 绕过过滤(如 ../ 被过滤时用 php://filter 读取文件)

  • 直接读取文件内容(如 php://filter/read=convert.base64-encode/resource=xxx )

  1. XXE 漏洞的本质

XXE 漏洞的核心是:

  • XML 解析器 允许加载外部实体

  • 攻击者可以通过构造恶意 XML 让解析器加载指定的 URI

在这种场景下,伪协议的作用是:

  • 让 XML 解析器通过伪协议 读取服务器本地文件

  • 结合编码过滤器(如 convert.base64-encode )避免 XML 解析器因内容格式报错

  1. 总结

漏洞类型 触发条件 伪协议作用

文件包含 脚本主动包含文件 绕过过滤、读取文件

XXE XML 解析器加载外部实体 读取服务器本地文件

结论:

  • 伪协议的使用 不一定要依赖文件包含漏洞

  • 只要存在可以触发对伪协议访问的机制(如 XXE、SSRF 等),就可以利用伪协议

总结就是伪协议是个功能,他需要代码中可以执行这个功能的条件。这个条件就是支持读取。

本质

用伪协议读文件,用btb把内容写出来。

相关推荐
牢七1 天前
小迪Web自用笔记58
web app
牢七3 天前
小迪web自用笔记55
web app
牢七3 天前
小迪自用web笔记53
web app
牢七4 天前
小迪web自用笔记54
web app
牢七4 天前
小迪Web自用笔记52
web app
牢七4 天前
小迪web自动笔记50
web app
牢七5 天前
小迪web自用笔记49
web app
牢七5 天前
小迪web自用笔记48
web app
牢七6 天前
小迪web自用笔记47
web app