Hit it(攻击它),为个人编写的渗透练习靶场,使用java8+html进行编写,方便用户部署起见,前后端不分离,mysql版本使用5及以上(不含5.6),windows环境开发,支持linux部署
功能定位:服务于初学者进行常见漏洞练习
开发目的:巩固安全学习知识,增加项目开发经验
开发目标:本地mysql建好数据库之后,只需要启动一个jar包就可以使用靶场,支持linux环境部署
技术栈如下:
后端技术栈:springboot, mybatis, flyway
前端技术栈:html, css, js, jq
靶场功能:
- 暴力破解
- sql注入
- xss
- rce
- 危险文件下载
后续持续维护,增加新功能
application.yml:
server:
port: 8080
这里的server.port可以根据自己实际情况进行修改,用途:启动项目后,可以根据ip+端口进行访问,比如,我本机启动服务,浏览器访问127.0.0.1:8080就可访问项目
application-dev.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/hitit?museUnicode=true&characterEncoding=utf-8
username: root
password: 123456
# 文件上传下载
file:
path: d:/hitit
这里的spring.datasource.url/username/password都可根据自己的实际情况进行修改,这里是数据库配置
这里的file.path也可以根据自己的实际情况进行修改,这个为上传的文件保存的根路径(可以不用新建此文件夹,因为项目会根据这里的配置自动创建)
- git拉取项目之后,使用编译器打开项目导好包
- 在自己本地装好mysql,用户名root,密码123456,并创建好数据库hitit(utf8mb4),具体的用户名和密码及数据库名都可自定义,但一定要在application.yml文件中进行修改同步(具体看上一步:项目关键配置)
- 启动项目,项目会自动帮您创建好需要的表并添加好数据
- 浏览器访问,你启动项目的电脑的ip+端口即可访问(具体看上一步:项目关键配置)
- 以上,你就启动项目了,开始你的hacker生涯吧
编译方法见上一步(项目启动),启动项目时项目会自动编译
- 打开项目所在文件夹,target目录下的"hitit-0.0.1.jar"就是编译好的jar包,你可以把它复制到您电脑方便的一个地方
- cmd进入jar包所在目录
- 如下命令启动:
java -jar hitit-0.0.1.jar
- 浏览器访问,你启动项目的电脑的ip+端口即可访问(具体看上一步:项目关键配置)
- 下载好jar包之后,把它复制到您电脑方便的一个地方
- 在自己本地装好mysql,用户名root,密码123456,并创建好数据库hitit(utf8mb4),这里的用户名密码和数据库名都不能自定义,只能按照这个配置来
- cmd进入jar包所在目录
- 如下命令启动:
java -jar hitit-0.0.1.jar
- 浏览器访问,你启动项目的电脑的ip+端口即可访问,例如127.0.0.1:8080
- mysql5.6不支持flyway,建议使用mysql5.7或者其他更高版本的数据库
- 运行项目提示flyway报错怎么办?
这个问题,可以将数据库hitit里面的所有表删掉,重新启动项目就可以解决
- 源码启动项目后,我再用jar包启动项目,或者jar包启动项目后,使用源码启动项目,为什么提示flyway报错?
这个是flyway内置算法导致的,通过项目的运行环境和flyway脚本计算生成一条数据,和数据库表flyway_schema_history里面的数据进行对比,匹配失败就会报错
所以建议一直使用一个方法运行此项目,解决方法见问题2