SQL注入测试

 SQL注入测试

 

SQL注入就是通过把SQL命令插入Web表单提交或输入域名页面请求的查询字符串, 最终达到欺骗服务器执行恶意的SQL命令的目的。具体来说,它是利用现有应用程序,将 (恶意)SQL命令注入后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶 意)SQL 语句获取一个存在安全漏洞的网站上的数据库权限,而不是按照设计者的意图 去执行SQL语句。下面通过一个经典的万能密码登录案例深入浅出地介绍SQL注入漏洞。 SQL注入按照请求类型分为:GET型、POST型、Cookie注入型。GET与POST两种类 型的区别是由表单的提交方式决定的。按照数据类型可分为:数字型和字符型(数字也是 字符,严格地说就是一类,区别在于数字型不用闭合前面的SQL语句,而字符型需要闭 合)。测试方法分为报错型、延时型、盲注型、布尔型等。 数字型注入(一般存在于输入的参数为整数的情况下,如 ID、年龄等)测试方法如 下。 第一步:正常请求,查看页面。 第二步:在请求的参数后加and 1=1,如果可以添加执行,则和第一步的返回页面并 无差异。 第三步:在请求参数后加and 1=2,如果返回页面与第二步页面明显不同,或有所差 异,则断定存在数字型注入。 字符型注入(一般存在于接收的参数为字符串的情况下,如姓名、密码等)测试方法 如下。 第一步:正常请求查看页面(如查询admin用户信息,则返回admin用户的信息)。 第二步:在查询的参数后加’or 1=1(有时可以加--来注释后面的语句),加单引号的 目的是闭合前面的SQL语句并与后面的语句形成语法正确的SQL语句。如果可以添加并能 够执行,则返回除 admin 用户外所有用户的信息。这时可以判断存在字符型注入

 

作者:

锦凡歆在 ‘来疯’ 直播唱歌最好听

 

修复建议

每个提交信息的客户端页面、通过服务器端脚本(JSP、ASP、ASPX、PHP等)生成 的客户端页面、提交的表单(FORM)或发出的链接请求中包含的所有变量,必须对变量 的值进行检查,过滤其中包含的特殊字符,或对字符进行转义处理。特殊字符如下。 · SQL语句关键词:如and、or、select、declare、update、xp_cmdshell; · SQL语句特殊符号:’、”、;等。 此外,Web 应用系统接入数据库服务器使用的用户不应为系统管理员,用户角色应 遵循最小权限原则

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值