甲.数字型注入
数字型注入一般提交值没有引号,所以直接在后面构造语句就可以了。
抓包查看
构造语句
提交后
该数据库表内容被爆出来了。
乙.字符型注入
首先我们要知道一点,字符串在数据库中提交是需要用引号将字符串包含的。所以字符型注入一般需要用到引号来闭合字符串,闭合引号后就可以接执行的sql语句,就可以执行。
name='kobe'
这时候需要构造语句 'or 1=1# 单引号是为了闭合1前面的单引号,#是为了注释掉后面语句
这里输入kobe提交后显示了uid和email,猜测语句是 select uid,email from 表 where username='输入的值'
这里要构造语句,输入的值变成'or 1=1#。那么查询语句就是select uid,email from 表 where username=''or 1=1#'
闭合单引号后,把后面一个单引号注释掉。
尝试读取数据库信息。
使用order by 猜表字段数
表字段数为2,开始构造语句
database() 数据库名
version() 数据库版本
user()
22' union select database(),user()#
这里了解下mysql中information_schema数据库,他可以帮助我们查询更多信息。
Mysql 5.0以上中,information_schema数据库会记录当前数据库信息。
information_schema.tables 表名信息
information_schema.columns 列名信息
Table_name 表名
Column_name 列名
Table_schema 数据库名
group_concat用来合并多条数据记录,可用来合并结果。