点我
SQL注入【联合注入-数字型】
SQL注入【联合注入-数字型】
概述
注入的本质
- 用户输入的数据被当做代码执行
注入条件
- 用户可以控制传参
- 用户输入的语句被带入数据库并执行
显错注入原理
- 用户输入的数据被当做SQL语句执行,并带入数据库执行
- 对用户输入的数据没有做任何过滤,并且将结果返回到页面
显错注入所用函数
order by -->对字段进行排序
group_concat() -->将字符连接起来,输出字符串集合,逗号分开
limit start end 限制select的输出数量
database() -->当前所用数据库名
version() -->数据库版本号
user() -->用户名
靶场Less-2
1、进入靶场
2 、将id=1处1改为2
3、轻松得知:该页面是通过id进行传参,通过改变id的值页面返回不同的内容
4、分别使用and 1=1 和and 1=2 进行探测
5、观察页面发生了变化,使用order by 判断字段数 [一般通过二分法判断]
6、得知字段数为3,使用联合查询
UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。
多个 SELECT 语句会删除重复的数据
0 union select 1,2,3
观察回显点
7、回显点2,3,使用version()和database() 获得版本号和当前数据库的名称
8、得知MySQL版本号为5.0以上版本,所以可以使用MySQL自带数据库information_schema中的table和column表爆出数据
9、使用group_concat 爆出当前数据库下的所有表名
10、查询users表下的所有字段
11、查看user和password字段信息
第一种方法:使用limit 依次得出信息
第二种:使用group_concat()得出信息
后端代码
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
接收id变量的传参,将id的传参值带入数据库进行查询
分类:
WEB安全
版权申明
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论