记一次在服务器上wooyun搜索站的搭建

<–more–>

首先必须要感谢一下 hancool大哥的帮忙阿~~~ 至少帮我解决了不少麻烦

wooyun_pulic

wooyun公开漏洞以及知识库和搜索


依赖组件

python2.7和pip
mongodb
scrapy
flask 或者tornado( 个人建议用tornado 这个比较稳定 有能力的人可以自己写一下)
pymongo
Elasticsearch(搜索引擎,可选)

ubuntu下安装

1、安装python、pip、mongodb

1
sudo apt-get install python python-pip mongodb

2、安装scrapy

1
2
3
4
5
安装scrapy如果报错,则先apt-get安装下述依赖包,然后安装pip安装lxml后即可正常安装scrapy
sudo apt-get install libxml2-dev libxslt1-dev python-dev zlib1g-dev libevent-dev python-openssl

sudo pip install lxml
sudo pip install scrapy

3、安装pymongo和flask(或tornado)

1
2
sudo pip install flask pymongo
(sudo pip install tornado)

4、从github下载源码

1
git clone https://github.com/hanc00l/wooyun_public

爬虫

鉴于wooyun已经关了 其实这里的爬虫已经没有用了~ 所以详细步骤就不写了

搜索

漏洞搜索使用了Flask作为web server,bootstrap作为前端(8.12增加tornador web server,可配合nginx反向代理,支持高并发的应用)
启动web server :在flask目录下运行./app.py,默认端口是5000
启动Elassticsearch(如果已配置了Elasticsearch):在elasticsearch-2.3.4/bin目录下运行./elasticsearch -d (-d表示以后台方式运行)
搜索:在浏览器通过http://localhost:5000进行搜索漏洞,多个关键字可以用空格分开。
默认使用mongodb的数据库搜索,在进行全文搜索时比较慢,推荐安装使用Elasicsearch搜索引擎。

安装和配置Elasicsearch的方法(点我)

安装elasticsearch

1、安装JDK(或者JRE)

1
sudo apt-get install openjdk-7-jdk

2、下载elasticseach

1
2
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz
tar xvf elasticsearch-2.3.4.tar.gz

3、运行elasticsearch

1
2
cd elasticsearch-2.3.4/bin
./elasticsearch

4、测试一下,安装完成运行后elasticsearch会在9200端口上进行监听

1
2
3
4
5
6
7
8
9
10
11
12
13
curl -X GET http://localhost:9200
{
"name" : "Sebastian Shaw",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.3.4",
"build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f",
"build_timestamp" : "2016-06-30T11:24:31Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}

配置mongodb

1、编辑/etc/mongodb.conf,增加:

1
2
replSet=rs0 #这里是指定replSet的名字 
oplogSize=100 #这里是指定oplog表数据大小(太大了不支持)

重启动mongodb

1
sudo service mongodb restart

2,进入mongodb shell,初始化replicSet

1
2
mongo
rs.initiate( {"_id" : "rs0", "version" : 1, "members" : [ { "_id" : 0, "host" : "127.0.0.1:27017" } ]})

3,搭建好replicSet之后,退出mongo shell重新登录,提示符会变成:rs0:PRIMARY>,就可以退出Mongodb

安装中文分词插件elasticsearch-analysis-ik

1、从github下载编译好好的插件

1
2
3
4
cd ~  
sudo apt-get install unzip
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.9.4/elasticsearch-analysis-ik-1.9.4.zip
unzip elasticsearch-analysis-ik-1.9.4.zip

2、将插件复制到elasticsearch的plugins目录

1
cp -r elasticsearch-analysis-ik elasticsearch-2.3.4/plugins

3、修改elasticsearch.yml配置,定义插件配置

1
vi elasticsearch-2.3.4/config/elasticsearch.yml

在最后增加:

1
2
index.analysis.analyzer.ik.type : 'ik'
index.analysis.analyzer.default.type : 'ik'

4、退出并重启elasticsearch

1
2
elasticsearch-2.3.4/bin/elasticsearch -d
(-d表示以后台方式运行)

安装mongo-connector,将数据同步到elasticsearch

1
2
sudo pip install mongo-connector elastic2_doc_manager
sudo mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager

显示Logging to mongo-connector.log.后将会把mongodb数据库的信息同步到elasticsearch中,完全同步完成估计需要30分钟左右,同步期间不能中断,否则可能导致elasticsearch与mongodb数据不一致。

在同步过程中,可能会报错:

1
2
3
OperationFailed: ConnectionTimeout caused by - ReadTimeoutError(HTTPConnectionPool(host=u'localhost', port=9200): Read timed out. (read timeout=10))
2016-08-04 17:24:53,372 [ERROR] mongo_connector.oplog_manager:633 - OplogThread: Failed during dump collection cannot recover! Collection(Database(MongoClient(u'127.0.0.1', 27017), u'local'), u'oplog.rs')
2016-08-04 17:24:54,371 [ERROR] mongo_connector.connector:304 - MongoConnector: OplogThread <OplogThread(Thread-7, started 140485117060864)> unexpectedly stopped! Shutting down

解决办法:
修改timeout值,从默认的10改为200

1
sudo vi /usr/local/lib/python2.7/dist-packages/mongo_connector/doc_managers/elastic2_doc_manager.py

1
2
3
4
5
将:
self.elastic = Elasticsearch(hosts=[url],**kwargs.get('clientOptions', {}))

修改为:
self.elastic = Elasticsearch(hosts=[url],timeout=200, **kwargs.get('clientOptions', {}))

启用全文搜索

1、安装elasticsearch-py

1
pip install elasticsearch

2、更新app.py

1
2
cd ~/wooyun_public
git pull

3、修改app.py

1
2
3
vi ~/wooyun_public/flask/app.py
修改:
SEARCH_BY_ES = 'auto'

为mongodb数据库创建索引

1
2
3
4
mongo
use wooyun
db.wooyun_list.ensureIndex({"datetime":1})
db.wooyun_drops.ensureIndex({"datetime":1})

Push内容

一共有两部分内容,一份内容在wooyun_public/flask/static
就是statci整个文件包含了大部分内容
还有一份内容在mongodb数据库里面~ 需要打包下来
打包命令是

1
mongodump -h 127.0.0.1 -o /home/wooyun/mongodb/

后面的地址是保存路径
还原数据库命令是

1
mongorestore   /home/wooyun/mongodb/

虚拟机下载地址

http://pan.baidu.com/s/1kVtY2rX 提取密码:5ik7 PS:这个是hancool前辈做的

其他

主要内容都是copy了是hancool前辈的的文章~
文章地址在github 如果想用虚拟机或者看更详细的内容 可以从去github看看https://github.com/hanc00l/wooyun_public

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. wooyun_pulic
  2. 2. 依赖组件
  3. 3. ubuntu下安装
    1. 3.1. 1、安装python、pip、mongodb
    2. 3.2. 2、安装scrapy
    3. 3.3. 3、安装pymongo和flask(或tornado)
    4. 3.4. 4、从github下载源码
  4. 4. 爬虫
  5. 5. 搜索
  6. 6. 安装和配置Elasicsearch的方法(点我)
    1. 6.1. 安装elasticsearch
      1. 6.1.1. 1、安装JDK(或者JRE)
      2. 6.1.2. 2、下载elasticseach
      3. 6.1.3. 3、运行elasticsearch
      4. 6.1.4. 4、测试一下,安装完成运行后elasticsearch会在9200端口上进行监听
    2. 6.2. 配置mongodb
      1. 6.2.1. 1、编辑/etc/mongodb.conf,增加:
      2. 6.2.2. 2,进入mongodb shell,初始化replicSet
      3. 6.2.3. 3,搭建好replicSet之后,退出mongo shell重新登录,提示符会变成:rs0:PRIMARY>,就可以退出Mongodb
    3. 6.3. 安装中文分词插件elasticsearch-analysis-ik
      1. 6.3.1. 1、从github下载编译好好的插件
      2. 6.3.2. 2、将插件复制到elasticsearch的plugins目录
      3. 6.3.3. 3、修改elasticsearch.yml配置,定义插件配置
      4. 6.3.4. 4、退出并重启elasticsearch
    4. 6.4. 安装mongo-connector,将数据同步到elasticsearch
    5. 6.5. 启用全文搜索
      1. 6.5.1. 1、安装elasticsearch-py
      2. 6.5.2. 2、更新app.py
      3. 6.5.3. 3、修改app.py
  7. 7. 为mongodb数据库创建索引
  8. 8. Push内容
  9. 9. 虚拟机下载地址
  10. 10. 其他
,