热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQL注入之盲注

盲注的概念:1.何为盲注:盲注就是在SQL注入过程中,找到注入点后,执行SQL语句后,选择的数据或者错误信息

盲注的概念:

1.何为盲注:盲注就是在SQL注入过程中,找到注入点后,执行SQL语句后,选择的数据或者错误信息不能回显到前端页面。
需要利用一些方法进行判断或则猜测,这个过程称之为盲注。

 2.盲注的分类:
1)基于报错显示的盲注
2)基于布尔判断的盲注
3)基于时间延迟的盲注


盲注常用的SQL函数:

1.substr(string,start,length)
功能:截取字符串功能
返回值:为截取后的字符串
参数:string为操作字符串,start为开始位置,length为截取长度。
举例1:
$ret = substr("hello kali",2,4);
ret = "ello";
举例2:
substr(database(),1,1)>'a' //判断数据库名第一位是否大于a;再查看其他位进行判断。

2.mid(column_name,start,length)
功能:截取字符串功能(和substr功能和参数一样)
返回值:为截取后的字符串
参数:column_name为操作字符串,start为开始位置,length为截取长度。
举例1:
$ret = mid("hello kali",2,4);
ret = "ello";
举例2:
mid(database(),1,1)>'a' //判断数据库名第一位是否大于a;再查看其他位进行判断。

3.left(string,n)
功能:返回字符串string最左边的n个字符串
返回值:string最左边的n个字符串。
参数:string为操作字符串,n为开始位置,length为截取长度。
举例1:
$ret = left("redhat",3);
ret = "red"
举例2:
left(database(),2)='sa' //判断数据库名前2个字符是否为sa;再查看其他位进行判断。

4.right(string,n)
功能:返回字符串string最右边的n个字符串。
返回值:string最右边的n个字符串。
参数:string为操作字符串,n为开始位置,length为截取长度。
举例1:
$ret = right("redhat",3);
ret = "hat";
举例2:
right(database(),1)>'a' //判断数据库名最后一个字符是否大于a;再查看其他位进行判断。

5.ord(char)
功能:char为字符,用于返回字符的ascii码,有时候服务器会对单引号进行转义,使用ASCII码就不用使用单引号参数。
参数:char为操作
返回值:返回字符char的ascii码
举例1:
$ret = char('a')
ret = 97;
举例2:
ord(mid(database(),1,1))>114 //意为检测database()的第一位ASCII码是否大于114,也就是'r'。

6.length(string)
功能:截取字符串的长度
参数:string为操作字符串
返回值:返回字符串string的长度
举例1:
$ret = length("hello");
ret = 5;
举例2:
length(database())>5 //判断数据库名长度大于5

7.cast(expression as type)
功能:将任何类型的值转换为具有指定类型的值
参数:sxpression为操作字符串,type为转化类型
返回值:返回的是转化后的值
举例1:
$ret = cast('12' as int);
ret = 12;
cast函数通常和mid和ord函数一起配合使用

8.ifnull(str1,str2)
功能:根据第一个参数是否为null返回具体的值,ifnull里有两个数,如果第一个不是null,返回str1,如果str1=null,返回str2
参数:str1和str2为操作字符串
返回值:根据第一个参数是否为null返回具体的值
举例1:
$ret1 = ifnull("hello","nihao");
$ret2 = ifnull("null","nihao");
ret1 = "hello";
ret2 = "nihao";

9.ascii(str)
功能:str为字符或者字符串,用于返回字符或字符串最左边的ascii码,有时候服务器会对单引号进行转义,使用ASCII码就不用使用单引号参数;(功能和ord一样)
参数:char为操作
返回值:返回字符char的ascii码
举例1:
$ret = ascii('a');
ret = 97;
举例2:
ascii(mid(database(),1,1))>114 //意为检测database()的第一位ASCII码是否大于114,也就是 'r'


什么是ascii码?

在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,每个人都可以约定自己的一套(这就叫编码),而大家如果要像互相通信而不造成混乱,那么大家就必须使用相同的编码规则; ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符,标准ASCII码也叫急促ASCII码,使用7位二进制数(剩下的1位二进制位0)来表示所有的大写和小写字母,数字0到9,标点符号,以及在美式英语中使用的特殊控制字符。


简单的介绍一下ASCII码,具体详解,可以查找相关的文章或视频。


推荐阅读
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 本文整理了Java中org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc.getTypeInfo()方法的一些代码示例,展 ... [详细]
author-avatar
萍聚20121018
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有