阿里云云盾提示: Aspcms注入漏洞
簡介:
Aspcms的/plug/comment/addComment.asp中addComment()函數對contentID未進行正確的轉型,導致Int型SQL注入。
ASPCMS建站系統對建設中小型企業網站還是非常靈活適合的,但是對應的漏洞比較多,下面針對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防注入系統"
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通用防注入系統"
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通用防注入系統"
Response.end
end if
next
next
end if
一般這種問題是網站有漏洞,系統漏洞或者SQL注入漏洞,或者上傳文件漏洞,如何防止網頁被修改加入腳本病毒? 愛牛網絡將這個問題總結分享如下.
1、簡單的補救措施:在服務器IIS中,把所有的ASP,HTML文件的屬性設置為Everyone只讀(一般是IUSR_),只把數據庫的權限設置成可寫,注意:如果你沒有服務器的管理權限,那么登錄上的空間ftp,選中那些不需要寫入的文件或文件夾,右鍵點擊-屬性:把其中的三組寫入權限都取消,但如果你有ACCESS數據庫,要把數據庫設成可寫,不然讀數據時會出錯。
2、先把惡意代碼刪掉(替換掉),然后把網站目錄下的所有文件全部用殺軟殺下 ,然后一個一個檢查下是否存在后門.
3、在你的程序里寫上以下防注入函數
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、在文件中加入
====================== 以下為摘錄======================
網頁防篡改
一,Stream開關可自由設置,ASP中的ADODB.Stream 對象用來操作二進制或文本數據的流。通常用于無組件上傳和驗證碼等功能。關閉該組件可以提高網站安全。 Fso開關也可自由設置,FSO(FileSystemObject)是微軟ASP的一個對文件操作的控件,該控件可以對服務器進行讀取、新建、修改、刪除目錄以及文件的操作。關閉該組件有利于提高網站安全。
二,假設網站建好后,今后一段時間都不會再用到ftp上傳功能,這時可以暫時關閉FTP上傳,有助于提高網站的安全,即使ftp密碼泄露,黑客也不能操作空間內的文件,設置后60秒后生效。
三,另外還可設置腳本權限與寫入權限,如果網站只使用了asp,可設置為只開放asp權限。這樣黑客即使上傳了PHP的木馬到空間也不能運行,最少的權限=最大的安全。寫入權限設置則系統支持全國領先的目錄權限設置,允許關閉網站的寫入權限,鎖定虛擬主機。對安全有重要意義,例如可以將 access數據庫放在databases目錄,而將wwwroot目錄的寫入權限關閉,令asp木馬根本無法上傳,這樣比關閉FSO更安全。