美文网首页
【安全】SQL注入-Timing Attack

【安全】SQL注入-Timing Attack

作者: 大婶N72 | 来源:发表于2019-04-02 00:20 被阅读0次

真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。

写在前面

    注入攻击的本质-把用户输入的数据当做代码执行。关键条件是:用户能控制输入;原本程序要执行的代码,拼接了用户输入的数据。

WHAT - 什么是Timing Attack

    从字面单词组合理解来说,就是时间攻击,其实质是通过每次执行SQL的耗时来判断是否存在SQL注入漏洞,听起来不可思议,例如下面的例子:

UNION SELECT IF (SUBSTRING(current,1,1) = CHAR(97),BENCHMARK(5000000, md5( 'test' )),null) FROM (SELECT DATABASE() as current) as tb;

备注:
    该段SQL语句通过对结果时间的比较,来判断数据库名称的首字母是不是a,这样逐步判断就能猜出数据库名称。

HOW- Timing Attack中关键知识点

    1.BENCHMARK(count,expr) 函数执行的结果是将表达式expr执行count次,比如:
select benchmark( 5000000, md5( 'test' ) ); 返回结果是0,耗时1.157秒。

    2.SELECT if(expr1,expr2,expr3) 如果expr1的结果是TRUE,则返回expr2,否则返回expr3。

    3.SELECT database() as db; 获取当前连接的数据库名。其他函数比如system_user()获取当前系统用户,current_user()获取当前登录用户;last_insert_id()获取最后一次插入操作的事物ID。

    4. substring(str, pos, len) 返回字符串str,从pos位置开始,长度为len的字符串,注意这里起始值是1,比如
select substring('example.com', 4, 2); 结果是mp。

    5.UNION 连表查询,得到结果的去重结果,如果不去重,则使用UNION ALL。

相关文章

  • 【安全】SQL注入-Timing Attack

    真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。 【写在前面】...

  • 2020-07-29

    安全渗透测试-sql注入 总目标: 1、sql注入介绍 2、web安全渗透测试分类 3、sql注入原理 4、sql...

  • PHP代码安全之SQL注入

    PHP代码安全之SQL注入 1、什么是SQL注入? SQL攻击(英语:SQL injection),简称注入攻击,...

  • rails项目中使用pbkdf2存储密码

    使用pbkdf2 存储密码 关键词 salt 计算次数可控 防止timing attack timing at...

  • 6.mysql安全性

    SQL语句应该考虑哪些安全性? Sql查询的安全方案【就是考察sql注入】 1.使用预处理语句,防Sql注入 【p...

  • 安全性测试

    安全性,加密传输、重复提交、篡改参数、SQL注入 1. SQL注入的概念: 1.1 概念:SQL注入就是将SQL命...

  • 跟我一起学NodeJS之安全

    安全 本篇介绍web server (Nodejs)层面上存在的安全问题,并解决 sql注入 sql注入就是我们我...

  • 小迪16期-20170408

    安全狗防护注入及绕过思路Sqlmap tamper插件分析. sql注入绕过思路一:提交方式更改注入sql注入绕过...

  • SQL 注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 关于SQL注入与避免

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

网友评论

      本文标题:【安全】SQL注入-Timing Attack

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