Sql注入之注入点类型和是否存在注入判断
SQL注入之判断注入类型
注入类型分为数字型和字符型和搜索型
例如数字型语句:select * from table where id =3,则字符型如下:select * from table where name=’admin’。可见在测试时需要添加引号去闭合参数时才能使页面返回正确的是字符型注入,不需要添加的是数字型注入。
1.数字型直接带入查询:
select * from <表名> where id = x and 1=1
select * from <表名> where id = x and 1=2
2.字符型需闭合后带入查询:
select * from <表名> where id = 'x' and '1'='1'
select * from <表名> where id = 'x' and '1'='2'
3.搜索型:
一般出现在查询搜索处,要进行搜索型注入,我们还得了解一下sql数据查询中where子句使用Like操作符的知识,Like操作符所起的作用就是模糊查询,要使用Like进行模糊查询必须还要配合通配符才能完成,”%”就是Like操作符中的一种通配符,它代表零个或多个任意字符,为了大家理解,为大家举了一些例子:
Like 'sina%' //返回以sina开始的任意字符
Like '%sina' //返回以sina结尾的任意字符
Like '%sina%' //返回以包含sina的任意字符
a%’ and 1=1 -- 正常
a%’ and 1=2 -- 错误
SQL注入之判断是否存在注入
1.显错注入的判断方法
如这么一个网站www.example.com/index.php?id=1,首先第一步我们先进行是否存在注入的判断,先在数字1后加单引号 ',若页面处错,则存在Sql注入,但注入点是否可利用还和服务端代码和服务器配置息息相关(如过滤一些危险函数或者限制参数的长度时就不可以利用)。其次还可以使用逻辑符号来判断是否存在注入,参数后加and 1=1和and 1=2,若and 1=1页面返回正常,and 1=2返回错误时,则存在Sql注入(这是Sql语法运算符的特点,SQL AND & OR 运算符如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。),否则不一定存在注入。 同理也可以使用or来判断是否存在注入。需要注意的是,我们需要根据注入点的类型来判断是否需要在整个参数中添加注释符或引号。
2.不显错的判断方法
在单引号and和or下都不报错时,也可能存在注入,由于服务器可能配置在参数错误时依然返回原有页面,这样即使存在注入页面也不会发生变化了。我们可利用页面返回时间来判断是否存在注入,如and if(1=0,1, sleep(10)),注意是否需要使用单引号或者注释符。不同的数据库有不同的延时函数,需要结合具体情况来使用。
Sql注入之注入点类型和是否存在注入判断的更多相关文章
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 4.全局防护Bypass之二次注入
0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.二次注入也是 ...
- Spring———bean的创建方式,注入方式,复杂类型注入 概括
Spring相关概念和类 1.IOC inverse of control 控制反转 反转了创建对象的方式 以前:new 对象,管理和维护 ...
- Spring学习(八)-----Spring注入值到集合类型的例子
下面例子向您展示Spring如何注入值到集合类型(List, Set, Map, and Properties). 支持4个主要的集合类型: List – <list/> Set – &l ...
- 一起学Spring之三种注入方式及集合类型注入
本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...
- Spring依赖注入的方式、类型、Bean的作用域、自动注入、在Spring配置文件中引入属性文件
1.Spring依赖注入的方式 通过set方法完成依赖注入 通过构造方法完成依赖注入 2.依赖注入的类型 基本数据类型和字符串 使用value属性 如果是指向另一个对象的引入 使用ref属性 User ...
- SpringMVC 06: 日期类型的变量的注入和显示
日期处理和日期显示 日期处理 此时SpringMVC的项目配置和SpringMVC博客集中(指SpringMVC 02)配置相同 日期处理分为单个日期处理和类中全局日期处理 单个日期处理: 使用@Da ...
- 【spring set注入 注入集合】 使用set注入的方式注入List集合和Map集合/将一个bean注入另一个Bean
Dao层代码: package com.it.dao; public interface SayHell { public void sayHello(); } Dao的Impl实现层: packag ...
- 学习Unity -- 理解依赖注入(IOC)三种方式依赖注入
IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection).作用:将各层的对象以松耦合的方式组织在一起,解耦,各 ...
- 常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战.
常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战. PS:上面是操作.最后是原理 一丶需要了解的API 使用全局钩子注入.我们需要了解几个WindowsAPI. ...
- Spring的三种注入方式(Setter、构造函数和自动注入)
一.Setter注入 这里我是希望在Student.java中调用Course.java中的内容. public class Course { public String name = "数 ...
随机推荐
- 一起了解 .Net Foundation 项目 No.7
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Entity Framew ...
- codewars--js--Write Number in Expanded Form—filters、map、reduce、forEach
问题描述: you will be given a number and you will need to return it as a string in Expanded Form. For ex ...
- java8 常用代码
1. 使用java8 提取出 list 中 bean 的某一属性 public static void main(String[] args) { List<Student> stuLis ...
- JAVA 增删改查接口命名规范(dao层与 service 层
开发时,有很多规范,这里写的是命名规范. Dao 接口命名 insert batchInsert selectOne selectById count selectList update dele ...
- JS淘宝浏览商品
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- linux 开机自启动redis服务
[Unit] Description=The redis-server Process Manager Documentation=https://redis.io/ After=network.ta ...
- 【WCF Restful】Post传参示范
1.传多个参数 接口定义:(ResponseFormat与RequestFormat分别将相应参数序列化.请求参数反序列化) [OperationContract] [WebInvoke(UriTem ...
- windows下XAMPP集成环境中,MySQL数据库的使用
https://jingyan.baidu.com/article/d169e186467a44436611d8b1.html
- P1341 当然是选择AC它了!(字符串处理)
A. 当然是选择AC它了! 题目描述 听闻第八届程序设计大赛马上就要开始了,已经报名的童鞋们都纷纷去 OJ 刷题.但你的女朋友 (tan90°) 想知道她写的 "A + B 问题" ...
- 【Spring】利用spring的JdbcTemplate查询返回结果映射到自定义类型
// org.springframework.jdbc.core.JdbcTemplate 中的查询方法基本都有支持参数RowMapper<T> rowMapper的重载方法.下面只是随便 ...