web网站中常见攻击之SQL注入
2019-05-06 10:12:06 【

所谓SQL注入,就是把SQL命令插入到Web表单提交, 或输入域名, 或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的


具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行


它可以通过在Web表单中输入SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者的意图去执行SQL语句


举个例子,你要登录一个网站,上面让你输入用户名字和密码。


那么,假如你输入的用户名是 admin ,但是你不知道密码,你就输入了一个 1' OR '1' = '1


那么,你就提交了两个参数给服务器。


假如,服务器拿这两个参数拼SQL语句


SELECT T.* FROM XXX_TABLE T WHERE T.USER_ID = '/*param1*/'AND T.PASSWORD = '/*param2*/'


那么,你提交的两个参数就使SQL语句变成了


SELECT T.* FROM XXX_TABLE T WHERE T.USER_ID = 'admin' AND T.PASSWORD = '1' OR '1' = '1'


那么,这个SQL原来的校验功能就被你绕过去了,你的这种行为就称之为SQL注入


为了成功注入SQL命令,攻击者必须将开发者现有的sql命令转化成合法的sql语句,当然,要盲注总是有难度的,但一般都是


'OR1=1– 或者 ')OR1=1--


总结一下SQL注入的思路


  • SQL注入漏洞的判断,即寻找注入点

  • 判断后台数据库类型

  • 确定XP_CMDSHELL可执行情况;若当前连接数据的帐号具有SA权限, 且master.dbo.xp_cmdshell扩展存储过程(调用此存储过程可以直接使用操作系统的shell)能够正确执行,则整个计算机可以通过几种方法完全控制,也就完成了整个注入过程


否则继续


  • 发现WEB虚拟目录

  • 上传ASP木马

  • 得到管理员权限


对SQL注入的防御方法


  • 使用参数化的过滤性语句

  • 避免出现详细的错误信息

  • 使用专业的漏洞扫描工具

  • 避免使用解释程序

  • 在web应用程序开发过程的所有阶段实施代码的安全检查



】【打印关闭】 【返回顶部
上一篇web网站中常见攻击之Cookie攻击 下一篇服务器租用如何防止数据丢失?服..