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