一 前言

在桌面软件的客户查询输入框输入特殊字符,居然发现有sql注入漏洞。所以,决定把这个知识点捋一捋。

二 什么是SQL注入

提起概念,直接拿百度百科的解释先有个初步理解吧。

摘自百度百科:

“所谓SQL注入式×××,就是输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式×××。”

从上面的解释不难发现,SQL注入就是通过构造特定的输入,提交到服务器后,欺骗服务器执行恶意的SQL命令,这是从×××者角度考虑的。如果是从防御者角度,在产品发布前就需要进行安全测试,对可能存在SQL的漏洞进行排查、修复。

三 快速理解SQL注入

上面的概念化,可能还会觉得茫然,好吧,那我们就用简洁、直观的图表进一步描述SQL注入是如何进行欺骗的。

首先我们以51cto的登录界面作为例子,看一个正常的登录场景:

为了描述sql注入的概念,现在我们把这个登录的处理逻辑简化。假如我们输入用户名pingshan和密码1111,点击登录按钮后,后台服务器会执行如下sql语句:

Select count(*) from user where user_name=’pingshan’ and pass_word =’1111’

如果返回值为空,则登录成功。

现在假设存在sql注入漏洞,用户名输入pingshan';--,如图所示:

当我们点击登录按钮进行提交后,后台服务器进行拼串,执行的sql语句将是这样的:

Select count(*) from user where user_name=’pingshan’;--’ and pass_word =’1111’

有没发现?!后面的密码条件直接被注释掉了(-- 注释符号),就是说,只有知道任意一个用户名,就可以无密登录了,多可怕!

四 如何防止SQL注入

防止SQL注入的思路有以下几点:

1. 对用户的输入进行校验,可以通过正则表达式、限制长度、对单引号和双"-"等特殊字符进行转换;

2. 使用参数化的sql或直接使用存储过程进行数据查询存取,避免使用动态拼装sql;

3. 为每个应用配置权限有限的数据库连接,避免使用管理员权限的数据库连接;

4. 对重要或机密信息进行加密后存储;

5. 异常信息给尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装;

五 如何进行SQL注入检测

SQL注入检测一般采用工具进行自动化检测,而且这方面的工具比较多,介绍其中2个:

sqlmap:一个非常强大的sql注入检测与辅助工具

工具网址:http://sqlmap.org/

SQLiv:一款批量SQL注入漏洞扫描工具

介绍网址:http://www.freebuf.com/column/150588.html

转载于:https://blog.51cto.com/2681882/2176336

认识安全测试之SQL注入相关推荐

  1. 渗透测试之SQL注入基础

    渗透测试之SQL注入基础 SQL注入类型 按照数据类型类型来分类 按照执行效果来分类(页面回显效果) 按照数据提交的方式来分类 判断注入类型的方法 MySQL注入基础 联合查询注入 布尔注入 时间盲注 ...

  2. 软件安全测试之SQL注入

    安全测试之SQL注入 1.安全测试在项目整体流程中所处的位置 一般建议在集成测试前根据产品实现架构及安全需求,完成安全性测试需求分析和测试设计,准备好安全测试用例.在集成版本正式转测试后,即可进行安全 ...

  3. sql 命令未正确结束_渗透测试之SQL注入(1)

    渗 透 测 试 之 SQL 注 入(1) 前言 不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影 ...

  4. 安全测试之sql注入测试

    这篇文章,主要是来总结一下,sql注入应该如何去测试. 测试端:数据库服务端 测试点:sql注入 使用工具:burpsuit或Appscan工具或手工或sqlmap 测试方案: 1.使用ibatis或 ...

  5. 安全测试之SQL注入攻击

    一.SQL注入攻击的概念 首先说一下,攻击者之所以可以利用自己输入的数据来达到攻击网站的目的,原因就在于SQL语言作为一种解释型语言,它的数据其实是由程序员编写的代码和用户提交的数据共同组成的.正是这 ...

  6. 渗透测试之SQL注入

    SQL注入 SQL注入指web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过不同的条件产生不同的SQL语句 sql注入漏洞的产生需要满 ...

  7. php mysql 注入一句话木马_渗透技术--SQL注入写一句话木马原理

    讲一下SQL注入中写一句话拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 这个语句,下面是一个语句的例子: SELECT * INTO OUTFILE 'C:\ ...

  8. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  9. SQL 注入攻防入门详解

    为什么80%的码农都做不了架构师?>>>    SQL 注入攻防入门详解 原文出处: 滴答的雨 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对 ...

最新文章

  1. NeurIPS 2021 | 通过动态图评分匹配预测分子构象
  2. ecshop资料网址
  3. 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )
  4. 手把手教你从Core Data迁移到Realm
  5. LeetCode 1568. 使陆地分离的最少天数(DFS)
  6. B站疯传!堪称最强!一整套架构实战资料,白拿不谢!
  7. 关闭惠普计算机通电启动注册表,惠普10代cpu电脑装win7卡logo(安装程序正在更新注册表设置)解决方法...
  8. 转:VS2005的DataGridView 多维合并标题 功能拓展
  9. 记 笔记软件极力推荐------------->思源
  10. 如何从水经注万能地图下载器35款地图中选择合适的地图下载
  11. 【060】助力一箭四星,翼辉系统再续辉煌
  12. 微信开放平台接入支付后不显示头像
  13. SylixOS -- 网卡驱动浅析
  14. 新换的手机号码被人注册了微信怎么办?
  15. 网络攻防技术(2021期末考试)
  16. 5-TAMRA标记LYS赖氨酸,5-TAMRA-Lysine结构式及光谱图分享
  17. 【大学物理】期末复习原题+答案(超实用)
  18. [转载]投资正道vs冯时能30年股票投资16心得
  19. Nature Microbiology:植物根系分泌物影响菌群结构
  20. 大一大学计算机期末试卷,大一大学计算机基础教程期末考试题

热门文章

  1. Java匹马行天下之 Java国出了个Java——举国欢庆
  2. Ubuntu下添加打印机---之寻找设备lpinfo
  3. GPS NMEA0183协议解析(转载)
  4. 解决Nginx出现403 forbidden
  5. IDEA: 遇到问题Error during artifact deployment. See server log for details解决方法
  6. thinkphp的find()方法获取结果
  7. 一个 bootstrap 弹出框插件
  8. Android 通过软引用实现图片缓存,防止内存溢出
  9. 逻辑回归与线性回归的区别与联系
  10. LeetCode-20.有效的括号(栈的使用+map的count)