一、程序安全-SQL注入漏洞
先新建MYDB.MDF,表MyUser:
测试页面:
一、利用报错获取信息
操作:按姓名精确查询,在输入框输入:小卫' and 1=db_name()/0 and '1'='1
执行语句:select * from MyUser where UName='小卫' and 1=db_name()/0 and '1'='1
结果:得到数据库名“MYDB.MDF”
操作:按姓名精确查询,在输入框输入:小卫' and 1=(select top 1 name from sys.tables)/0 and '1'='1
执行语句:select * from MyUser where UName='小卫' and 1=(select top 1 name from sys.tables)/0 and '1'='1
结果:得到表名“MyUser”
修复建议:把接收参数的一个单引号变成两个单引号
执行语句:
select * from MyUser where UName='小卫'' and 1=db_name()/0 and ''1''=''1'
select * from MyUser where UName='小卫'' and 1=(select top 1 name from sys.tables)/0 and ''1''=''1'
结果:无报错信息
二、数字型注入
操作:按编号精确搜索,在输入框输入:2;delete from MyUser--
执行语句:select * from MyUser where UID=2;delete from MyUser--
结果:MyUser 表数据被删除
修复建议:过滤关键字 select、drop、delete 等
三、模糊查询
目的:搜索出姓名带“%”的客户
操作:按姓名模糊查询,在输入框输入:%
执行语句:select * from MyUser where UName like '%%%'
结果:全部的客户都被搜索出来了
修复建议:加中括号转义百分号:[%]
执行语句:select * from MyUser where UName like '%[%]%'
结果:只有姓名带“%”的客户被搜索出来
四、字符型注入
操作:按姓名模糊查询,在输入框输入:小程' or '1'='1
执行语句:select * from MyUser where '小程' or '1'='1'
结果:'1'='1 处可注入
修复建议:把接收参数的一个单引号变成两个单引号
五、order by 型注入
操作:排序规则选择“按年龄降序”,把 value="UAge DESC" 改为 value="UAge DESC,case when 1=1 then UID else UAge END"
执行语句:select * from MyUser order by UAge DESC;delete from MyUser
结果:1=1 处可注入
修复建议:采用数组映射的方式,如1代表按年龄降序,2代表按年龄升序
最新文章
- js学习进阶-页面覆盖
- BZOJ3209 花神的数论题
- 很好用的request转换为实体方法还有判断实体所有参数不能为空的方法
- 类似qq的左滑菜单栏简单实现
- js 原生对象排序
- 如何重启Activity
- POJ-3461 Oulipo(KMP,模式串在主串中出现次数)
- django models 建立好后,table也创建成功了,为什么网页后台不显示的问题
- Linux Kernel basics
- Oracle入门学习笔记
- Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable (转)
- 多普勒失真信号采样Matlab模拟分析
- 学习笔记--jQuery基础
- C语言 进程控制---创建进程fork()函数
- Bash的一些零星笔记
- 闪电侠 Netty 小册里的骚操作
- eclipse添加tomcat服务器
- 修改chrome浏览器默认css样式的方法
- vue 路由传参 params 与 query两种方式的区别
- Boosting 简单介绍
热门文章
- 关于一次同余方程的一类解法(exgcd,CRT,exCRT)
- ARTS打卡计划第五周
- C++入门经典-例7.1-对象之访问类成员
- ADS1.2与MDK4.7冲突问题的解决方法
- openerp学习笔记 tree视图增加复选处理按钮
- 阶段3 3.SpringMVC·_05.文件上传_1 文件上传之上传原理分析和搭建环境
- 点击其他区域关闭dialog
- postman提交数组格式方式
- Hibernate对象的状态分类
- 面试题:检测一个ip的真实性,如果真实,确定其是不是在某一范围内