• (一)SQL注入漏洞测试的方式总结


    一、工具注入

    1.SQLMap的作用

    • 判断可注入的参数
    • 判断可以用那种SQL注入技术来注入
    • 识别出哪种数据库
    • 根据用户选择,读取哪些数据(库、表、列、字段值...)

    2.注入技术

    • 【A】基于布尔的盲注(Boolean-Based Blind Injection):
      可以根据返回页面判断条件真假的注入
    • 【B】基于时间的盲注(Time-Based Blind Injection):
      不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断
    • 【C】基于报错注入(Error-Based Injection):
      页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
    • 【D】联合查询注入(Union Query Injection):
      可以使用union的情况下的注入
    • 【E】堆查询注入(Stacked Query Injection):
      可以同时执行多条语句的执行时的注入
    • 【F】内联注入(Inline Injection):
      向查询注入一些SQL代码后,原来的查询仍然会全部执行

    3.操作步骤

    1)利用扫描工具(如AppScan/AWVS),遍历探索网站,找出带参数的动态/伪静态url
    2)初步判断是否为SQL注入的链接
    3)利用自动化工具or手工进一步验证是否为注入点
    GET请求:python sqlmap.py -u "{test-url}"
    需要登录:python sqlmap.py -u "{test-url}" --cookie="cookie"
    POST请求:python sqlmap.py -u "{test-url}" --data="parameter=value"
    4)若是注入点,则尝试获取DB的类型和版本、服务器信息
    5)DB的数目及名称
    python sqlmap.py -u "{test-url}" --dbs
    6)每个DB下面的表
    python sqlmap.py -u "{test-url}" -D dbName --tables
    7)表中的字段(列)
    直接输出指定DB指定Table的列表&值的信息
    python sqlmap.py -u "{test-url}" -D dbName -T tblName --dump
    python sqlmap.py -u "{test-url}" -D dbname -T tblName --columns
    8)字段的属性值
    python sqlmap.py -u "{test-url}" -D dbName -T tblName -C "x1,x2,..." --dump
    9)查看Web当前使用的DB
    python sqlmap.py -u "{test-url}" --current-db
    10)列出DB Server所有用户
    python sqlmap.py -u "{test-url}" --users
    11)DB的账户和密码
    python sqlmap.py -u "{test-url}" --passwords

    二、手工注入

    1.注入参数类型

    • 字符型
      1)可添加单引号or双引号测试
    • 数字型
      1)不需要添加开始和结尾的单引号定界符
      2)数据库处理数值类型的值时,数值可不带引号

    2.判断注入原则

    确认是否存在SQL注入漏洞,主要是理解服务器端正在执行什么SQL代码,然后针对每种情况构造注入相应的条件,收集所返回的响应情况,推测SQL注入的类型,逐步猜解数据库相关的数据信息

    3.常见注入点

    根据应用程序和数据交互的地方进行判断

    • Authentication(认证页面)
    • Search Fields(搜索页面)
    • Post Fields(Post请求)
    • Get Fields(Get请求)
    • HTTP Header(HTTP头部)
    • Cookie



    作者:Fighting_001
    链接:https://www.jianshu.com/p/50a48ac63cc5
    来源:简书

  • 相关阅读:
    Handler机制来处理子线程去更新UI线程控件
    获得某月份的天数
    listview选中没有效果
    kali或其他系统,虚拟机中不能加载镜像
    tomcat开启多个端口
    kali自定义分辨率
    Redis 安装手册
    bash检查centos服务器运行状态
    关于利用RD client远程电脑,和输入法的一些问题
    centOS下 MYSQL基本操作
  • 原文地址:https://www.cnblogs.com/uestc2007/p/11347527.html
Copyright © 2020-2023  润新知