本期主要关注复现
一,linux与windows中搭建phpstudy的区别
首先,想要了解清楚在这两种系统搭建网站的区别就要熟悉你想要实现的网站的功能,其次就是二者命令执行的区别。
(其实说到这里,大佬们可能就清楚本小白要讲的内容了)。
这里就用nepctf的一道【little trick】来说明。
(具体的phpstudy搭建就不讲了,linux的话,用一句官网安装命令,然后装载的本机访问最终得到的内网,登录即可)
1 以下是该题的源码。
2题目的pl如下:
该题的思路其实说白了就是传入 “ cat * ” 并执行。
3以下是该题的所有文件以及源码:
index.php:
<?php
error_reporting(0);
highlight_file(__FILE__);
$nep = $_GET['nep'];
$len = $_GET['len'];
if(intval($len)<8 && strlen($nep)<13){
eval(substr($nep,0,$len));
}else{
die('too long!');
}
?>
nepctf.php:
<?php $flag = 'NepCTF{n3pn3p_l1ttle_tr1ck_c0me_bAck}'; >
4详细说明
然而在已搭建的网站中由于“服务器”类型为window,其shell(即cmd)无法执行linux命令,故在windows搭建的phpstudy网站无法通过简单地在文件夹中放入index.php和nepctf.php来达到复现的目的。
而在linux中搭建的网站可以完全复现该题。
其实,这说明了一个非常基本的道理——网站的功能与搭建网站的服务器的运行系统有关。
二,[RoarCTF 2019]Easy Calc复现
然后,在解决了linux网站的问题的同时,同样解决了在做ctf时,为什么REC之后可以看见“linux目录”的问题,即以linux环境实现即可。而复现出来的题目与真实赛题“linux目录”不同的区别就在于一个是linux实际环境,一个是linux容器环境。
进行到这里该题的复现依旧没有成功,又遇见了新的问题,例如,最近出现的var_dump()执行ls /无法完全返回根目录的问题,waf设置的探索,我相信随着我进一步的学习,它终将揭开神秘的面纱。
至于我为什么写这篇博客,相当于找到了linux服务器复现环境的解决办法吧。
后续仍将继续跟进(即便Easy Calc借出来后已经过去了许久)