ctf show web 入门43
打开靶场代码逻辑如下if(!preg_match(“/\ |/|cat/i”, $c))它过滤了三个关键内容\ (空格)你不能直接在命令中使用空格例如 ls -l 或 cat flag 都会失败。/ (正斜杠)你不能使用路径符号例如 /flag 这种绝对路径会被拦截。cat读取文件的常用命令被禁用了。/i 表示不区分大小写所以 CAT、caT 也不行。/dev/null 21依然存在所以还是需要用分隔符截断且不能看到直接回显我们可以尝试使用换行符%0a强制换行让重定向的内容在下一行不再影响上一行的内容我们先尝试查看当前目录下有什么文件构造flag为?cls%0a发现了当前目录下包含的文件flag.php,所以我们尝试构造payload来读取该文件我们发现cat函数被禁用了但是有很多cat命令过滤有很多命令可以替代 cat 来读取文件内容tac反向列出内容。more / less分页显示。head / tail查看开头或结尾。nl带行号列出内容常用。vi / vim虽然是编辑器但在某些 system 调用中也能读取。sort排序显示。grep搜索读取。我们尝试使用tac来反向列出内容构造的payload为?ctac flag.php%0a得到flag
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2605650.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!