最近在简单地研究渗透测试,一直想找一个关于购物场景的漏洞环境,研究一下逻辑漏洞,后面偶然的接触到了hackazon这个开源项目。花了好久的功夫,Windows弄了好久也没法搭建成功,后面就放弃了。本以为Linux环境下搭建比较简单吧,我试了试,好像也挺头疼的。最终还是厚着脸皮请教了大学同寝室的好哥们才搞定的,十分感谢刚哥,不厌其烦的帮我,并且绝大部分报错都帮我完美解决。哈哈。。。今天记录一下我的安装过程,或许也可以帮到有需要的人。
Hackazon项目好像搁浅了,没更新了,不过可以玩玩。后面我又接触到了OWASP的juice-shop开源项目,也是关于购物场景的Web渗透测试环境,是OWASP的旗舰项目,Lunix环境下安装也比较简单,可以玩玩。好吧,废话有点多了,接下来就是正文。
hackazon项目环境要求如下:
hackazon项目地址:https://github.com/rapid7/hackazon
hackazon安装手册下载地址:https://renouncedthoughts.files.wordpress.com/2017/02/hackazon_users_guide.pdf
我搭建这个项目的环境为现在最新的Ubuntu 20.04系统。
项目的安装步骤按照上面提供下载地址的hackazon安装手册的流程进行,当中遇到的问题及解决方法参照如下记录。
一、安装mysql后没有设置root密码环节
项目的mysql版本5.5,而ubuntu20.04的默认版本为8.0,执行到安装手册第三步,安装完该新版本后,没有依照第四步预期的那样自动弹出设置root密码的界面,需要自己手动修改。
解决办法为,首先查看mysql的debian.cnf配置文件,找到默认的user和password,然后利用这个默认用户名和密码登录mysql数据库,再修改root密码,查看命令为sudo cat /etc/mysql/debian.cnf
修改密码步骤:
1) 默认用户名密码登录
mysql -u debian-sys-maint -p
2) 连接到mysql数据库
usemysql;
3) 设置root密码
alteruser 'root'@'localhost' identified with mysql_native_password by '你的密码';
4) 刷新权限
flushprivileges;
5) 退出mysql
quit;
6) 重启mysql服务
sudoservice mysql restart
二、安装PHP5.6
执行到安装手册第五步安装PHP framework时,项目要求PHP5.4,而ubuntu20.04系统的php默认版本为7.4。我能力有限,没法编译安php5.4,只能简单通过ondrej/php ppa源来安装php5.6(此时该源最低版本的php版本为5.6)。我也尝试过跟换更低版本的Ubuntu系统来解决该问题,但换了好几个都不行,后来我就投降了,还是老实地按照刚哥的指导来完成搭建环境。解决步骤如下:
1) 添加ondrej/php ppa源
sudoadd-apt-repository ppa:ondrej/php
2) 更新添加的源的所有软件包
sudoapt-get update
3)安装php5.6framework(后续安装的所有php相关的都php5.6)
sudo apt-getinstall php5.6 libapache2-mod-php5.6
三、执行到安装手册的第二十三步,赋予hackazon数据库所有权限后,还需创建hackazon用户,并赋予hackazon用户所有权限
步骤如下
1) 登录mysql数据库
mysql-u root -p
2) 创建hackazon用户
createuser 'hackazon'@'localhost' identified by 'root密码';
3) 赋予hackazon用户所有权限
GRANTALL PRIVILEGES ON hackazon.* TO 'hackazon'@'localhost';
4) 刷新权限
flushprivileges;
5) 退出
quit;
四、安装完打开http://localhost/ 出现如下错误
Fatalerror: Call to undefined function bcpow() in /var/www/hackazon/vendor/gwtphp/gwtphp/src/util/TypeConversionUtil.class.phpon line 207
由于我们上面安装PHP5.6时没安装其他完整模块,提示缺少bcpow()函数,解决办法为安装bcmath,并重启apache,步骤如下:
1) sudo apt-get installphp5.6-bcmath
2) sudo service apache2 restart
五、网页安装第二步连接数据库出错,需要修改mysqld.cnf配置文件
Error2054: SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please,report to the developers
项目mysql要求版本为5.5,而安装版本为8.0,导致这个错误,编辑mysqld.cnf配置文件(该配置文件所在目录为/etc/mysql/mysql.conf.d/mysqld.cnf),通过编辑命令增加如下三行代码,并保存。
character-set-server= utf8mb4
collation-server= utf8mb4_unicode_ci
default_authentication_plugin=mysql_native_password
编辑命令如下:
sudovi /etc/mysql/mysql.conf.d/mysqld.cnf
并登录mysql的root用户,按顺序输入如下指令解决该错误。
alteruser 'hackazon'@'localhost' identified with mysql_native_password by 'root';
flushprivileges;
quit;
sudo/etc/init.d/mysql restart
六、安装完最后打开主页,左下角显示错误信息,并且点击登录功能,网页变黑且无法登录
Fatalerror: Call to undefined function mb_substr() in/var/www/hackazon/assets/views/home/top_reviews.php on line 34
原因还是前面安装PHP5.6时未安装其他完整的功能模块,才导致这个报错。安装mbsting并修改php配置文件php.ini解决问题,命令如下:
sudoapt-get install php5.6-mbstring(如果安装出现E: Unable tofetch some archives,则升级一下源apt-get update再执行)
修改/etc/php/5.6/apache2/php.ini增加一行配置 extension=mbstring.so
或者把;extension=php_mbstring.dll改为extension=mbstring.so
之后重启apache2解决问题,重启命令如下:
sudo/etc/init.d/apache2 restart
这样最后就可以正常打开hackazon网站了,也可以欢快的探索下这个开源项目。