sql注入漏洞
一、漏洞介绍
未对用户可控的带入数据库查询的参数进行严格的过滤、转义和限制,导致用户与数据库进行交互时,使用特殊命令进入数据库进行非法的增删改查等操作。
二、产生原因
数据与代码未严格分离。
	未对用户提交的参数进行严格的过滤和限制,导致用户使用特殊命令带入到原有sql命令中,改变了原有命令语义,且成功被数据库执行。
三、产生条件
- 参数用户可控:前端传入后端的参数内容用户可控
- 带入数据库查询:使用特殊的sql语句可查询到后台数据库
四、漏洞危害
- 用户可对数据库进行非法的增删改查
- 读取敏感文件
- 写入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';
  报错注入、堆叠注入

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号