阿里云云盾提示: Aspcms注入漏洞
簡介:
Aspcms的/plug/comment/addComment.asp中addComment()函數(shù)對contentID未進行正確的轉(zhuǎn)型,導(dǎo)致Int型SQL注入。
ASPCMS建站系統(tǒng)對建設(shè)中小型企業(yè)網(wǎng)站還是非常靈活適合的,但是對應(yīng)的漏洞比較多,下面針對addComment.asp頁面的漏洞做出如下修改方法。
針對上面的漏洞本人給出了萬能Asp防注入代碼-拒絕攻擊,addcomment.asp Aspcms注入漏洞
放入conn.asp中(/plug/comment/addcomment.asp)(拒絕攻擊 萬能Asp防注入代碼)
第一種:
squery=lcase(Request.ServerVariables("QUERY_STRING"))
sURL=lcase(Request.ServerVariables("HTTP_HOST"))
SQL_injdata =":|;|>|<|--|sp_|xp_|/|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
For SQL_Data=0 To Ubound(SQL_inj)
if instr(squery&sURL,Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL防注入系統(tǒng)"
Response.end
end if
next
第二種:
SQL_injdata =":|;|>|<|--|sp_|xp_|/|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系統(tǒng)"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系統(tǒng)"
Response.end
end if
next
next
end if
一般這種問題是網(wǎng)站有漏洞,系統(tǒng)漏洞或者SQL注入漏洞,或者上傳文件漏洞,如何防止網(wǎng)頁被修改加入腳本病毒? 愛牛網(wǎng)絡(luò)將這個問題總結(jié)分享如下.
1、簡單的補救措施:在服務(wù)器IIS中,把所有的ASP,HTML文件的屬性設(shè)置為Everyone只讀(一般是IUSR_),只把數(shù)據(jù)庫的權(quán)限設(shè)置成可寫,注意:如果你沒有服務(wù)器的管理權(quán)限,那么登錄上的空間ftp,選中那些不需要寫入的文件或文件夾,右鍵點擊-屬性:把其中的三組寫入權(quán)限都取消,但如果你有ACCESS數(shù)據(jù)庫,要把數(shù)據(jù)庫設(shè)成可寫,不然讀數(shù)據(jù)時會出錯。
2、先把惡意代碼刪掉(替換掉),然后把網(wǎng)站目錄下的所有文件全部用殺軟殺下 ,然后一個一個檢查下是否存在后門.
3、在你的程序里寫上以下防注入函數(shù)
on error resume next '這行代碼放到conn.asp的第一行。
'防止注入
dim qs,errc,iii
qs=request.servervariables("query_string")
'response.write(qs)
dim deStr(18)
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)="'"
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
deStr(18)="%"
errc=false
for iii= 0 to ubound(deStr)
if instr(qs,deStr(iii))<>0 then
errc=true
end if
next
if errc then
Response.Write("對不起,非法URL地址請求!")
response.end
end if
4、在文件中加入
====================== 以下為摘錄======================
網(wǎng)頁防篡改
一,Stream開關(guān)可自由設(shè)置,ASP中的ADODB.Stream 對象用來操作二進制或文本數(shù)據(jù)的流。通常用于無組件上傳和驗證碼等功能。關(guān)閉該組件可以提高網(wǎng)站安全。 Fso開關(guān)也可自由設(shè)置,F(xiàn)SO(FileSystemObject)是微軟ASP的一個對文件操作的控件,該控件可以對服務(wù)器進行讀取、新建、修改、刪除目錄以及文件的操作。關(guān)閉該組件有利于提高網(wǎng)站安全。
二,假設(shè)網(wǎng)站建好后,今后一段時間都不會再用到ftp上傳功能,這時可以暫時關(guān)閉FTP上傳,有助于提高網(wǎng)站的安全,即使ftp密碼泄露,黑客也不能操作空間內(nèi)的文件,設(shè)置后60秒后生效。
三,另外還可設(shè)置腳本權(quán)限與寫入權(quán)限,如果網(wǎng)站只使用了asp,可設(shè)置為只開放asp權(quán)限。這樣黑客即使上傳了PHP的木馬到空間也不能運行,最少的權(quán)限=最大的安全。寫入權(quán)限設(shè)置則系統(tǒng)支持全國領(lǐng)先的目錄權(quán)限設(shè)置,允許關(guān)閉網(wǎng)站的寫入權(quán)限,鎖定虛擬主機。對安全有重要意義,例如可以將 access數(shù)據(jù)庫放在databases目錄,而將wwwroot目錄的寫入權(quán)限關(guān)閉,令asp木馬根本無法上傳,這樣比關(guān)閉FSO更安全。