学习笔记-SQL注入1(注入点类型)

SQL注入示例

  通过在用户名出传入参数'or 1=1 -- 进行万能密码登录

select username,passwd from user where username ='text' and password ='text'    //正常语句
select username,passwd from user where username ='text' or 1=1 -- ' and password ='text2'  //--后面带空格 -- '相当于注释符
select username,passwd from user where username ='text' or 1=1    //最终语句   1=1恒为真结果为TRUE,or或运算,所以结果恒为真

  判断一个HTTP请求是否存在SQL注入的方式

  经典:and 1=1 | and 2>1 | or 1=1 | or 1<1    

  数据库:sleep(4)=1 | length(user())>3      //length(user())取当前用户名,如果用户名大于3,返回结果为真

     特殊符号:单引号(') 双引号(") 

 注入点类型分类

  数字型(整型)注入

  输入的参数为整数,如ID,年龄,页码等

  实际查询代码如:select ... from ... where id=$id...

  测试:id=1'    //数据库报错

     id=1 and 1=1  //网站正常显示

     id=1 and 1=2  //网站正常没有任何显示

  字符型注入

  输入的参数为字符串

  实际查询代码如:select ... from ... where id='$id'...

  测试:id=admin'  //id='admin''    返回错误

     id=admin' and '1'='1    //id='admin' and '1'='1'   运行正常

     id=admin' and '1'='2   //id='admin' and '1'='2'      异常

  搜索型注入

  进行数据搜索时没有过滤搜索参数,一般在链接地址中有“keyword=关键字”,有的不显示链接地址,而是直接通过搜索框表单提交

  原型大致:select * from 表名 where 字段 like '%关键字%'

  注入参数为keyword='and[查询条件] and '%'=',SQL语句为:select * from 表名 where 字段 like '%' and [查询条件] and '%'='%'

  

posted @ 2022-09-28 18:10  彩凤898  阅读(154)  评论(0编辑  收藏  举报