web安全-SQL注入的类型以及提交注入

简要明确参数类型

数字,字符,搜索,JSON等

比如select * from users where id=1;1是数字

select * from users where name='xiaodi';字符需要用引号。如果不加引号,在访问时他会自动给你加上引号或者(),又或者是{},让你的注入语句比如and 1=1变成字符串的一部分,所以需要在注入的时候需要做闭合

简要明确请求方法

GET POST COOKIE REQUEST

为什么要有不同的请求方法?因为不同请求方法,请求的数据类型和大小都不一样。

GET只要网址后面带有参数就能接收到参数,不一定非要使用GET方法传递参数,使用POST方法传参,地址后有参数,GET一样能接收。但是如果把post参数写入get请求体中,会被服务器忽略,因为使用get方法请求时,只关注url中的语句。

作用:可以判断网站使用的请求方法,从而绕过waf的防护

$_SERVER的作用

字符型注入

比如select * from users where id='$id' limit 0,1 。这里的id被单引号包裹,所以输入and 1=1会被单引号转换成字符串,页面不会收到任何影响,这样就可以判断出他是否是字符型注入

那么如何去字符型注入呢?很简单,?id=1' and '1' = '1即可

那么放到sql语句中就是select * from users where id = '1' and '1' = '1' limit 0,1

URL的三种注释

1.--+

2.--空格

3.#

使用COOIKE注入

作用:可以绕过代码对POST或者GET接收数据的过滤函数

相关推荐
爱可生开源社区3 小时前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1777 小时前
《从零搭建NestJS项目》
数据库·typescript
一次旅行1 天前
网络安全总结
安全·web安全
加号31 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏1 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐1 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再1 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest1 天前
数据库SQL学习
数据库·sql
jnrjian1 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
十月南城1 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark