{"id":13796586,"url":"https://github.com/grt1st/wooyun_search","last_synced_at":"2026-01-08T06:59:37.609Z","repository":{"id":144248790,"uuid":"68286479","full_name":"grt1st/wooyun_search","owner":"grt1st","description":"乌云公开漏洞、知识库搜索 search from wooyun.org","archived":false,"fork":false,"pushed_at":"2018-07-06T19:00:06.000Z","size":590,"stargazers_count":377,"open_issues_count":4,"forks_count":160,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-08-04T23:10:32.697Z","etag":null,"topics":["security","wooyun"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grt1st.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-09-15T10:55:35.000Z","updated_at":"2024-07-24T12:45:29.000Z","dependencies_parsed_at":"2023-05-29T06:00:26.481Z","dependency_job_id":null,"html_url":"https://github.com/grt1st/wooyun_search","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grt1st%2Fwooyun_search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grt1st%2Fwooyun_search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grt1st%2Fwooyun_search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grt1st%2Fwooyun_search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grt1st","download_url":"https://codeload.github.com/grt1st/wooyun_search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225159871,"owners_count":17430200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["security","wooyun"],"created_at":"2024-08-03T23:01:12.207Z","updated_at":"2026-01-08T06:59:37.603Z","avatar_url":"https://github.com/grt1st.png","language":"PHP","funding_links":[],"categories":["WooYun","\u003ca id=\"8c5a692b5d26527ef346687e047c5c21\"\u003e\u003c/a\u003e收集"],"sub_categories":[],"readme":"# wooyun_search\n**乌云公开漏洞、知识库搜索**\n\n![index](index.jpg)\n![search](search.jpg)\n![author](author.jpg)\n\n0x00.介绍\n--------\n+ 灵感来源于hanc00l的github项目[wooyun_public](https://github.com/hanc00l/wooyun_public)\n\n+ wooyun_public基于flask或者tornado，而本项目可以布置在apache、nginx等web服务器上。\n\n+ 如果你有wooyun的静态网页数据，那么我们可以开始了！\n\n+ 整个项目包括两个部分，第一部分是索引，将网页信息存储进数据库;第二部分是搜索，从数据库中查找信息。轻量级，支持进行二次开发。\n\n+ 静态网页网盘链接：\n```\t\nbugs   链接: https://pan.baidu.com/s/1n_kkUaZZxcTEa4-v6sGa9Q 密码: sg98 (20180707)\ndrops  链接: https://pan.baidu.com/s/1r2Y7rfntwnjglX6HtzDk6w 密码: 738f (20180707)\n```\n\n0x01.依赖组件及说明\n--------\n+ python 2.7和pip\n\n+ python依赖:MySQLdb，lxml(推荐)\n\n+ mysql,php及任意web服务器（php需开启pdo-mysql模块\n\n+ 将本项目放进web服务器目录下，bugs目录下为漏洞库文件，drops目录下为知识库文件。\n```\n文件说明：\n\tapp_bugs.py                      bugs的索引，依赖lxml\n\tapp_drops.py                     drops的索引，依赖lxml\n\tindex.html                       搜索的主页\n\tsearch.php                       执行搜索的页面\n\tconfig.php                       php配置文件\n\t./bugs                           bugs静态文件的目录\n\t./drops                          drops静态文件的目录\n```\n\n0x02.索引配置 \n--------\n+ app_bugs.py为建立bugs索引的脚本，app_drops为建立drops索引的脚本。\n\n+ 因为python脚本中open()函数打开的文件名不能为中文，建议将drops目录下的中文文件名改为英文(例如，安全运维-xxxx.html=\u003esafe-xxxx.html)\n\n+ python脚本运行前需要修改如下语句，更改参数如主机、端口号、用户名、密码。\n```bash\n    conn=MySQLdb.connect(host='localhost',port=3306,user='root',passwd='',db='wooyun',charset='utf8')\n```\n\n+ 在mysql中建立数据库wooyun，数据表bugs、drops，分别建立字段title,dates,author,type,corp,doc与title,dates,author,type,doc。\n```bash\n    CREATE DATABASE `wooyun` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;\n    create table bugs(title VARCHAR(500),dates DATETIME, author CHAR(255),type CHAR(255),corp CHAR(255),doc VARCHAR(200) PRIMARY KEY);\n    create table drops(title VARCHAR(500),dates DATETIME, author CHAR(255),type CHAR(255),doc VARCHAR(200) PRIMARY KEY);\n```\n+ 注意mysql编码如下，需要为utf-8（character_set_server不为utf-8要修改mysql配置文件\n```bash\nuse wooyun;\nshow variables like 'character%'; #查看编码\n+--------------------------+----------------------------+\n| Variable_name            | Value                      |\n+--------------------------+----------------------------+\n| character_set_client     | utf8                       |\n| character_set_connection | utf8                       |\n| character_set_database   | utf8                       |\n| character_set_filesystem | binary                     |\n| character_set_results    | utf8                       |\n| character_set_server     | utf8                       |\n| character_set_system     | utf8                       |\n| character_sets_dir       | /usr/share/mysql/charsets/ |\n+--------------------------+----------------------------+\n``` \n如果编码错误会报错，比如：\n```\nWarning: Incorrect string value: '\\xE5\\xBB\\xB6\\xE9\\x95\\xBF...' for column 'title' at row 1\ncur.execute(\"INSERT INTO `drops`(`title`,`dates`,`author`,`type`,`doc`) VALUES(%s,%s,%s,%s,%s)\", tmp)\n```\n在mysql里查看会发现有一堆???\n\n+ 之后就可以建立索引了\n```bash\nsudo python ./app_bugs.py\nsudo python ./app_drops.py\n```\t\n+ bugs数目为40280，drops数目为1264\n```bash\nuse wooyun;\nselect count(*) from bugs;\nselect count(*) from drops;\n```\n\n0x03.搜索配置 \n--------\n+ 修改config.php中修改如下语句中参数，分别是主机、端口、用户名、密码与数据库。\n```php\n$config['host'] = '127.0.0.1';\n$config['port'] = '3306';\n$config['user'] = 'root';\n$config['passwd'] = '';\n$config['database'] = 'wooyun'; \n```\n\n+ index.html与search.php样式来自于前端静态资源托管库。f12进入开发者模式，如果样式文件访问不到可以使用本地或cdn的样式(bootstrap3.3.7、jquery3.1.0)。只需要更改两个网页里面的如下内容。\n\n```\n\u003clink href=\"//lib.baomitu.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css\" rel=\"stylesheet\" type=\"text/css\"\u003e\n\u003cscript type=\"text/javascript\" src=\"//lib.baomitu.com/jquery/3.1.0/jquery.min.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"//lib.baomitu.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js\"\u003e\u003c/script\u003e\n```\n\n+ 为了防止因为web服务器配置不正确，导致访问http(s)://example.link/bugs/或者http(s)://example.link/drops/而进入index of页面泄露所有文件，在目录下放置内容为空的index.html即可。\n\n+ linux下由于selinux可能会导致无法连接数据库，可以使用如下命令：\n```bash\ngetenforce   //查看selinux状态\nsetenforce 0   //暂时关闭selinux\n```\n\n0x04.问题\n--------\n\n+ drops很奇怪的会都需web目录下的js而不是本身目录里的js，所以drops的页面会有些乱。开发者模式看一下，缺少的js为web目录/static/drops/css与web目录/static/drops/js。新建目录再把drops下的css、js文件夹复制过去即可\n\n0x05.更新日志\n--------\n\n+ 2016.10.08更新：上传了bugs.py。由于bugs部分页面(约143条)的author带有js，正则匹配出的信息出错，所以上传了bugs.py用于修正，在app.py后执行，python bugs.py。(2016.11.09已修正，无需执行bugs.py)\n\n+ 2016.10.10更新：重写了search.php和search.css，基本适配了各种浏览器和移动端。\n\n+ 2016.11.09更新：匹配索引将BeautifulSoup换成了lxml，运行速度更快。优化了匹配(感谢@tuola)。\n\n+ 2017.01.01更新：增加了作者搜索，优化了分页逻辑。\n\n+ 2017.3.7更新：重写了前端，优化了php代码。\n\n+ 欢迎反馈问题。可以提问issue也可以通过grt1stnull@gmail.com联系我。后续也会进行其他细节优化。\n\n0x06.后记\n--------\n\n+ 本来打算把wooyun_public布置在我的树莓派上，因为一些原因失败，所以萌生了自己搭建的念头\n\n+ 总共搭建了十天，接触了js、bootstarap、beautifulsoup、mysqldb、mysqli和pdo。虽然以前也会css与php，但这是第一次真正写一个动态网页，感觉很棒。\n\n0x07.其他\n--------\n\n+ 本程序只用于技术研究和个人使用，程序组件均为开源程序，漏洞和知识库来源于乌云公开漏洞，版权归wooyun.org。\n\n+ 新浪微博:http://weibo.com/grt1st\n\n+ 个人邮箱:grt1stnull@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrt1st%2Fwooyun_search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrt1st%2Fwooyun_search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrt1st%2Fwooyun_search/lists"}