(一)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
来源:简书
(一)SQL注入漏洞测试的方式总结的更多相关文章
- Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴
本文由云+社区发表 0x00 前言 干白盒审计有小半年了,大部分是业务上的代码,逻辑的复杂度和功能模块结构都比较简单,干久了收获也就一般,有机会接触一个成熟的产品(vtiger CRM)进行白盒审计, ...
- zabbix再爆高危SQL注入漏洞,可获系统权限
漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...
- 《sql注入攻击与防御 第2版》的总结 之 如何确定有sql注入漏洞
看完<sql注入攻击与防御 第2版>后,发现原来自己也能黑网站了,就一个字:太爽了. 简单总结一下入侵步骤: 1.确定是否有sql注入漏洞 2.确定数据库类型 3.组合sql语句,实施渗透 ...
- 利用SQL注入漏洞登录后台
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询 ...
- 手工检测SQL注入漏洞
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...
- SQL注入漏洞总结
目录: 一.SQL注入漏洞介绍 二.修复建议 三.通用姿势 四.具体实例 五.各种绕过 一.SQL注入漏洞介绍: SQL注入攻击包括通过输入数据从客户端插入或“注入”SQL查询到应用程序.一个成功的S ...
- zabbix 爆高危 SQL 注入漏洞,可获系统权限(profileIdx 2 参数)
漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...
- [转]SQL注入漏洞及绑定变量浅谈
1.一个问题引发的思考 大家在群里讨论了一个问题,奉文帅之命写篇作文,且看: String user_web = "user_web" String sql = "upd ...
- 网站sql注入漏洞修复方案之metinfo 6.1.0系列
近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数 ...
随机推荐
- mybatis association的使用
在上一篇文章中介绍了collection的使用以及java bean,表的结构,今天进行association使用的学习,在多对一的映射关系中,查询到多的一方顺带查询出一的一方是常见的!在此例子中,在 ...
- JTextpane 添加行号
最近项目需求,需要在JTextPane上添加行号等信息,网上找了好久只找到JTextArea添加行号信息,copy网上的程序研究了下,发现自己改改就可以让JTextPane显示行号! 代码: pack ...
- JVM系列(2)-GC
1.什么是GC? 大白话说就是垃圾回收机制,内存空间是有限的,你创建的每个对象和变量都会占据内存,gc做的就是对象清除将内存释放出来,这就是GC要做的事. 2.需要GC的区域 说起垃圾回收的场所,了解 ...
- ql的python学习之路-day5
文件操作 文件操作流程: 1.打开文件得到文件句柄并赋值变量 2.通过句柄对文件进行操作 3.关闭文件 打开的只是储存在计算机里的文件对象,必须赋值一个变量才能操作,变量通常用f表示,赋值f的文件对象 ...
- 「雕爷学编程」Arduino动手做(28)——RGB全彩LED模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- vue-cli搭建vue项目
1 安装node,npm npm i node npmnode -v npm -v 2 查看webpack版本,这里要注意,webpack如果为4.0,可能不兼容vue-cli 先卸载 npm un ...
- linux常用命令---打包压缩解压
打包压缩解压
- CF948B Primal Sport
题目链接:http://codeforces.com/contest/948/problem/B 知识点: 素数 解题思路: \(f(x)\) 表示 \(x\) 的最大素因子.不难想到:\(X_1 \ ...
- 转载 配置vue项目
Vue作为前端三大框架之一截至到目前在github上以收获44,873颗星,足以说明其以悄然成为主流.16年10月Vue发布了2.x版本,经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本 ...
- JavaScript实现树深度优先和广度优先遍历搜索
1.前置条件 我们提前构建一棵树,类型为 Tree ,其节点类型为 Note.这里我们不进行过多的实现,简单描述下 Note 的结构: class Node{ constructor(data){ t ...