web基础漏洞-sql注入

1、介绍

sql注入,攻击者从前端提交的数据,未经过严格检查,别拼接到sql语句中,交给了sql应用执行。从而可能导致恶意构造的payload破坏原有的sql语句结构,执行超预期的功能,造成危害。

  • 几乎所有的sql应用都存在sql注入漏洞,但一般讨论和测试时以mysql为主
  • 预编译可以有效防止sql注入漏洞,在几乎所有服务端语言的连接sql的框架中被提供选择
  • 防火墙和对参数的检查,可以一定程度防止sql注入

2、sql注入类型

2.1 超范围执行

  • 针对update、delete、select语句,构造超出当前用户权限的where判断,从而超范围执行删改查操作。

2.2 查询判断

  • 主要针对注册、登录等场景,服务端sql查询判断条件是否满足,构造payload以满足或不满足,然后执行超预期的流程。比如任意账号登录

2.3 赋值

  • 针对insert和update语句,将查询内容写入字段。实现将查询的权限外内容写入合法的权限内

2.4 联合查询

  • order by确认查询字段数
  • union select 1,2..n,确认是单查询还是集合查询,以及查询参数与输出点对应关系
  • union select version(), user()..,查询基本信息

2.5 布尔盲注

2.6 时间盲注

2.7 报错注入

2.8 堆栈注入

2.9 系统命令注入

2.10 文件读写

 

posted @ 2023-10-20 20:18  挖洞404  阅读(21)  评论(0编辑  收藏  举报