SQL注入

本文详细介绍了SQL注入的分类(如get、post等),检测手段(利用特殊字符检测),以及常见的漏洞类型。同时探讨了如何通过工具和手动测试判断注入,以及SQL注入攻击的流程,包括识别类型、爆列数和数据表信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL分类

一.根据注入的方式来分类:

1.get注入
2.post注入
3.cookie注入

二注入方式来分类

1.有回显的注入
2.盲注
3.二次注入
4.报错注入
5堆叠注入
6宽字节注入

简单检测一下

利用单引号或者双引号或者\来检测是否存在注入,如果爆出sql错误或者出现不回显90%可能存在注入
在这里插入图片描述

盲注简单判断

sql盲注不太明显,主要是一个状态的变化
在这里插入图片描述
在这里插入图片描述

那些地方会存在注入漏洞

参数名、参数值、cookie、目录名、文件名->未经检查和过滤即被代入到SQL命令中->注入漏洞
最普遍的注入漏洞是由于参数值过滤不严导致的
Cookie注入漏洞普遍存在于ASP的程序中
参数名、目录名、文件名等注入漏洞通常存在于有网站路由的程序中。

寻找注入漏洞

使用工具
优点:自动化,范围广,效率高
缺点:误报,漏报,测试方法有限
手工测试
优点:测试方法灵活
缺点:效率低,范围窄,因测试者技术水平而异

判断注入漏洞的依据是什么

根据客户端返回的结果来判断提交的测试语句是否成功被数据库引擎执行,如果测试语句被执行了,说明存在注入漏洞。
构造测试语句->提交请求->分析返回结果->符合预期结果->存在SQL注入漏洞

sql注入攻击流程

一、判断是否存在sql注入 与sql注入的类型
判断方法:
1.先看类型,第一种有报错注入的,用先来判断,如果报错就说明有sgl注入
2.遇到盲注需要用逻辑语句,and语句,例如 and 1=1 and 1=2OR 320=6AND 000909=000909–等。
二、判断sql注入是字符型还是数字型
进行闭合
三、爆列数
order by
四、然后数据库名
database() 返回当前数据库名称
利用database()
五爆表名
group_concat()显示所有表
union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
五爆列
table_name具体的表名
table_schema数据库的名称
information_schema.tables系统视图
union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘users’ 可以用十六进制就不需要加
六爆值
union select 1, 2,group_concat(username, password) from users

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ryongao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值