🍀预计时间:二十五分钟
学习目标:
🎉1理解原理
🎉2学会思路
🎉3了解过滤cat,flag,空格的处理方式
⭐贤鱼原创
控制可执行系统命令的函数
例题如下
很明显,我们可以通过get传参方式控制c,但是system中该如何执行前半段而不执行后半段呢?
这里需要用到一些连接符
1 ;(封号) 执行完第一个再执行下一个
2 &&第一个成功执行再执行第二个
3 ||前面执行失败后执行后面,也就是前面执行成功后面不执行
4 | 第一个的输入作为后面一个的输出
这几个较为常用,如果有其他的再后文还会提及
继续看这个题
首先讲一下思路,我们先看当前目录有没有目标文件(flag),没有的话去根目录下找,然后打开目标文件
接下来看到题目,首先我们传参/?c=ls||查看当前目录下有没有flag,用||隔绝后面,前文讲了这个的作用
很明显,没有flag
接下来传参ls /||,这个的意思是查看根目录,如果在当前目录下找不到,就去根目录下看看
嗨嗨嗨,这不就有了,现在我们找到了flag,该怎么打开呢?
我们这里传参 cat /flag,记得cat后面有个空格,这个意思是打开根目录下的flag,如果不在根目录下,不需要加/
明显看到,cat被过滤掉了,在此花费2分享一下绕过方法:
cat=tac=more=less=head=nl=od=vi=vim=sort=uniq=paste=xxd
这些的方法和cat使用方法都一样,在需要的时候可以互相转换
接下来就简单了,还是一样的操作,查看当前目录,如果没有查看根目录
这里发现了flag,因为cat被过滤了,这里我们用tac(tac /flag)
🎇🎇🎇题目完成
其他的效果一样
上文cat的过滤方法讲过了,这里就不多赘述,主要讲讲flag的过滤方法
我们可以拼接字符串的方法来过滤flag
还是老规矩找到flag的位置
这里利用单引号绕过过滤,
传参tac fl’a’g||
就可以得到flag了
绕过cat和flag的方法都讲过了,现在分享下绕过空格的方法
空格等于 I F S 等于 IFS等于 IFS等于{IFS}
传参tac$IFS/fl’a’g||
🏆🏆结束语:
命令执行漏洞的内容会不定期更新,如果对您有帮助的话可以订阅一下专栏