简介

SQL 注入是一种专门针对SQL语句的攻击方式。通过把SQL命令插入到web表单提交、输入域名或者页面请求的查询字符串中,利用现有的程序,来非法获取后台的数据库中的信息。在web的测试中涉及到的会比较多些。

注入原理

存在注入的原因是后台在编写程序时,没有对用户输入的数据做过滤。 例:

1、用户在某个输入框提交的参数是123。

浏览器提交的URL为: http://www.xxx.com/index.php?id=123

服务器后台执行SQL语句:select * from table1 where id = 123

此时是没有任何影响的。

2、 如果用户提交的参数是 123;drop table

服务器后台执行SQL语句: select * from table1 where id =123 ; drop table

相当于后台执行了两条SQL语句,查表,并且把table删除, 从而导致了SQL注入

检测注入的方法

目前主要有两种检测方式:

一、手工注入检测流程:

1.  判断是否存在注入点

www.abc.com/index.php?id=2

www.abc.com/index.php?id=2 and 1=1

www.abc.com/index.php?id=2 and 1=2

第2条返回正常,

第1,3条返回不正常说明id参数存在注入漏洞

2.  判定是否存在admin表

www.abc.com/index.php?id=2 and exists(select * from admin)

返回正常,存在admin表

3.  猜admin表中的字段名

www.abc.com/index.php?id=2 and exists(select username from admin)

返回正常 表示admin表存在username字段

4.  检测其他sql操作

二、工具检测:

sqlmap:  sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。

1. 下载地址

https://github.com/sqlmapproject/sqlmap.git

2. 常用命令

测试

以一个sqlmap检测URL为例:

1. 检测过程:

2. 检测结果:

可知该次注入检测没有成功。

防止sql注入代码:(1)修改php.ini magic_quotes_gpc=Off,打开开关,不常用;

(2)获取到参数后,调用$username = addslashes($username);

说明:string addslashes ( string $str ) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL( NULL 字符)。 举例:用户在name中输入' or 1=1#,其中#是sql中的注释,#会过滤sql中的where校验等,而or 1=1恒真,就会造成返回所有用户列表。

(3)mysql_escape_string();原理和(2)差不多;

总结:

登录防sql注入的方法: 1、修改php.ini配置文件中magic_quotes_gpc=On (用单引号引用用户输入的数据)(不实用)

2、使用函数addSlashes() (在预定义字符之前添加反斜杠)

3、使用mysql_escape_string() (在SQL语句特殊字符前添加反斜杠)

拓展:

