我偶然发现了一种开发方法,以前我还没有真正的时间去研究。XML实体据说容易受到服务器端注入类型的影响。我可以指定一个文档类型声明(DOCTYPE)来定义XML的结构。在DOCTYPE中,我可以定义实体并为它们分配特定的值。然后,我可以使用XML代码中的实体,解析器将用它们的值替换它们。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE doc[
<!ENTITY pwd SYSTEM "file:///etc/passwd">
]>
<query>
<name>Kiuhnm</name>
<profession>&pwd;</profession>
</query>所以在这种情况下,我可以读取任意文件。我的问题是:是否有可能伪造一个基于XML的修补程序,或者我应该在服务器级别上这样做,并且不允许从外部读取文件?
发布于 2015-03-02 11:49:49
根据库的不同,您应该能够将解析器配置为忽略实体。
https://security.stackexchange.com/questions/82830
复制相似问题