命令注入(2)

过滤目录分隔符

这次的flag文件是放在一个目录底下的,并且过滤了/目录分隔符

命令注入(2)_第1张图片

通过ls命令查看到一个文件夹,flag应该就在下面,虽然过滤了目录分隔符,但是我们既然能执行Linux命令是不是可以直接利用cd命令进入目录

命令注入(2)_第2张图片

注意这里的连接符编程了;分号,意味着顺序执行,利用|管道符做不出来

然后进入查看后就可以看见我们的flag文件

命令注入(2)_第3张图片

成功获取flag

需要注意的是,在base64之前的分割符要使用管道符

意味着将查询出来的flag作为参数传给base进行编码

命令注入(2)_第4张图片
命令注入(2)_第5张图片

过滤运算符

也不知道过滤了什么运算符

命令注入(2)_第6张图片

注入进来是这个样子,其他也都一样,但是只有;分号没有被过滤

命令注入(2)_第7张图片

成功查看文件

命令注入(2)_第8张图片

但是管道符被过滤掉了,怎么进行编码呢

命令注入(2)_第9张图片

进过百度发现直接查看页面源代码就可以得到flag了,不知道前面的可不可以

命令注入(2)_第10张图片

综合过滤练习

综合练习,试试

命令注入(2)_第11张图片

发现员运算符基本都被过滤掉了,分号也一样

命令注入(2)_第12张图片

经过上网查询,我们得知可以使用HTMLURl编码后的%0a和%0b

我有查找过这些编码是什么意思,一开始我以为是;分号的编码,结果分号的是%3B、

url不区分大小写,那么%0a和%0b对应的是换行和回车符

最好是直接在url栏中进行注入,比较直接

命令注入(2)_第13张图片

利用${IFS}绕过空格进入到flag目录,结果发现flag被过滤掉了

命令注入(2)_第14张图片

这次是直接利用\反斜杠将flag转义

命令注入(2)_第15张图片

最后就是因为cat被过滤我们使用more查看flag信息

命令注入(2)_第16张图片

然后查看页面源码获取到信息

命令注入(2)_第17张图片

你可能感兴趣的:(安全)