欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

SQL注入关联分析

来源:本站整理 作者:sm0nk@猎户实验室 时间:2016-06-27 TAG: 我要投稿

0x00 序


打开亚马逊,当挑选一本《Android4高级编程》时,它会不失时机的列出你可能还会感兴趣的书籍,比如Android游戏开发、Cocos2d-x引擎等,让你的购物车又丰富了些,而钱包又空了些。关联分析,即从一个数据集中发现项之间的隐藏关系。

在Web攻防中,SQL注入绝对是一个技能的频繁项,为了技术的成熟化、自动化、智能化,我们有必要建立SQL注入与之相关典型技术之间的关联规则。在分析过程中,整个规则均围绕核心词进行直线展开,我们简单称之为“线性”关联。以知识点的复杂性我们虽然称不上为神经网络,但它依然像滚雪球般对知识架构进行完善升级,所以也可称之为雪球技术。

本文以SQL注入为核心,进行的资料信息整合性解读,主要目的有:

  1. 为关联分析这门科学提供简单认知
  2. 为初级安全爱好学习者提供参考,大牛绕过
  3. 分析各关键点的区别与联系
  4. 安全扫盲

本文结构如下:

p1

PS:文章中使用了N多表格形式,主要是为了更好的区别与联系,便于关联分析及对比。

0x01 基本科普


1.1 概念说明

说明:通过在用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为。http://wiki.wooyun.org/web:sql

影响:数据库增删改查、后台登录、getshell

修复:

  1. 使用参数检查的方式,拦截带有SQL语法的参数传入应用程序
  2. 使用预编译的处理方式处理拼接了用户参数的SQL语句
  3. 在参数即将进入数据库执行之前,对SQL语句的语义进行完整性检查,确认语义没有发生变化
  4. 在出现SQL注入漏洞时,要在出现问题的参数拼接进SQL语句前进行过滤或者校验,不要依赖程序最开始处防护代码
  5. 定期审计数据库执行日志,查看是否存在应用程序正常逻辑之外的SQL语句执行

1.2 注入分类

  1. 按照数据包方式分类
    1. Get post cookie auth
  2. 按照呈现形式
    1. 回显型注入
      1. Int string search
    2. 盲注
      1. Error bool time
    3. 另类注入
      1. 宽字节注入
      2. http header 注入
      3. 伪静态
      4. Base64变形

0x02 神器解读


2.1 何为神器

使用方法,参见乌云知识库。

  1. sqlmap用户手册
  2. sqlmap用户手册[续]
  3. sqlmap进阶使用

Tamper 概览

脚本名称 作用
apostrophemask.py 用utf8代替引号
equaltolike.py like 代替等号
space2dash.py 绕过过滤‘=’ 替换空格字符(”),('' – ')后跟一个破折号注释,一个随机字符串和一个新行(’ n’)
greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。
space2hash.py 空格替换为#号 随机字符串 以及换行符
apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。
halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论
space2morehash.py 空格替换为 #号 以及更多随机字符串 换行符
appendnullbyte.py 在有效负荷结束位置加载零字节字符编码
ifnull2ifisnull.py 绕过对 IFNULL 过滤。 替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’
space2mssqlblank.py 空格替换为其它空符号
base64encode.py 用base64编码替换
space2mssqlhash.py 替换空格
modsecurityversioned.py 过滤空格,包含完整的查询版本注释
space2mysqlblank.py 空格替换其它空白符号(mysql)
between.py 用between替换大于号(>)
space2mysqldash.py 替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)
multiplespaces.py 围绕SQL关键字添加多个空格
space2plus.py 用+替换空格
bluecoat.py 代替空格字符后与一个有效的随机空白字符的SQL语句。 然后替换=为like
nonrecursivereplacement.py 取代predefined SQL关键字with表示 suitable for替代(例如 .replace(“SELECT”、””)) filters
space2randomblank.py 代替空格字符(“”)从一个随机的空白字符可选字符的有效集
sp_password.py 追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾
chardoubleencode.py 双url编码(不处理以编码的)
unionalltounion.py 替换UNION ALL SELECT UNION SELECT
charencode.py url编码
randomcase.py 随机大小写
unmagicquotes.py 宽字符绕过 GPC addslashes
randomcomments.py 用/**/分割sql关键字
charunicodeencode.py 字符串 unicode 编码
securesphere.py 追加特制的字符串
versionedmorekeywords.py 注释绕过
space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’

[1] [2] [3] [4] [5] [6] [7] [8]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载