过滤目录分隔符

点击此处获得更好的阅读体验

来自 cmrex123 原创投稿
## 题目考点
- 命令注入
- 过滤目录分割符/
- 理解linux和windows中各种分割符号的作用以及用法。

解题思路

首先使用本地ping查看结果。

1
127.0.0.1

返回了正常的ping的数据

使用管道查看当前位置存在的文件有哪些

1
127.0.0.1|ls

并没有过滤ls和管道符号'|'。这里显示出来了当前目录下存在了一个文件夹:flag_is_here。另外一个index.php的文件,毫无疑问,flag是在flag_is_here文件夹里的。

思路上来说应该是cat文件,必须要使用目录分隔符/,但是题目给过滤。需要另外寻找办法

linux中:%0a%0d;&|&&||

windows中:%0a&|

其中分号;的作用就是在 shell 中,担任”连续指令”功能

&&的方式:command1 && command2 如果command1执行成功,则执行command2

使用分号进行命令执行 payload:

1
;cd flag_is_here&&ls

我们使用的分号就不用前面的127.0.0.1了。同时出现了在flag_is_here目录下的文件:flag_24324515113881.php

既然已经成功的知道了目录下的文件,那就直接cat一下

1
;cd flag_is_here&&cat flag_24324515113881.php

在浏览器中f12打开,源码中出现flag