SQL注入 你的名字 2022-07-26 11:15 256阅读 0赞 **基本概念:** 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。 **1. 原理** SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。 根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。 **2. 攻击** 当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。 **3. 防护** 归纳一下,主要有以下几点: 1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。 4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装 **4.举例** 某个网站的登录验证的SQL查询代码为: strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');" 恶意填入 userName = "1' OR '1'='1"; 与 passWord = "1' OR '1'='1"; 时,将导致原本的SQL字符串被填为 strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');" 也就是实际上运行的SQL命令会变成下面这样的 strSQL = "SELECT * FROM users;" 因此达到无账号密码,亦可登录网站。所以SQL注入攻击被俗称为黑客的填空游戏。 End;
相关 sql注入 1、假如有一个系统,需要输入用户名和密码进行登录,那么这个系统的后台肯定有一条sql,这个sql的逻辑是根据用户名和密码去 查询有没有这个用户,如果有,就登录成功,如果没有, 朱雀/ 2023年06月19日 02:29/ 0 赞/ 3 阅读
相关 sql注入 [表单hhhhh][hhhhh] [tricks][] 今天发现了带外注入 out of band(OOB) [hhhhh]: https://www.netspark 柔情只为你懂/ 2022年12月13日 14:04/ 0 赞/ 183 阅读
相关 Sql注入 防止SQL注入 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过[正则表达式][Link 1],或限制长度;对单引号和双"-"进行转换等。 2 我就是我/ 2022年08月23日 12:51/ 0 赞/ 248 阅读
相关 SQL注入 基本概念: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序, 你的名字/ 2022年07月26日 11:15/ 0 赞/ 257 阅读
相关 SQL注入 SQL注入(SQL injection),是应用程序在数据库层的安全漏洞, 简而言之,在输入的字符串(web表单,输入域名或页面请求)中注入SQL语句,程序未设置对字符串的 朱雀/ 2022年07月20日 12:11/ 0 赞/ 300 阅读
相关 sql注入 所谓的sql注入就是当我们输入用户名和密码时用户输入了用户名+‘\,没有输入密码就直接连接数据库的操作 当我们开发人员进行编程时,如果将要发送的mysql语句用拼接的方式发送 电玩女神/ 2022年05月24日 03:43/ 0 赞/ 287 阅读
相关 sql注入与防止sql注入 数据库中的数据 ![70][] sql代码 package com.zjw.jdbc2; import java.sql.Connection; 超、凢脫俗/ 2022年05月10日 19:12/ 0 赞/ 406 阅读
相关 SQL注入 一、SQL注入概念 1、sql注入是一种将sql代码添加到输入参数中 2、传递到sql服务器解析并执行的一种攻击手法 举例:某个网站的用户名为name=‘ad 妖狐艹你老母/ 2022年01月29日 06:21/ 0 赞/ 363 阅读
相关 sql注入 sql注入说的是不知道数据库的用户名和密码的情况下进入数据库的方法 例如 select from users where username='username' 女爷i/ 2021年12月15日 23:37/ 0 赞/ 324 阅读
相关 sql注入 1、SQL注入 ![1541314-20190621144203912-2122568986.png][] ![1541314-20190621144231960-15 - 日理万妓/ 2021年12月11日 05:17/ 0 赞/ 421 阅读
还没有评论,来说两句吧...