在找好需要测试的功能点之后,针对每种功能点(参数),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注入测试思路相关推荐

  1. SqlMap自动化SQL注入测试工具简绍

    Sqlmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器.它配备了强大的检测引擎,为终极渗透测试仪提供了许多小众功能,以及从数据库指纹识别,从数据库获取数据到访问底层文 ...

  2. SQL注入测试神器sqlmap

    点击上方蓝字"开源优测"一起玩耍 声明 本公众号所有内容,均属微信公众号: 开源优测  所有,任何媒体.网站或个人未经授权不得转载.链接.转贴或以其他方式复制发布/发表.已经本公众 ...

  3. 如何防范SQL注入 SQL注入测试

    从测试来进行测试SQL注入. 首先,看看SQL注入攻击能分为以下三种类型: Inband: 数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页 ...

  4. sql注入 练手网站_新手渗透测试训练营——SQL注入

    学习渗透测试,一定要掌握各种漏洞的检测和利用方法.今天我们分析一下dvwa环境中sql注入从低级到高级的渗透步骤. 手动挖掘Sql注入,首先要发现注入点.以low级别为例,发现一个可以输入内容的文本框 ...

  5. bWAPP中SQL注入思路

    bWAPP中SQL注入思路 SQL Injection (GET/Search) 等级:low 首先看看正常搜索的情况,这里我输入了一个字母b,可以看出来他把标题带有b的电影信息全都给搜出来了 在这里 ...

  6. sql注入程序_Java应用程序中SQL注入

    sql注入程序 在本文中,我们将讨论什么是SQL注入攻击. 以及它如何影响任何Web应用程序使用后端数据库. 在这里,我专注于Java Web应用程序. 开放Web应用程序安全性项目(OWAP)列出了 ...

  7. Pikachu(皮卡丘)靶场中SQL注入

    Pikachu靶场中SQL注入 1.Pikachu(皮卡丘)靶场中SQL注入 1.1.数字型注入 1.2.字符型注入 1.3.搜索型注入 1.4.xx型注入 1.5.insert/update注入 1 ...

  8. 关于ECSHOP中sql注入漏洞修复

    标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...

  9. java 防止sql注入_Java中SQL注入以及如何轻松防止它

    java 防止sql注入 什么是SQL注入? (What is SQL Injection?) SQL Injection is one of the top 10 web application v ...

最新文章

  1. WAIC | Annotator 5.0标注平台盛大发布暨AI数据生态联盟成立
  2. 科学探索奖首批50名获奖者都有谁?
  3. python3编码命名规范_Python代码规范和命名规范
  4. Struts2中的链接标签 s:url和s:a
  5. [渝粤教育] 天津城建大学 混凝土结构设计原理A 参考 资料
  6. 特斯拉电动皮卡发布:马斯克称它能防弹、能上火星,结果还没扛过一钢球......
  7. java epoch times_Java 8新特性探究(七)深入解析日期和时间
  8. 一种非常简单的静态网页生成方法介绍
  9. T SQL + 正则表达式
  10. 区块链 如何提高TPS 为什么区块大小和出块速度越大越好
  11. 关于iOS和OS X废弃的API知识点
  12. USBCAN分析仪在汽车检测上的应用
  13. 产品经理面试必问问题与答题模板
  14. 品质生活最前端 ACCESS品牌管理集团协同VTN会员商城打响品质购物节
  15. failed shard on node [XXX], failed recovery, failure RecoveryFailedException
  16. kinect v2 相机标定
  17. 2010刚出土的句子
  18. HTML+CSS基础训练之实现一个“真实”的网页~
  19. matlab小游戏程序代码,Matlab有趣代码
  20. 组合、聚合、继承详解

热门文章

  1. C语言中两个数交换组成新的数
  2. 程序员笔试笔记c++
  3. JAVA开源资源(非大全)
  4. 文件------概念、基本操作、打开文件的方式、按行读取文件内容、复制文件、文件/目录的常用管理操作、文本文件的编码格式、练习1-4
  5. 霸王之业服务器未响应,三国群英传霸王之业常见问题解答_三国群英传霸业之业新人必看知识_3DM手游...
  6. 多样性强化学习:不光要赢,还要赢得精彩 | 清华吴翼
  7. 永信至诚发起亿元创投基金 助力网络安全创业者成长
  8. 秒云与趋动科技联合发布容器云平台与GPU资源池化整体解决方案
  9. 6-2 两个字符串穿插 (10 分) pta c语言
  10. 2022年100家公司真实的面试题笔试题汇总