【Ctfer训练计划】——命令执行的解题技巧(持续更新中)
创始人
2024-05-05 10:29:17
0

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:web安全,后渗透技术

每日emo:真的还有相见的机会吗

 

目录

一、tac命令绕过

二、内敛执行绕过

三、双重参数覆盖(2022.12.31)


命令执行也是ctf题型中比较常见的,这这些天ctf的训练中我也学到了很多新姿势,就想着写个博客记录一下,希望也能对大家解这类型的题提供帮助和思路

因为我还在不停的练习ctf,所以会不断记录一些新奇的解题姿势,也就是这篇博客会持续更新,建议点赞关注

一、tac命令绕过

在真实环境的命令执行漏洞的过滤中,cat命令一直是防范的重点,那cat命令被写死无法绕过的时候就可以试试这个命令——tac

可能很多小伙伴没听过过这个命令,其实这个命令功能跟cat命令差不多,看下面这个图你应该就明白了,这两个命令效果差不多

cat exp.pytac exp.py

 怎么样,这下清楚了吗?cat是从上往下查看,tac就是从下往上就查看而已,但是tac命令知道的人少,所以很多都没有对tac命令进行一个过滤,所以cat命令被过滤时就可以尝试使用tac命令

二、内敛执行绕过

`命令`$(命令)都是执行命令的方式

反引号``是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`

实例如下,可以看到同样的系统命令使用这两种方法都能执行,下面这两个命令的效果就相同

echo $(ifconfig);echo `ifconfig`;

跟上面的tac是一个道理,$(命令)的方法被大多数人熟知,一般都存在过滤,而`命令`的方法相对来说被过滤的可能性就低了许多

三、eval双重参数覆盖(2022.12.31)

 就是将eval()函数的参数的值用另外一个参数传入,例如,这两句话效果是相同的

c=eval(phpinfo());c=eval($_GET[1]);&1=system(phpinfo());

都能达到显示phpinfo的目的,如下

 这个还是很有用的,用的也比较多

四、include双重参数覆盖(2023.1.3)

上面的eval()函数也可以换成include(),并且include可以不要括号,但是得配合伪协议中的php://filter来使用,如下

c=include($_GET[1])?>&1=php://filter/read=convert.base64-encode/resource=flag.php

或者加上括号也可以,如下

c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

 这就是经过base64编码后的flag.php的内容

五、另类种马思路(2023.1.3)

 这个方法怎么说呢,有点另辟蹊径的感觉,大多数ctf题的命令执行都是对一些系统函数进行绕过,并没有限制写入文件什么的,所以可以直接利用file_put_content()函数或者其他的写入文件的函数,直接写一句话木马然后连接,一样能看到flag,如下

file_put_contents("abc.php", '');

但有些出题人也会把权限写死,所以这种方法还是比较看运气的

 

 

 

 

 

 

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...