加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Web安全漏洞分析-SQL注入

发布时间:2023-01-06 15:31:06 所属栏目:MsSql教程 来源:转载
导读: 1. 定义
SQL注入的定义
由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入

1. 定义

SQL注入的定义

由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

SQL注入的本质

对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。SQL注入漏洞,就是将用户可控的数据拼接进了SQL语句中,一起提交到了数据库执行。攻击者通过注入语句,改变SQL语句执行逻辑mssql注入,通过控制部分SQL语句,攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接获取数据库服务器的系统权限。

mssql注入拿shell_注入dll只可注入一次_mssql注入

某银行信用卡商城SQL注入漏洞

***.com.cn/BusinessCityWeb/ecity.do?func=queryClassFun&dom=中参数goods_price、brand存在SQL注入漏洞;

mssql注入拿shell_注入dll只可注入一次_mssql注入

某输入法网站Ajax页面POST型SQL注入漏洞

该网站的Ajax页面是***.***.com/zt/acgn/pc/ajax_post.php,POST内容为:qq=CasterJs&type=pc&nickname=CasterJs&entries=CasterJs,Web应用程序未过滤参数type,导致存在POST型注入漏洞。使用sqlmap工具,可以注入得到数据库名

注入dll只可注入一次_mssql注入拿shell_mssql注入

2.经典SQL注入代码示例

1)Servlet示例

mssql注入拿shell_mssql注入_注入dll只可注入一次

2)mybatis示例

注入dll只可注入一次_mssql注入拿shell_mssql注入

mssql注入拿shell_注入dll只可注入一次_mssql注入

3. SQL注入防护

a)对输入点进行过滤(不是根本解决方法 可能被绕过)

mssql注入_注入dll只可注入一次_mssql注入拿shell

建议使用ESAPI针对输入数据进行过滤。

b)预编译方式访问数据库

mssql注入拿shell_mssql注入_注入dll只可注入一次

预编译本质上也是对参数的过滤,只不过由官方实现。

c)使用存储过程

mssql注入拿shell_mssql注入_注入dll只可注入一次

4. MyBatis的SQL注入防护

模糊查询:

MySQL:select * from table where name like concat(‘%’,#{name},’%’)

Oracle:select * from table where name like ‘%’|| #{name} || ’%’

SQL Server:select * from table where name like ‘%’+#{name}+’%’

DB2:select * from table where name like concat(‘%’,#{name},’%’)

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!