SQL服务器在执行这条语句时会先进行运算然后执行
1、打开地址,我们可以看到是一个正常的页面。
2.、然后在地址后面加上-1,变成:http://site/news.asp?id=123-1,若返回的页面和前面不同,是另一个正常的页面,则表示存在注入漏洞,而且是数字型的注入漏洞
3、若在地址后面加上 -0,变成 http://site/news.asp?id=123-0,返回的页面和之前的页面相同,然后加上-1,返回错误页面,则也表示存在注入漏洞,而且是数字型的。
4、若在地址后面加上’%2B’,变为:http://site/news.asp?id=123′%2B’,返回的页面和之前的相同;再加上’2%2B’sb,地址变为:http://site/news.asp?id=123′%2Bsb,返回另一个正常的页面,或者说未发现该条记录,或者错误,则表示存在注入漏洞,而且是文本型的。
原因分析:
如果SQL语句是这样执行的(数字):select * from news where id=2881064151
当在后面加上 -1 后,语句变为select * from news where id=123-1
但是SQL服务器在执行这条语句时会先进行运算123-1即为122,然后执行的是:select * from news where id=122
这样选出来的就是另外一条页面记录了。如果该页面存在,就是另一个页面;否则将会显示记录不存在,或者出错。这也同时表示程序未对输入的数据进行过滤,存在数值型的注入漏洞。
如果SQL语句是这样执行的(字符):select * from news where id=’123′
在后面加上 ‘%2B’ 之后,语句变为:select * from news where id=’123′+” (%2B 是 + 的URL编码)
这时SQL服务器实际执行的是:select * from news where id=’123′,会返回同样的页面。
在后面加上 ‘%2B’sb之后,语句变为:select * from news where id=’123′+’sb’ (同样道理,SQL会先执行’123′+’sb’)
则SQL实际执行的是:select * from news where id=’123sb’,返回页面不存在,或者显错,就表示有文本型的注入漏洞。
SQL服务器在执行这条语句时会先进行运算然后执行的更多相关文章
- 【Java】面试官灵魂拷问:if语句执行完else语句真的不会再执行吗?
写在前面 最近跳槽找工作的朋友确实不少,遇到的面试题也是千奇百怪,这不,一名读者朋友面试时,被面试官问到了一个直击灵魂的问题:if 语句执行完else语句真的不会再执行吗?这个奇葩的问题把这名读者问倒 ...
- 【转】使用shell登录远程服务器执行多条命令,ssh登录之后执行脚本文件
原文:https://blog.csdn.net/qq_36622490/article/details/100773589 这个需求主要是我在jenkins中pipeline的代码里,需要使用she ...
- C/C++中如何在main()函数之前执行一条语句?
在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数) #include <stdio.h& ...
- SQL Server 显示执行一条语句的执行时间
set statistics time on执行语句set statistics time off
- 如何在Sql Server 2000中用一条语句实现树的查询
以公司的网站栏目表为例,表结构(表名:Subject)如下: 字段名称 字段类型 字段长度 id int 4 NAME varchar 200 PARENTID int 4 CODE varcha ...
- mysql -- 一次执行多条sql语句
最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.s ...
- 【417】一条语句编译并执行C语言
参考:shell学习笔记(1)Linux下在一行执行多条命令 要实现在一行执行多条Linux命令,分三种情况: 1.&& 举例: lpr /tmp/t2 && rm / ...
- orcale同一条语句运行速度差异问题
在oracle中执行一个查询语句,该语句首次执行时orcale会把其内容存入SGA(系统全局区)中,下次再执行同一条语句的时候就不再去解析该语句,而是直接从SGA区中取出该语句执行,但是前提是SQL没 ...
- sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理
sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理 原文链接http://www.sqlservercentral.com/articles/Stairway+Series/73785/ ...
随机推荐
- 高性能缓存系统Redis安装与使用
在互联网后台架构中,需要应付高并发访问数据库,很多时候都会在数据库上层增加一个缓存服务器来保存经常读写的数据以减少数据库压力,可以使用LVS.Memcached或Redis,Memcached和Red ...
- JS中获得当前时间的年月
//获取完整的日期 var date=new Date; var year=date.getFullYear(); var month=date.getMonth()+1; month =(month ...
- Swagger(webapi自动生成接口说明文档)
1.引入Swagger.Net.UI和Swashbuckle包 2.卸载重复包Swagger.Net 3.多余的SwaggerUI文件夹 4.项目属性->勾选生成xml文档文件 5.添加类Swa ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
- direct path read
在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了. 在10g中,都是通过gc buffer来读的,所以不存在direct pa ...
- C++ 系列:多线程资源收集
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- ORA-27492 无法运行作业,调度程序不可用
ORA-27492:无法运行作业;调度程序不可用 ORA-06512: at "SYS.DBMS_ISCHED", line 185 ORA-06512: AT SYS.DBMS_ ...
- 【leetcode】Add Binary
题目简述: Given two binary strings, return their sum (also a binary string). For example, a = "11&q ...
- 使用Redis的INCR、Hsetnx、Hincrby的命令生成序列号
Redis INCR命令 用于由一个递增key的整数值.如果该key不存在,它被设置为0执行操作之前.如果key包含了错误类型的值或包含不能被表示为整数,字符串,则返回错误.该操作被限制为64位带符号 ...
- js获取css中的样式
众所周知,obj.style只能够获取 <div id="a" style="width:100px;"></div> 结构上的样式 如 ...