怎么解决修改“HTTP响应拆分漏洞”?怎么修改ASP,down.asp

怎么解决修改“HTTP响应拆分漏洞”?怎么修改ASP,down.asp

偶看网络营销博客通过360网站安全监测出现——HTTP响应拆分漏洞(WASC Threat Classification)

该漏洞的危害:攻击者可能注入自定义HTTP头。例如,攻击者可以注入会话cookie或HTML代码。这可能会进行类似的XSS(跨站点脚本)或会话固定漏洞。
解决方案:限制用户输入的CR和LF,或者对CR和LF字符正确编码后再输出,以防止注入自定义HTTP头。
偶看网络营销博客出现这个问题,是因为添加了wordpress评论外链跳转功能,站外网址的跳转是使用“/?r=”直接跳转,没有使用中间跳转页,而且代码过滤不严格,即
$redirect = $_GET['r'];
后面必须过滤CR和LF字符,在该代码后面加上
$redirect = trim(str_replace(“\r”,”",str_replace(“\r\n”,”",strip_tags(str_replace(“‘”,”",str_replace(“\n”, “”, str_replace(” “,”",str_replace(“\t”,”",trim($redirect))))),”"))));
即可成功修复HTTP响应拆分漏洞。


asp版本:

<%

Function ReplaceStr(Str)
If Str = "" Then
ReplaceStr = "" : Exit Function
End if
Str = Replace(Str,"<","<")
Str = Replace(Str,">",">")
Str = Replace(Str,"&","&")
Str = Replace(Str,"&","&")
Str = Replace(Str,Chr(9),"  ")
Str = Replace(Str,Chr(13),"
")
Str = Replace(Str,Chr(32)," ")
Str = Replace(Str,Chr(34),""")
Str = Replace(Str,Chr(39),"'") 
ReplaceStr = Str
End Function

 


From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.write "非法链接!" '防止盗链
response.end
end if
'if Request.Cookies("Logined")="" then
'response.redirect "/login.asp" '需要登陆!
'end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/")
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Dim SavePath
Const adTypeBinary = 1
FileName = ReplaceStr(Request.QueryString("FileName"))
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB","html","PHP","\r\n","\r","\n","\t"," ","'"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(ReplaceStr(Request.QueryString

("FileName")))
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
SavePath = FileUploadPath '存放上传文件的目录
TrueFileName = SavePath & FileName
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值