问题标签 [directory-traversal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C中的目录遍历
我试图搜索这个问题,但找不到令人满意的答案。所以这是我的问题:
我正在遍历具有以下代码变体的目录:
我。
这个遍历子目录,但在遍历第一个子目录并打印其文件后给出分段错误。
输出是:
二、
这个打印给定目录中的所有文件和子目录,但不遍历子目录。它的输出是:
这里 dump & temp 是子目录,每个子目录都包含一些文件。首先,我认为由于用户权限,它可能无法遍历子目录(因为它们是由 root 创建和拥有的),但正如您在第一个程序的输出中看到的那样,情况并非如此。所以我无法找出这两个程序的问题。PS:在前两行程序打印目录和文件之后的输出中。
apache - 如何访问 Apache 中 public_html 的父目录?
我记得前段时间读过有人如何从网站访问您的计算机文件系统。我想知道怎么做,所以我可以测试并防止它发生。
通过 XAMPP 在 Windows 上运行 Apache 2.4
我的虚拟主机设置如下:
有一个index2.html
inscrap/
和index.html
inscrap/public_html/
主机设置为127.0.0.1 local.scrap
如果我键入 URL http://local.scrap/
,我会得到 index.html。http://local.scrap/../index2.html
如果我键入它会被重定向到的 URLhttp://local.scrap/index2.html
为什么 ../ URL 被重定向到 DocumentRoot 路径?
php - PHP:在路径中转义斜杠的推荐方法(例如,防止目录遍历攻击)
我正在寻找一个 PHP 函数来将字符串清理为没有目录分隔符(斜杠)的安全有效的文件名。
理想情况下,它应该是可逆的,并且不应过度扰乱名称。
当然我想防止故意的目录遍历攻击。但我也想防止创建子文件夹。
我认为这urlencode()
可行,但我想知道这是否足够,和/或是否有更好或更受欢迎的东西。
此外,如果有一些东西在 Windows 上同样有效(反斜杠作为目录分隔符) - 那么该解决方案将是可移植的。
用例/场景:
作为数据导入的一部分,我想将文件从远程 url 下载到本地文件系统中。网址来自 csv 文件。它们中的大多数都可以,但它们可能包含比预期更多的斜线。
例如,它们中的大多数是这样的:
https://files.example.com/pdf/12345.pdf
但随后个别文件可能是这样的:
https://files.example.com/pdf/1/2345.pdf
这些文件都应该进入同一个目录,例如
https://files.example.com/pdf/12345.pdf
->/destination/dir/12345.pdf
类似的文件1/2345.pdf
不应导致子目录。相反,/
应该以某种(可逆)方式转义。例如,使用 urlencode() 这将是1%2F2345.pdf
.
java - 防止从 JSP 访问 WEB-INF
我正在我们的一台服务器上处理一些安全警报,据此“文件下载”JSP 文件能够让用户下载 Web 应用程序的 WEB-INF 内容(位于站点的根文件夹中)。这是一个非常简单的文件,写于 2007 年,它使用 java.io.FileInputStream 对未经处理的输入返回一个文件给用户。
该警报实际上声称这是一个目录遍历问题,这是一种方式,因为以下 URI 将为用户下载 web.xml:
现在显然应该通过对用户输入进行清理来纠正“目录遍历”部分(这个脚本还没有这样做)。但是,以下 URI 也将 web.xml 传递给用户,但目录遍历的输入清理在这里没有帮助,除非清理检查“WEB-INF”和其他“非法”目录......
是否有一种标准化的方法可以在常见的 servlet 容器中防止这种情况发生,或者这是否需要完全由代码的开发人员管理?我注意到 Java 'normalize()' 函数不会从用户输入中删除该目录。
我试图为此寻找答案,但我能找到的只是关于直接阻止“服务”WEB-INF 的信息,但没有关于阻止从 JSP 文件本身访问它的信息。
谢谢,
汤姆...
linux - 由于遍历的目录不可执行,获取权限被拒绝的原因
我有一个/a/b
用户可读的文件A
。但/a
不提供可执行权限A
,因此路径/a/b
无法遍历/a
。对于任意长的路径,我将如何确定由于用户无法访问中间路径而无法访问给定路径的原因?
php - 如何防止 Apache2 Ubuntu 14 中的目录遍历攻击?
作为系统管理员角色,我必须使用 PHP 构建安全网站。漏洞扫描器提供目录遍历攻击警告。我用谷歌搜索了很多网站,但没有找到合适的解决方案。我已经禁用了索引并将目录拒绝放在 / 上。
目录遍历是否可以通过 Aapache 配置或 PHP 来防止?
请对此进行指导。
帮助将不胜感激。
根据需要更详细的问题。
第 3 方已经发现漏洞并通过 GET 方法下载 /etc/passwd 文件。
这里更详细。
漏洞描述 该脚本可能容易受到目录遍历攻击。
目录遍历是一个漏洞,它允许攻击者访问
受限目录并在 Web 服务器的根目录之外执行命令。
此漏洞影响
发现者:脚本 (Directory_Traversal.script)。
攻击详情
URL 编码的 GET 输入文件设置为 ../../../../../../../../../../etc/passwd
找到的文件内容:
root:x :0:0:root:/root:/bin/bash
查看 HTTP 标头
请求
GET 已删除
offile=../../../../../../../../../../etc/passwd HTTP/1.1
引用者:已删除
Cookie:PHPSESSID=7lnb7v198ul8691398urchg833;
ccity=6cd5165e7bce89782ed37abe9401604a01cb6056s%3A3%3A%22AGR%22%3B;
语言=13d4e1ed1ec441aca81746dd05751ce248f3fff5s%3A2%3A%22ma%22%3B;
YII_CSRF_TOKEN=f5e14954e37e2975baa3eec9007f1d89ee8b0302s%3A40%3A%2234cb9e79ba1cafe5dbc69403f245dbcf708adb9b%22%3B
Host: removed
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko ) Chrome/28.0.1500.63 Safari/537.36
接受:/
回复
HTTP/1.1 200 OK
日期:2016 年 3 月 10 日星期四 08:32:38 GMT
服务器:Apache
X-Powered-By:PHP/5.5.9-1ubuntu4.5
过期:1981 年 11 月 19 日星期四 08:52:00 GMT
缓存-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Transfer-Encoding: binary
Content-Length: 1348
Content-Disposition: inline; 文件名=../../../../../../../../../../etc/passwd
Keep-Alive: timeout=60, max=781
Connection: Keep-活动
内容类型:应用程序/pdf
文件内容
root:x:0:0:root:/root:/bin/bash 守护进程:x:1:1:守护进程:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin :/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60 :games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/ spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr /sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data: x:33:33:www-data:/var/www:/usr/sbin/nologin 备份:x:34:34:backup:/var/backups:/usr/sbin/nologin 列表:x:38:38:邮件列表管理器:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats 错误报告系统(管理员):/var/lib/gnats:/usr/sbin/nologin 没有人:x:65534:65534:nobody:/不存在:/usr/sbin/nologin libuuid:x:100:101::/var/lib/libuuid:syslog:x:101:104::/home/syslog:/bin/ false mysql:x:102:106:MySQL Server,,,:/nonexistent:/bin/false messagebus:x:103:107::/var/run/dbus:/bin/false Landscape:x:104:110: :/var/lib/landscape:/bin/false sshd:x:105:65534::/var/run/sshd:/usr/sbin/nologin ntp:x:106:114::/home/ntp:/bin /false tpl-nag:x:1001:1002::/home/tpl-
该漏洞的影响 通过利用目录遍历漏洞,攻击者可以跨出根目录,访问其他目录中的文件。因此,攻击者可能会查看受限文件或执行命令,从而彻底破坏 Web 服务器。
如何修复此漏洞 您的脚本应从用户输入中过滤元字符。
powershell - 如何计算非特定类型的文件数
下面的代码计算目录和子目录中某些类型的文件的数量:
我将如何计算不属于这些类型的所有文件的数量?
python - python树目录唯一名称,树算法
我正在使用已经实现目录树结构并支持以“奇怪方式”导入此结构的糟糕系统,因为 import 仅支持 format child;parent
。导入约束:
- 子项必须具有唯一名称
- 如果父项重复,则在找到的第一个父项下导入子项
假设要创建以下目录结构
默认导入的外观如何,它不起作用或产生错误的表示:
错误的表示
为了解决这个问题,我决定用唯一的字符串=id
+ 额外的更改(更短的名称等以满足系统要求)重命名每个文件夹并将其导入系统,然后=id
通过数据库删除。
然后导入对看起来像:
并且结构如愿
但是,我需要使用原始结构而不重命名它。
我有一个想法,我可以使用树数据结构将结构保留在内存中,但我陷入了实现中。
我想使用os.walk('root')
,treelib
但我需要帮助来实现它。
高度赞赏所有提示。谢谢
python - 遍历目录时出错 TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到列表
我想打印目录中所有文件的修改时间。为什么会出现此错误?
python - 如何防止来自 Python 代码的目录遍历攻击
我需要防止directory traversal attack
我的代码使用 Python。我的代码如下:
在这里我需要用户像http://127.0.0.1:8000/createfile/?param=../../../../../../../../etc/passwd
这样运行它应该防止目录遍历攻击。