我正试图使用w3af
开始对我正在使用的web应用程序进行一些常规安全测试。安装说明建议克隆一个git repo,然后运行python代码,看看哪些依赖项没有满足,然后安装它们。我第一次运行的结果是:
ModuleNotFoundError: No module named 'ConfigParser
好的,没问题,对吧?
$ pip install ConfigParser
Collecting ConfigParser
Downloading configparser-5.2.0-py3-none-any.whl (19 kB)
Installing collected packages: ConfigParser
Successfully installed ConfigParser-5.2.0
任务完成了,让我们再试一次!$ ./w3af_console
Traceback (most recent call last):
File "./w3af_console", line 12, in <module>
from w3af.core.controllers.dependency_check.dependency_check import dependency_check
File "/Users/westonx/bin/w3af/w3af/core/controllers/dependency_check/dependency_check.py", line 26, in <module>
from w3af.core.data.db.startup_cfg import StartUpConfig
File "/Users/westonx/bin/w3af/w3af/core/data/db/startup_cfg.py", line 22, in <module>
import ConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
嗯。我发誓我们已经搞定了。让我们再次运行pip(也许是pip3?)来确定一下。
$ pip3 install ConfigParser
Requirement already satisfied: ConfigParser in /Users/westonx/.pyenv/versions/3.8.2/lib/python3.8/site-packages (5.2.0)
似乎不错。让我们检查一下导入路径是否包含该目录:
$ python -c "import sys; print('n'.join(sys.path)); import ConfigParser;"
/Users/westonx/.pyenv/versions/3.8.2/lib/python38.zip
/Users/westonx/.pyenv/versions/3.8.2/lib/python3.8
/Users/westonx/.pyenv/versions/3.8.2/lib/python3.8/lib-dynload
/Users/westonx/.pyenv/versions/3.8.2/lib/python3.8/site-packages
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'ConfigParser'
所以…我们知道系统。Path包含PIP指定的模块安装目录,但是当我们导入它时,python坚持认为它不在那里。
configparser-5.2.0。Dist-info和configparser.py确实在我的~/.pyenv/versions/3.8.2/lib/python3.8/site-packages目录中,所以它看起来不像PIP告诉我一些不真实的东西。但它看起来确实像蟒蛇。
我在MacOS 10.14上使用pyenv,不确定这是否有区别。有人知道下一步该怎么做吗?
ConfigParser
是Python中的内置库,但在Python 3中其名称改为configparser
。看起来w3af
仍然在使用Python 2(我发现这个检查积极地声明它,但你从来没有得到那么远)。因此,要运行这段代码,您需要使用Python 2来运行它。
python3
与w3af
代码库的兼容性问题非常多(成千上万)。ConfigParser问题只是你遇到的第一个问题-代码库中充满了对过时/未维护的库的引用,并且不支持python3字节字符串与unicode字符串(b""
vs""
),它们在整个代码库中使用。
在Github上有一个w4af
项目,有人已经努力将所有w3af
代码移植到python3
,但你没有从我这里听到。