当前位置: 首页 > news >正文

CTFshow-Web-RCE任意文件上传

一、靶场:ctfshow web红包题第二弹
二、解题步骤:
步骤一:打开靶场,发现和web12的界面一样,打开源码看看,依然存在 ?cmd= 的提示

image1

image2

步骤二:这里按照web12的方法直接查看当前文件的源码,可以看到源码和web12相比复杂了许多,后面进行代码审计

image3

步骤三:代码审计(主要是看php代码)

<?phpif(isset($_GET['cmd'])){$cmd=$_GET['cmd'];highlight_file(__FILE__);if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd)){die("cerror");}if(preg_match("/|||||||||||||||||||||/",$cmd)){die("serror");}eval($cmd);}?>

通过代码审计可以得到以下结论:

1、$cmd=$_GET['cmd']; 这是rce的根源,可以利用这个进行代码执行

2、可以看到两个判断语句,要求cmd不能含有除了p以外的大小写字母和数字,且不能含有特殊字符:$~!@#%^&等等。可以使用的有:p ` ? / + < > =

解题方法:

通过可用的字符构造cmd=?><?=`.+/??p/p?p??????`,由eval($cmd)来运行临时文件

构造原理:

1、<?= $cmd ?> 等于 <?php echo($cmd) ?>

在php中,<? ?>称为短标签,<?php ?>称为长标签。修改PHP.ini文件配置 short_open_tag = On 才可使用短标签。php5.4.0以后, <?= 总是可代替 <? echo。

例:以下代码在php7.4环境下运行,结果均为2021。

<?php echo(date('Y')) ?><?php eval("echo(date('Y'));") ?><?= date('Y'); ?><?php eval("?><?= date('Y');") ?>

2、反引号``(键盘Tab键上面那个键)

在php中反引号的作用是命令替换,将其中的字符串当成shell命令执行,返回命令的执行结果。反引号包括的字符串必须是能执行的shell命令,否则会出错。如下语句可得系统日期:<?= `date` ?>

3、点 .

点命令等于source命令,用来读取并执行文件内容。

source /home/user/bash 等同于 . /home/user/bash

image4

ls指令写入了文件中,使用 . 文件名 就读取并执行了文件内容

4、加号 +

URL编码中空格为%20,+表示为%2B,=为3D%。然而url中+也可以表示空格,要表示+号必须得用%2B。

5、/??p/p?p??????

5.1:临时文件夹目录

php上传文件后会将文件存储在临时文件夹,然后用move_uploaded_file() 函数将上传的文件移动到新位置;

临时文件夹可通过php.ini的upload_tmp_dir 指定,默认是/tmp目录。

5.2:临时文件命名规则

默认为 php+4或者6位随机数字和大小写字母,在windows下有tmp后缀,linux没有;

比如windows下:phpXXXXXX.tmp linux下:phpXXXXXX。

6、通配符

问号?代表一个任意字符,通配符/??p/p?p??????匹配/tmp/phpxxxxxx

7、第一个 ?> 用于拼接前面的 <? ,后面的那个 <? 用于拼接后面结尾的 ?>

步骤四:抓包,改包bp抓包post先上传一个内容为 ls 的文件,然后执行,看根目录下有些什么文件,发现有一个flag.txt

image5

步骤五:再次上传文件,读取flag.txt的内容

image6

三、注释
数据包添加内容详解:

Content-Type:

Content-Type有两个值:

①application/x-www-form-urlencoded(默认值) :上传键值对

②multipart/form-data:上传文件

boundary为边界分隔符:

文件开始标记:-----------------------------10242300956292313528205888

文件结束标记:-----------------------------10242300956292313528205888--

其中10242300956292313528205888是浏览器随机生成的,只要足够复杂就可以。

Content-Length下必须空一行,这是数据包规定的格式

http://www.rkmt.cn/news/69538.html

相关文章:

  • 二零二五年十二月鲜花代运营服务商综合评测与排行:五家服务商深度对比与选择指南
  • 【IEEE出版 | EI检索】第六届机械自动化与智能制造国际学术会议(MAIM 2025)
  • 二零二五年十二月压缩机储液器厂家推荐榜:五家优质企业综合对比与选购指南
  • 2025深圳继承律师权威推荐榜单:离婚房产律师/股权分割律师/婚姻律师及机构精选
  • 杭州办婚礼哪里好榜单:2025杭州一站式婚礼排名出炉
  • XSS Labs-Level3题解
  • 2025重金属水质监测设备厂家有哪些指南:厂家技术亮点解析
  • 2025杭州草坪婚礼场地推荐:杭州结婚场地榜单大盘点
  • (论文速读)EgoLife:走向自我中心的生活助手 - 指南
  • 2025激光三维扫描仪十大品牌权威推荐榜单(国产化首选TOP10)
  • EMC实用技巧:利用近场探头抑制 LVDS 连接干扰​
  • 2025美白精华新风向:理性护肤者正转向这些精准之选
  • 2025适合干敏皮冬季使用的美白面霜推荐,近期真实用户反馈
  • 2025年末美白抗老精华哪款最值得?推荐一这支次抛太圈粉!
  • FrankenPHP 是否是 PHP 的未来?
  • 2025年,这5个Python GUI 库让我眼前一亮​!
  • 深入解析:VBNET_图片PNG转ICO格式
  • 2025年国内比较好的GEO厂家年度排行榜,新测评精选GEO
  • 悬臂吊服务商TOP5权威推荐:新深度测评指南,甄选企业助力工
  • 2025年服务不错的小红书代运营专业公司推荐,小红书代运营公
  • 马来西亚商标转让平台测评:2025 哪家资质全、收费明?看完直接选
  • 2025年正规的春秋羽绒被/双人羽绒被厂家最新推荐排行榜
  • 英国商标转让平台哪家好?2025 六大平台测评,跨境服务能力大比拼
  • 新西兰商标转让平台怎么选?2025 六大平台资质 + 标源 + 保障横向对比
  • 2025企业AI智能体官网TOP5权威推荐:看看哪家技术实力
  • 2025 越南商标转让平台测评:从标源到费用,一文看透谁才是真靠谱
  • 2025年浙江活性炭箱/吸附法/吸收法废气处理设备生产厂家排
  • 2025年评价高的驾驶式扫地机/扫地机产品厂家推荐及选购参考榜
  • 2025年比较好的洗地机设备厂家推荐及选购指南
  • 2025年评价高的全自动超声波清洗机/多槽超声波清洗机TOP品牌厂家排行榜