• SQL注入攻击技术(一)--原理解析


    准备环境

    win2003虚拟机 需要安装SQL Server2008

    一、原理

    注入产生的原因是接受相关参数未经处理直接带入数据库查询操作(注入攻击属于服务端的攻击,因为它攻击的是服务器里面的数据库,xss是客户端的攻击)

    注入最终与数据库,与脚本、平台无关

    二、or漏洞解析(判断有无注入点的办法:)

    1.单引号

    2. 1=1(-1=-1,3=3),有些把1=1或2=2加入黑名单了,但是咱们可以试试别的,如     3=3.-3=-3;

    Name和 password 是没有经过任何处理,直接拿前端传入的数据,这样拼接的SQL会存在注入漏洞。(帐户:yuan 123)

     

    现在我们来分析一下:'or 1=1--(--注释的意思)为什么能登录系统,原因有如下:

    1)、SELECT * FROM admin WHERE Name=''or 1=1 首先看这条查询语句,查询所有来自admin表的数据,条件name为空或者1=1,这两个条件只要一个满足就为真, Name=''or 1=1 现在1=1就是真而且是没任何作用的真,那么最终数据库执行的语句相当于 select * from Admin

    (2)、因为Name值中输入了“--”注释符,后面语句被省略而登录成功。(常常的手法:前面加上'; ' (分号,用于结束前一条语句),后边加上'--' (用于注释后边的语句))

    (3)、不同的程序万能密码也是不一样的,如ASP的万能密码是'or'='or' PHP的万能密码是'or 1=1/* (如果在登陆窗口输入错误的语法出现报错一般说明存在sql注入)详细请看: http://chengkers.lofter.com/post/14c64b_379726

    三、找注入点:

    也就是大型网站可能与数据库交互的地方:

    1.登录的地方:用户名和密码一定是保存在数据库里面的

    2.更新的地方:例如修改密码,一定会把密码带入到数据库中

    3.注册账号的地方:账号密码都会保存在数据库中

    4.留言板

    注入可能出现在哪个地方:

    http头、cookies、referee、user、agent、post提交数据包的地方等

  • 相关阅读:
    Ztree下拉框多选
    FullCalendar日程插件
    viscose 前端常用插件
    一些词
    关于require()和export引入依赖的区别
    关于CMD/AMD和Common.js/Sea.js/Require.js
    vue中的双向数据绑定原理简单理解
    Vue-cli简单使用
    webpack简单配置
    vuex基础
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/14192997.html
Copyright © 2020-2023  润新知