Pages

Thursday, 22 July 2021

如何安装xsscrapy

  我不想攻击别人,但我更不想被别人攻击。于是乎安全扫描变得格外重要,如此才能防患于未然,xsscrapy 就是这样一个漏洞检测工具。


既然这个工具是用 Python 写的,那么理论上安装应该是一件非常简单的事情:

git clone https://github.com/DanMcInerney/xsscrapy

cd xsscrapy

pip install -r requirements.txt

不过我的服务器运行的操作系统是 CentOS 5.4 ,搭配的环境是 Python 2.4 ,于是整个过程变得异常坎坷,实际上我花了一天的时间才摸索成功,本文记录一下过程:

因为 Python 版本比较旧,所以在动手之前先安装新版 Python ,这没有什么可说的,不过需要提醒的一点是,要确保包含如下开发包,否则 Python 不可用:

yum install openssl-devel bzip2-devel zlib-devel

环境准备好了之后,在安装 xsscrapy 依赖的 lxml 时,出现错误:

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position …: ordinal not in range(128)


看上去似乎是编码问题,但实际上是缺少了依赖的开发包所致:

yum install libxslt-devel libxml2-devel

这还不算完,又遇到如下错误信息:

TypeError: sequence item 0: expected string, int found


网上搜索了一下,发现别人说是 lxml 3.4.0 的 BUG ,于是装了个旧版:

pip install lxml==3.3.6

刚解决了 lxml 的问题,结果按下葫芦起了瓢, cryptography 报错:

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position …: ordinal not in range(128)

有了前面的经验,没有被错误信息误导,沿着日志往前面捋,发现真正的原因:

No package ‘libffi’ found


安装对应的 devel 开发包:

yum install libffi-devel

这还不算完,又遇到如下错误信息:

AttributeError: ‘FFILibrary’ object has no attribute ‘SSL_OP_NO_TICKET’

说起来,这是旧版 pyopenssl 的问题,按照官方补丁改了改,终于成功了。

No comments:

Post a Comment