工欲善其事必先利其器,本文将会演示怎样使用GitBook打造自己的漏洞文库,并实现登陆功能。演示环境:Node.js + Java
一、Node.js
GitBook是一个基于Node.js的命令行工具,笔者推荐安装低版本Node.js,否则会出现莫名的BUG,这里选用v12.22.3。
官网地址:https://nodejs.org/en/,Node.js自带npm命令,使用npm命令安装GitBook。
sudo npm install -g gitbook-cli //Windows系统去掉sudo
二、创建项目
创建一个新的文件夹,使用命令行进入,运行如下命令
gitbook init
文件夹内生成如下文件。md
类型是 markdown
文档文件,需要用到 markdown
语法来进行编辑。
README.md //文库介绍
SUMMARY.md //文库目录结构
三、编写目录
使用 markdown
工具打开 SUMMRAY.md
,中括号里是这个目录的名字,小括号里是路径。
# Summary
* [Introduction](README.md)
* [前言](readme.md)
* [第一章](part1/README.md)
* [第一节](part1/1.md)
* [第二节](part1/2.md)
* [第三节](part1/3.md)
* [第四节](part1/4.md)
* [第二章](part2/README.md)
* [第三章](part3/README.md)
* [第四章](part4/README.md)
手动创建目录与md文件与目录一一对应
四、插件安装
安装目录折叠插件,在项目文件夹中打开 book.json
文件,没有就自己创建一个,将以下代码复制进去
{
"plugins": [
"expandable-chapters-small"
]
}
打开命令行,在这个文件夹中执行命令安装插件
gitbook install
五、启动GitBook
输入启动命令,生成后访问:http://localhost:4000
gitbook serve
_book
文件夹里面是转化后的html文件
六、登录功能实现
静态页面实现登录?笔者通过Java拦截器实现(仅提供一个思路Demo简陋),消息头传输key,匹配则显示漏洞文库内容。
偷个懒,正常情况是获取登陆cookie做鉴权
public class LogInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("n-------- LogInterception.preHandle --- ");
System.out.println("Request URL: " + request.getRequestURL());
System.out.println(request.getHeader("key").equals("123456"));
if(request.getHeader("key").equals("123456")){
return true;
}
return false;
}
}
拦截器指定Gitbook静态目录,命中uri执行preHandle逻辑
public class WebConfig implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogInterceptor()).addPathPatterns("/gitbook/*");
}
}
七、执行结果
输入正确返回文库内容
输入错误返回空
欢迎大家关注、转发、留言吵架
原文始发于微信公众号(深空安全):如何打造自己的漏洞文库Wiki
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论