作者名:Demo不是emo
主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:web安全,后渗透技术每日emo:真的还有相见的机会吗
目录
一、tac命令绕过
二、内敛执行绕过
三、双重参数覆盖(2022.12.31)
命令执行也是ctf题型中比较常见的,这这些天ctf的训练中我也学到了很多新姿势,就想着写个博客记录一下,希望也能对大家解这类型的题提供帮助和思路
因为我还在不停的练习ctf,所以会不断记录一些新奇的解题姿势,也就是这篇博客会持续更新,建议点赞关注
一、tac命令绕过
在真实环境的命令执行漏洞的过滤中,cat命令一直是防范的重点,那cat命令被写死无法绕过的时候就可以试试这个命令——tac
可能很多小伙伴没听过过这个命令,其实这个命令功能跟cat命令差不多,看下面这个图你应该就明白了,这两个命令效果差不多
cat exp.py
tac exp.py
怎么样,这下清楚了吗?cat是从上往下查看,tac就是从下往上就查看而已,但是tac命令知道的人少,所以很多都没有对tac命令进行一个过滤,所以cat命令被过滤时就可以尝试使用tac命令
二、内敛执行绕过
`命令`和$(命令)都是执行命令的方式
反引号``是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`
实例如下,可以看到同样的系统命令使用这两种方法都能执行,下面这两个命令的效果就相同
echo $(ifconfig);
echo `ifconfig`;
跟上面的tac是一个道理,$(命令)的方法被大多数人熟知,一般都存在过滤,而`命令`的方法相对来说被过滤的可能性就低了许多
三、双重参数覆盖(2022.12.31)
就是将eval()函数的参数的值用另外一个参数传入,例如,这两句话效果是相同的
c=eval(phpinfo());
c=eval($_GET[1]);&1=system(phpinfo());
都能达到显示phpinfo的目的,如下