【发布时间】:2015-01-02 18:56:14
【问题描述】:
我有一个检查文件漏洞的脚本。如果文件路径存在,则脚本会检查是否可以读取该文件。但是,当我设置文件的权限时, os.access() 无论如何都能够读取文件。在 Windows 中,我拒绝了所有权限,在 Linux 中,我在文件上尝试了 chmod 000 并在两台机器上得到了相同的输出。代码如下:
import sys
import os
if len(sys.argv) == 2:
filename = sys.argv[1]
if not os.path.isfile(filename):
print '[-] ' + filename + ' does not exist.'
exit(0)
if not os.access(filename, os.R_OK):
print '[-] ' + filename + ': access denied.'
exit(0)
print '[+] Reading Vulnerabilities From: ' + filename
每当我传递不正确的文件名或路径时,os.path.isFile() 工作正常,但 os.access() 不能。我对 python 也很陌生,所有帮助将不胜感激
更新:
当我运行脚本时,我使用命令:
python scriptName.py vuln_banners.txt
在我已经跑完之后
chmod 000 vuln_banners.txt
我得到的唯一输出是:
'[+] Reading Vulnerabilities From: vuln_banners.txt
我跑了
ls -la vuln_banners.txt
并得到输出:
---------- 1 root root 397 Dec 31 22:32 vuln_banners.txt
【问题讨论】:
-
现在很清楚了,谢谢。我试图重现这一点,但我不能。
-
我无法在 Linux 上重现此内容,但既然您正在阅读该文件,您是否考虑过在打开时使用
try/except? -
(我怀疑
chmod出了点问题。或者你正在以root 身份运行脚本。:-)) -
您是从 root 运行脚本还是以 root 权限运行脚本?因为即使root权限为000,也可以实际读取文件。
-
@Digisec 我从 root 运行。我需要以标准用户身份运行它吗?我可能应该提到我对 linux 也有点陌生,哈哈
标签: python