一、工具注入

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
来源:简书

(一)SQL注入漏洞测试的方式总结的更多相关文章

  1. Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴

    本文由云+社区发表 0x00 前言 干白盒审计有小半年了,大部分是业务上的代码,逻辑的复杂度和功能模块结构都比较简单,干久了收获也就一般,有机会接触一个成熟的产品(vtiger CRM)进行白盒审计, ...

  2. zabbix再爆高危SQL注入漏洞,可获系统权限

    漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...

  3. 《sql注入攻击与防御 第2版》的总结 之 如何确定有sql注入漏洞

    看完<sql注入攻击与防御 第2版>后,发现原来自己也能黑网站了,就一个字:太爽了. 简单总结一下入侵步骤: 1.确定是否有sql注入漏洞 2.确定数据库类型 3.组合sql语句,实施渗透 ...

  4. 利用SQL注入漏洞登录后台

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询 ...

  5. 手工检测SQL注入漏洞

    SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...

  6. SQL注入漏洞总结

    目录: 一.SQL注入漏洞介绍 二.修复建议 三.通用姿势 四.具体实例 五.各种绕过 一.SQL注入漏洞介绍: SQL注入攻击包括通过输入数据从客户端插入或“注入”SQL查询到应用程序.一个成功的S ...

  7. zabbix 爆高危 SQL 注入漏洞,可获系统权限(profileIdx 2 参数)

    漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...

  8. [转]SQL注入漏洞及绑定变量浅谈

    1.一个问题引发的思考 大家在群里讨论了一个问题,奉文帅之命写篇作文,且看: String user_web = "user_web" String sql = "upd ...

  9. 网站sql注入漏洞修复方案之metinfo 6.1.0系列

    近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数 ...

随机推荐

  1. tomcat 8.5 及其 9.0 response写cookie 设置damain为 [.test.com] 出错 An invalid domain [.test.com] was specified for this cookie

    抛出异常: java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cooki ...

  2. 《机器学习_07_01_svm_硬间隔支持向量机与SMO》

    一.简介 支持向量机(svm)的想法与前面介绍的感知机模型类似,找一个超平面将正负样本分开,但svm的想法要更深入了一步,它要求正负样本中离超平面最近的点的距离要尽可能的大,所以svm模型建模可以分为 ...

  3. scrapy中间件之下载中间件使用(网易新闻爬取)

    scrapy项目中的middlewarse.py中间件 爬虫中间件:目前先不介绍 下载中间件(需要在settings.py中开启) (1)请求处理函数:process_request(self, re ...

  4. Djano之ORM多表查询操作

    # 把 model 转化为 迭代器去循环 MODEL.objects.all().iterator() # 等同于 values, values_list, 但是 only 这种方式 获取字段属性依旧 ...

  5. 架构设计 | 接口幂等性原则,防重复提交Token管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.幂等性概念 1.幂等简介 编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同.就是说,一次和多次请求某一个资源会产 ...

  6. Spring 中的事件处理

    Spring 中的事件处理 Spring 的核心是 ApplicationContext,它负责管理 beans 的完整生命周期.当加载 beans 时,ApplicationContext 发布某些 ...

  7. Spring BeanFactory 容器

    Spring 的 BeanFactory 容器 这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在 org.springframework.beans.factory. ...

  8. CF915D Almost Acyclic Graph

    题目链接:http://codeforces.com/contest/915/problem/D 题目大意: 给出一个\(n\)个结点\(m\)条边的有向图(无自环.无重边,2 ≤ n ≤ 500, ...

  9. Redis数据迁移同步工具(redis-shake)

    前言 最近线上一台自建redis服务的服务器频繁报警,内存使用率有点高,这是一台配置比较简陋(2C8G)的机子了,近期也打算准备抛弃它了.抛弃之前需对原先的数据进行迁移,全量数据,增量数据都需要考虑, ...

  10. 剑指Offer之变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:由于青蛙每次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级,故除了 ...