ASP代码审计学习笔记 -5.文件下载漏洞

简介: 文件下载漏洞 漏洞代码: 0 then Reaponse.status="404" else Response.ContentType="application/octet-stream" Response.

文件下载漏洞

漏洞代码:

<%   
function download(f,n)   
on error resume next   
Set S=CreateObject("Adodb.Stream")   
S.Mode=3   
S.Type=1   
S.Open   
S.LoadFromFile(f)   
if Err.Number>0 then   
Reaponse.status="404"   
else   
Response.ContentType="application/octet-stream"   
Response.AddHeader "Content-Disposition:","Attachment;filename="&n   
Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)   

if Range="" then   
Response.BinaryWrite(S.Read)   
else   
S.Postion=Clng(Split(Range,"-")(0))   
Response.BinaryWrite(S.Read)   
end if   
End if   
End function   
dim filename   
filename=request("filename")
filename=filename&".asp"
call download(server.MapPath(filename),filename)   
%> 

 MapPath 的 Path 参数中不允许字符 '..',需要启用父路径(IIS6.0出于安全考虑,这一选项默认是关闭的。

漏洞利用:

 漏洞修复:

如果存在.. 就结束脚本,禁止跨目录进行操作

If InStr(filename,"..")>0 Then
Response.write "禁止跨目录操作!"
response.end
End IF

错误处理1:

filename=Replace(filename, "../", "") '替换../为空 
filename=Replace(filename, "./", "") 

代码对../和./进行过滤用来防止目录跳转,但可以通过构造参数饶过检测.由于检测替换只进行一次可以使用....//代替上级目录,程序替换后....//变成../ 

攻击代码示例:filename=.....///sql.asp

错误处理2:

If InStr(filename,"../")>0 Then
Response.write "禁止跨目录操作!"
response.end
End IF

代码对../进行检测,但是忽略了对..\的情况,在windows下,..\也可实现跨目录。

攻击代码示例:filename=..\sql.asp

 

目录
相关文章
|
10月前
|
开发框架 .NET Apache
301重定向代码合集(iis,asp,php,asp.net,apache)
301重定向代码合集(iis,asp,php,asp.net,apache)
267 0
|
SQL 移动开发 供应链
网站代码审计漏洞查找技术是如何炼成的?
常常许多人问过那样一个难题,网络黑客是确实那么强大吗?就现阶段来讲,在黑客游戏或影视剧中,网络黑客所展现的工作能力与实际是相差无异的(黑客帝国此类种类以外)。唯一的差别是影视剧中的主人公可以瞬间控制供电系统,导致大城市电力工程偏瘫。走在路上任意监听所有人。
322 0
网站代码审计漏洞查找技术是如何炼成的?
|
安全 PHP .NET
通过代码审计找出网站中的XSS漏洞实战(三)
一、背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践(一)https://segmentfault.com/a/1190000016095198 本文主要记录通过代码审计的方式进行XSS漏洞挖掘,分为了找出关键位置,正向审计,反向审计三个部分,审计的系统为permeate渗透测试系统,测试系统的搭建可以参考笔者的第一篇文章。
1653 0
|
XML JSON 前端开发
ASP.NET Core 2 学习笔记(九)模型绑定
原文:ASP.NET Core 2 学习笔记(九)模型绑定 ASP.NET Core MVC的Model Binding会将HTTP Request数据,以映射的方式对应到参数中。基本上跟ASP.NET MVC差不多,但能Binding的来源更多了一些。
1285 0
|
安全 .NET 开发框架
ASP代码审计学习笔记 -4.命令执行漏洞
  命令执行漏洞:   保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令  利用方式: http://localhost/cmd.asp?ip=127.0.0.1|set   漏洞修复方式一: 把输入的值当作参数来执行,避免命令执行漏洞,可能会占用系统资源,不够优化。
1354 0
|
SQL .NET
ASP代码审计学习笔记-1.SQL注入
ASP注入漏洞   一、SQL注入的原因 按照参数形式:数字型/字符型/搜索型 1、数字型sql查询 sql注入原因: ID=49 这类注入的参数是数字型,SQL语句原貌大致如下: id=request.
1023 0
|
安全 .NET 开发框架
ASP代码审计学习笔记 -2.XSS跨站脚本
XSS漏洞: 漏洞代码: 漏洞利用: 漏洞修复: Server.HTMLEncode(string):HTMLEncode 方法对一段指定的字符串应用 HTML 编码。修复代码如下:   
841 0
|
安全 .NET PHP
ASP代码审计学习笔记 -3.上传漏洞
1、ASP上传过程抓包分析: POST /4.asp HTTP/1.1 Host: 192.168.1.102 User-Agent: Mozilla/5.0 (Windows NT 10.
1654 0
|
Web App开发 .NET 测试技术
使用代码测试ASP.NET MVC2执行流程
测试代码点击这里下载,通过此代码也剖析了MVC2的扩展点和扩展方式(其实在不调用基类的情况下填满所有重写的方法也就完成了大半个MVC框架)。 MVC执行流程如下(可以直接下载代码运行页面查看此结果): ----------------开始执行TestMvcApplication 类的 ...
865 0
|
3月前
|
安全 小程序 PHP
PHP代码审计(五)PHP代码审计方法与步骤
(1):获取到网站源码(这就是废话……) (2):将网站部署到你自己的环境中,能运行。 这里特殊说明一下我的习惯,我本地的环境与线上的环境基本上保持一致,这样在本地审计及线上部署的时候能发现更多的问题。不建议说是随便搭个环境能跑起来就行,这样不是很严谨。 (3):拿到源码之后,浏览大概的项目结构。
52 0

相关产品

  • 云迁移中心