安全测试中sql注入测试思路
在找好需要测试的功能点之后,针对每种功能点(参数),sql注入测试一般遵循下面步骤:
1. 测试注入类型,数字型or字符型
如果参数中直接包含字母,那么直接可以判断是字符型参数,如id=4a。
若参数是数字通常可以考虑输入表达式来判断,如id=6,可尝试输入id=7-1或id=3*2
- 如果返回结果和id=6相同,可以确认为数字,进行2. 逻辑判断
- 若返回空,可进一步测试是否为字符型或是否有过滤。在参数后加单引号,如id=6’
- 若出现了数据库报错,那么极大可能存在字符型sql注入,直接进行2.逻辑测试。
- 如果返回空或正常,则进行4. 过滤判断
2. 测试逻辑语句
- 以逻辑真和逻辑假共同测试,形如:
id=6' and 1=1 --
id=6' and '1'='1
id=6' and 1=2 --
id=6' and '1'='2
//如果是数字型注入,那么id=6'后的单引号省略
- 根据实际情况来判断是否需要拼接语句,拼接方法也因地制宜
- 若逻辑真返回结果和id=6结果相同,逻辑假返回空,则可以判断存在sql注入
- 若逻辑真和逻辑加返回结果都和id=6结果相同或都为空,则进行4. 过滤判断
- 若过滤判断成功绕过过滤,但也没有返回符合逻辑真假的结果,则不存在sql注入或进行3. 延时判断
3. 测试延时语句
- 在一些情况下,可根据个人判断,假如一个页面的返回结果可能和参数无关,也就是说,参数的查询结果或语句报错都不会影响页面的返回的情况下,可以尝试延时注入,如id=6 and sleep(5) –
- 若成功延时返回,则说明存在sql注入
- 若没成功延时,则进行4. 过滤判断
- 过滤测试若成功绕过,也没有触发延时,则不存在sql注入
4. 测试有无过滤策略
- 下面测试仅针对“过滤”,如被“拦截”比较明显,无需测试。首先进行fuzz测试,输入如id=6asidji
- 若结果和id=6相同,则后台存在数据类型转换或非直接饮用参数,不存在sql注入
- 若返回结果空则进行特殊单词过滤检测,如id=6and,id=6sleep(5),id=6’等
- 若返回结果和id=6相同,说明目标单词被过滤,尝试替换绕过后继续测试,若找不到绕过方式,怀疑为白名单或无法绕过,可认为不存在sql注入
- 若返回结果为空,则说明没有被过滤,尝试单词组合,如id=6 and(这句话测试空格和and的组合,还有其他组合,具体组合方式因地制宜,无需构造完整的sql语句)
- 若返回结果和id=6相同,则被过滤,尝试替换绕过后继续测试,若找不到绕过方式,怀疑为白名单或无法绕过,可认为不存在sql注入
- 若返回结果为空,则说明不存在过滤,进行更多的组合测试,若没发现过滤,那么结合之前的1. 2. 3.三步测试结果(一定是前三步没有收获才会进行这一步)可得出结论不存在sql注入。
- 根据实际情况进行http协议层面的绕过,如测试中目标开启了waf,怀疑被waf过滤,那么可尝试http协议绕过。
安全测试中sql注入测试思路相关推荐
- SqlMap自动化SQL注入测试工具简绍
Sqlmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器.它配备了强大的检测引擎,为终极渗透测试仪提供了许多小众功能,以及从数据库指纹识别,从数据库获取数据到访问底层文 ...
- SQL注入测试神器sqlmap
点击上方蓝字"开源优测"一起玩耍 声明 本公众号所有内容,均属微信公众号: 开源优测 所有,任何媒体.网站或个人未经授权不得转载.链接.转贴或以其他方式复制发布/发表.已经本公众 ...
- 如何防范SQL注入 SQL注入测试
从测试来进行测试SQL注入. 首先,看看SQL注入攻击能分为以下三种类型: Inband: 数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页 ...
- sql注入 练手网站_新手渗透测试训练营——SQL注入
学习渗透测试,一定要掌握各种漏洞的检测和利用方法.今天我们分析一下dvwa环境中sql注入从低级到高级的渗透步骤. 手动挖掘Sql注入,首先要发现注入点.以low级别为例,发现一个可以输入内容的文本框 ...
- bWAPP中SQL注入思路
bWAPP中SQL注入思路 SQL Injection (GET/Search) 等级:low 首先看看正常搜索的情况,这里我输入了一个字母b,可以看出来他把标题带有b的电影信息全都给搜出来了 在这里 ...
- sql注入程序_Java应用程序中SQL注入
sql注入程序 在本文中,我们将讨论什么是SQL注入攻击. 以及它如何影响任何Web应用程序使用后端数据库. 在这里,我专注于Java Web应用程序. 开放Web应用程序安全性项目(OWAP)列出了 ...
- Pikachu(皮卡丘)靶场中SQL注入
Pikachu靶场中SQL注入 1.Pikachu(皮卡丘)靶场中SQL注入 1.1.数字型注入 1.2.字符型注入 1.3.搜索型注入 1.4.xx型注入 1.5.insert/update注入 1 ...
- 关于ECSHOP中sql注入漏洞修复
标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...
- java 防止sql注入_Java中SQL注入以及如何轻松防止它
java 防止sql注入 什么是SQL注入? (What is SQL Injection?) SQL Injection is one of the top 10 web application v ...
最新文章
- WAIC | Annotator 5.0标注平台盛大发布暨AI数据生态联盟成立
- 科学探索奖首批50名获奖者都有谁?
- python3编码命名规范_Python代码规范和命名规范
- Struts2中的链接标签 s:url和s:a
- [渝粤教育] 天津城建大学 混凝土结构设计原理A 参考 资料
- 特斯拉电动皮卡发布:马斯克称它能防弹、能上火星,结果还没扛过一钢球......
- java epoch times_Java 8新特性探究(七)深入解析日期和时间
- 一种非常简单的静态网页生成方法介绍
- T SQL + 正则表达式
- 区块链 如何提高TPS 为什么区块大小和出块速度越大越好
- 关于iOS和OS X废弃的API知识点
- USBCAN分析仪在汽车检测上的应用
- 产品经理面试必问问题与答题模板
- 品质生活最前端 ACCESS品牌管理集团协同VTN会员商城打响品质购物节
- failed shard on node [XXX], failed recovery, failure RecoveryFailedException
- kinect v2 相机标定
- 2010刚出土的句子
- HTML+CSS基础训练之实现一个“真实”的网页~
- matlab小游戏程序代码,Matlab有趣代码
- 组合、聚合、继承详解
热门文章
- C语言中两个数交换组成新的数
- 程序员笔试笔记c++
- JAVA开源资源(非大全)
- 文件------概念、基本操作、打开文件的方式、按行读取文件内容、复制文件、文件/目录的常用管理操作、文本文件的编码格式、练习1-4
- 霸王之业服务器未响应,三国群英传霸王之业常见问题解答_三国群英传霸业之业新人必看知识_3DM手游...
- 多样性强化学习:不光要赢,还要赢得精彩 | 清华吴翼
- 永信至诚发起亿元创投基金 助力网络安全创业者成长
- 秒云与趋动科技联合发布容器云平台与GPU资源池化整体解决方案
- 6-2 两个字符串穿插 (10 分) pta c语言
- 2022年100家公司真实的面试题笔试题汇总