Java教程

sql注入漏洞

本文主要是介绍sql注入漏洞,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、漏洞介绍

未对用户可控的带入数据库查询的参数进行严格的过滤、转义和限制,导致用户与数据库进行交互时,使用特殊命令进入数据库进行非法的增删改查等操作。

二、产生原因

数据与代码未严格分离。
未对用户提交的参数进行严格的过滤和限制,导致用户使用特殊命令带入到原有sql命令中,改变了原有命令语义,且成功被数据库执行。

三、产生条件

  1. 参数用户可控:前端传入后端的参数内容用户可控
  2. 带入数据库查询:使用特殊的sql语句可查询到后台数据库

四、漏洞危害

  1. 用户可对数据库进行非法的增删改查
  2. 读取敏感文件
  1. 写入webshell,获取权限

五、应用场景

带有数据传输的地方。

六、漏洞分类

1. 数据库类型

Access、Mysql、MSsql、Oracle、Postsql、Redis、Sqlite、Mongodb、DB2

2. 查询方式

2.1 select

  $a=$_GET['a'];
  select * from 表 where 字段='$a';
  ?a=值' []
  联合注入、报错注入、堆叠注入、布尔/延时

2.2 insert

  $a=$GET_['a'];
  $b=$GET_['b'];
  insert into 表(字段1,字段2) value('$a','$b');
  ?b=值' []
  报错注入、堆叠注入

2.3 update

  $a=$_GET['a'];
  $b=$_GET['b'];
  update 表 set 字段1='$a',字段2='$b' where 字段=值;
  ?b=值' []
  报错注入、堆叠注入

2.4 delete

  $a=$_GET['a'];
  delete from a where 字段='$a';
  报错注入、堆叠注入

这篇关于sql注入漏洞的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!