sql注入检测工具 mysql_SQL注入测试相关推荐

  1. php安全检测软件,SQL注入PHP注入检测工具下载

    如果你是一名网站管理员或者服务器管理员,你需要关心的是网站的安全问题,为了方便大家测试,极速小编为你介绍一款功能强大的网站安全测试工具--微粒明小子旁注,它可以对网站进行旁注检测.SQL注入检测.PH ...

  2. sqlmap地表最强sql注入检测工具学习使用

    官网戳:https://sqlmap.org/ 带着问题去学习:假如有一个POST接口,传递的body是一个json, 我需要去检查这个json里面的一个字段有没有sql注入的可能,我使用sqlmap ...

  3. sql注入攻击实例mysql_SQL 注入攻击案例

    一.检测注入点 二.判断是否存在 SQL 注入可能 三.数据库爆破 四.字段爆破 五.数据库表爆破 六.用户名.密码爆破 七.总结 一.检测注入点 首先,在 http://120.203.13.75: ...

  4. android 微信检测工具,Android 如何测试微信小游戏小程序?

    "微信小游戏性能评测标准建立的初衷是希望能引导开发者优化相关性能数据,提升用户体验.评测标准根据小游戏整体的性能数据表现.玩家体验评价,结合操作系统.机型分档.网络条件等多种维度建立.&qu ...

  5. 线上bug检测工具 android,Android 测试中对于偶现且难以重现的 bug 的处理

    吐槽 请先允许我对此类 bug 进行吐槽,相信做测试的同学都碰见过这种 bug! 我们在测试过程中经常会碰见一类很头疼的 bug,就是偶现性的 bug,所谓偶现性,是相对于必现而言,这类 bug 有些 ...

  6. Linux 硬件响应性能检测工具 硬盘IO测试工具 iozone ioping fio dd

    ioping 读取测试(不会影响设备数据) 块设备测试1 yeqiang@yeqiang-PC:/media/yeqiang$ sudo ioping /dev/sdc -c 10 4 KiB < ...

  7. sql挂起小工具cleanup_SQL注入的攻防策略

    什么是SQL注入? SQL注入风险,是攻击者利用请求参数这样一个入口,拼接上自己的恶意SQL语句,根据错误提示信息.执行时长等信息,窥探数据库的库名.表结构和数据,拿到用户数据,再提权控制整个后端系统 ...

  8. mysql sql注入工具_基础篇——SQL注入(工具注入)

    注入工具 上一篇介绍了SQL注入漏洞以及一些手工注入方法,本篇介绍一下注入工具 1.sqlmap sqlmap属于比较经典的一个注入工具,功能强大,还自带一些绕过参数 使用方法: sqlmap.py ...

  9. [论文分享] 开源 C/C++静态软件缺陷检测工具实证研究

    前言 之前读了一遍这篇论文 开源 C/C++静态软件缺陷检测工具实证研究[1] [软件学报 2022] 属于静态软件分析与漏洞挖掘工具及技术的综述性文章, 今天总结一下 (其他的水话就不多说了, 就像 ...

  10. 渣渣白教你使用工具Safe3 SQL注入安全检测工具

    说明:1.  未经授权的渗透测试都是违法的! 2.  文章用红色字体编写的部分是关键部分(认真看)!!! 3.  文章用黑色字体编写的部分是渣渣白内心独白,无关紧0! 4.  文章用其他颜色字体编写的 ...

最新文章

  1. myecplise 添加svn插件
  2. Solaris 10 x86 上折腾Mono
  3. 将集转换为列表而不创建新列表
  4. WebRTC音频预处理单元APM的整体编译及使用
  5. python输出所有素数_Python实现输出某区间范围内全部素数的方法
  6. 【学习笔记】22、读写文件(I/O操作)— 读文件
  7. json转modbus协议模块_华杰智控Profinet 分布式IO系列模块-华杰智控-新闻中心
  8. 【例1】 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。
  9. Java描述设计模式(10):组合模式
  10. 联合国总部宣布75周年活动用腾讯会议和企业微信举行
  11. JNDI学习总结(2)——JNDI数据源的配置
  12. SpringCloud工作笔记083---Idea中启动多个项目的时候_内存调整_节省内存
  13. logstash_output_mongodb插件用途及安装详解
  14. 如何画圆柱_木饰面、金属包立柱,该如何设计?
  15. IDEA external library 这个里面是空的怎么办
  16. 【深度】最新万字综述自动驾驶,深度解构核心技术!
  17. opencv滤波函数简介
  18. 面对工业4.0,我国工业企业的挑战与对策
  19. 【博学谷学习记录】超强总结,用心分享|js语法基础(一)
  20. C++ winpcap网络抓包代码实现,以及抓包内容解析。

热门文章

  1. C语言-C语言程序的结构
  2. 应用密码学:协议、算法与C源程序(学习第二章)
  3. android三国2,三国演义安卓单机版
  4. 计算机职业素养论文1500字,提升道德素养论文_职业素养论文2000字_工程师职业素养结课论文1500字...
  5. x86汇编--0.资料汇总
  6. 【优化算法】模拟退火算法简介
  7. Junit单元测试的基本步骤
  8. GridView 样式
  9. 英雄联盟游戏结束后显示与服务器失去连接,英雄联盟游戏被终止连接不上解决方法...
  10. 基于Java的愤怒的小鸟游戏的设计与实现