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