简介

Web应用程序的数据存储与读取通过数据库完成,而这些读写的操作通过SQL语句实现。实际项目中可能因为开发人员的疏忽或经验问题,未对用户可输入的参数进行严格地校验,导致用户可能恶意地将SQL命令带入数据库执行,实现注入的目的。

SQL注入的条件

  • 参数中含有SQL语句,并可以带入数据库正常执行
  • Web应用程序和数据库的交互中,必须有参数加入请求传递至数据库

SQL注入的方法

1. 搜索型参数

判断是否存在SQL注入漏洞,需满足以下四步:

http://127.0.0.1/sql.php?Parameter=James    #正常查询数据
http://127.0.0.1/sql.php?Parameter=James'   #页面异常或查询数据为空
http://127.0.0.1/sql.php?Parameter=James%'and'%'='  #正常查询数据
http://127.0.0.1/sql.php?Parameter=James%'and'a%'='b    #查询数据为空或提示列表为空

2.数字型参数

判断是否存在SQL注入漏洞,需满足一下四步:

http://127.0.0.1/sql.php?Parameter=10001    #正常查询数据
http://127.0.0.1/sql.php?Parameter=10001'   #页面异常或查询数据为空
http://127.0.0.1/sql.php?Parameter=10001 and 1=1    #正常查询数据
http://127.0.0.1/sql.php?Parameter=10001 and 1=2    #查询数据为空或提示列表为空

3.字符型参数

判断是否存在SQL注入漏洞,需满足一下四步:

http://127.0.0.1/sql.php?Parameter=James    #正常查询数据
http://127.0.0.1/sql.php?Parameter=James'   #页面异常或查询数据为空
http://127.0.0.1/sql.php?Parameter=James' and '1'='1    #正常查询数据
http://127.0.0.1/sql.php?Parameter=James' and '1'='2    #查询数据为空或提示列表为空

后续

此外,一些注入的方法是通过Java+JDBC代码注入(Statement接口改为PreparedStatement接口预防)、MyBatis框架注入(Mapper XML文件’$”拼接改为’#”拼接预防)等实现,因此对于一些对外的Web程序,SQL注入的检查是必须的,否则通过SQL注入的漏洞,外部用户可能获取/修改数据或直接获得管理员权限,这对生产环境来说都是致命的。

SQL注入的测试方法相关推荐

  1. 网站漏洞修复方案防止SQL注入攻击漏洞

    SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注 ...

  2. thinkphp日志泄漏漏洞_ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...

    ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件 根据官方文档对"防止SQL注入" ...

  3. 测试php框架漏洞,ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...

    作者: seay 下面是摘自thinkphp官方的一个公告,官方直接贴出这些东西是非常不负责的行为,跟上次apache公开的Struts2的代码执行一样的行为,会造成很多用户被黑.建议类似的厂商不要再 ...

  4. /plus/recommend.php sql注入漏洞,代码审计:ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法 | Seay 渗透 编程 代码审计 网络安全博客...

    显示不全请点击全屏阅读 下面是摘自thinkphp官方的一个公告,官方直接贴出这些东西是非常不负责的行为,跟上次apache公开的Struts2的代码执行一样的行为,会造成很多用户被黑.建议类似的厂商 ...

  5. SQL注入攻击的常见方式及测试方法

    本文主要针对SQL注入的含义.以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解.适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录.发布等模块的SQL攻击漏洞,至于如何预 ...

  6. SQL注入攻击常见方式及测试方法

    本文主要针对SQL注入的含义.以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解.适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录.发布等模块的SQL攻击漏洞,至于如何预 ...

  7. SQL注入漏洞全接触--入门篇

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...

  8. Apache 'mod_accounting'模块SQL注入漏洞(CVE-2013-5697)

    漏洞版本: mod_accounting 0.5 漏洞描述: BUGTRAQ ID: 62677 CVE ID: CVE-2013-5697mod_accounting是Apache 1.3.x上的流 ...

  9. guestbook.php注入,TinyGuestBook 'sign.php'多个SQL注入漏洞

    发布日期:2012-09-23 更新日期:2012-10-04 受影响系统: TinyGuestBook TinyGuestBook 描述: ----------------------------- ...

最新文章

  1. 2021年大数据Spark(四十一):SparkStreaming实战案例六 自定义输出 foreachRDD
  2. EIGRP特性 Stub Routing
  3. html列表穿插广告怎么实现,基于innerHTML中的script广告实现代码[广告全部放在一个js里面]...
  4. 资深数据产品经理陈家崑:如何从 0 到 1 构建埋点体系
  5. “GIS讲堂”第二课内容的公布
  6. html 新append后的元素如何注册click
  7. AG9 Service order创建好之后,要自动通过middleware传其他系统去 disable
  8. .NET Core 2.1 Preview 2发布 - April 10, 2018
  9. C++静态成员和静态方法
  10. Oracle-查看oracle是否有表被锁
  11. 软件系统安全测试和性能测试的区别,【安全测试】性能测试进阶——基本概念篇...
  12. Linux清除cache的几种方式
  13. oracle导入导出表
  14. 200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作 [建议收藏]
  15. 计算机如何识别英语,Excel自动识别中英文妙招三则 -电脑资料
  16. Android studio 设置签名
  17. P3717 cover
  18. BP反向传播算法原理及公式推导
  19. 凯文·凯利又出预言:未来科技将由这四股力量推动!
  20. MIMO技术杂谈(四):OFDM那些事(二)

热门文章

  1. 拉钩参数加密过程:data
  2. java 使用JNA连接天敏VC4000采集卡
  3. 优思学院|权力下放,给下属自由发挥的空间
  4. 《生命科学50讲》课程笔记10-自由意志
  5. 如何解决win10不能访问局域网其他电脑的问题
  6. 关于onMeasure(转载)
  7. 为 CentOS 配置网络
  8. 05_Java筑基之Java开发初体验
  9. python 三维坐标图
  10. 雷蛇 笔记本 装linux,顺应民意:雷蛇考虑开发Linux版Blade游戏本