简介
什么是kong,Kong是一个开源的api网关,其实我很早就开始使用了,最主要原因是因为可以加一个web界面方便去管理各个服务,添加插件也很方便,但是个人一直很不喜欢这个东西,没有原因,就是不喜欢,默认搭建的时候kong建议开4个端口
- 8000
- 8443
- 8001
- 8444
8000是代理http流量的,8443是用来代理https端口的,8001是管理restful接口走http协议,8444是管理restful接口走https协议,因为8001和8444直接访问时不需要任何验证的,所以只要端口对公网开放,理论上所有人都可以接管你的kong
漏洞利用
这里我们直接使用docker启动一个kong的web管理界面konga就可以了
首先搭建一个postgresql
postgres的docker-compose文件
version: "3"
services:
kong-postgres:
image: "postgres:9.5"
container_name: "kong-postgres"
restart: "always"
environment:
- "POSTGRES_PASSWORD=changeme"
- "POSTGRES_USER=konga"
- "POSTGRES_DB=konga"
ports:
- "5432:5432"
volumes:
- "./kong-postgres-data/:/var/lib/postgresql/data"
healthcheck:
test: ["CMD", "pg_isready", "-U", "kong"]
interval: 30s
timeout: 30s
retries: 3
之后使用docker-compose启动
docker-compose up -d
接着是konga的docker-compose文件
version: "3"
services:
konga:
image: "pantsel/konga:latest"
container_name: "konga"
restart: "always"
ports:
- "1337:1337"
environment:
- "DB_ADAPTER=postgres"
- "DB_HOST=192.168.3.14"
- "DB_USER=konga"
- "DB_PASSWORD=changeme"
- "DB_DATABASE=konga"
- "TOKEN_SECRET=changeme"
- "NODE_ENV=production"
根据你的网络环境修改一下DB_HOST
之后使用docker-compose启动konga
启动完成之后进入容器prepare一下数据库
docker exec -it konga bash
node ./bin/konga.js prepare --adapter postgres --uri postgresql://konga:[email protected]:5432/konga
prepare完成之后重启konga
docker-compose down && docker-compose up -d
接着访问konga的界面
127.0.0.1:1337
创建用户名密码
登陆
之后就是要找目标了
找暴露在公网的8001端口
这里我推荐使用shadon
https://www.shodan.io
登陆shadon之后
直接在输入框中输入
kong port:"8001" country:"CN"
选择一个ip在konga的界面输入
- name:任意
- Kong Admin URL: http://ip:8001
点击创建链接就可以了
防范
这个很简单,只要别让8001和8444端口暴露在公网中就好了
欢迎关注我的博客www.bboy.app
Have Fun