Sql注入产生的原因:
1.程序员在开发过程中不规范书写和对用户的输入没有进行过滤。
2.导致用户输入的数据被带入数据库执行。
sql注入的防御方法
1.代码层防止sql注入攻击的最佳方案就是sql预编译;
2.确认每种数据的类型;
3.规定数据长度,能在一定程度上防止sql注入;
4.严格限制数据库权限,能最大程度减少sql注入的危害;
5.避免直接响应一些sql异常信息,sql发生异常后,自定义异常进行响应;
6.过滤参数中含有的一些数据库关键词
SQL注入分类
1、按照数据提交方式分类
(1)GET 注入
(2)POST 注入
(3)Cookie 注入
(4)HTTP 头部注入
2、按照注入点分类
(1)数字型注入点
(2)字符型注入点
(3)搜索型注入点
3、按照执行效果分类
(1)基于布尔的盲注
(2)基于时间的盲注
(3)基于报错的注入
(4)联合查询注入
(5)堆叠注入
(6)宽字节注入
( 7 ) base注入
(8)xff注入
(9)二次注入
(10)cookie注入
SQL注入流程
(1)判断是否存在注入,是数字型还是字符型
(2)猜解SQL查询语句中的字段数
(3)确定显示位置
(4)获取当前数据库
(5)获取数据库中的表
(6)获取表中的字段名
(7)下载数据
DOM型xss和别的xss最大的区别就是它不经过服务器,仅仅是通过网页本身的JavaScript进行渲染触发的
Csrf不用获取用户的cookie就能冒充用户的身份,来做一些操作
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由内部系统访问的,所 以 可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)
SSRF 防御方式 :
1、过滤返回的信息,如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
2、统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。
3、限制请求的端口,比如80,443,8080,8090。
4、禁止不常用的协议,仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp://等引起的问题。
5、使用DNS缓存或者Host白名单的方式。
文件包含漏洞的成因
Php语言较易产生文件包含漏洞是因为php语言提供的包含功能太强大,太灵活,由于其语言自身特性决定的,其他语言几乎没有。
随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致执行了非预期的代码。从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
PHP中文件包含函数有以下四种:
·require()
·require_once()
·include()
·include_once()
文件包含漏洞的利用条件:
- 程序用include()等文件包含函数通过动态变量的范式引入需要包含的文件
- 用户能够控制该动态变量
- 要保证php.ini中allow_url_fopen和allow_url_include要为On。(远程文件包含)
文件包含漏 洞的分类 :
1 本地包含 (LFI)
2 远程包含(RFI)
任意用户重置密码
提权/越权
交易支付
验证码绕过漏洞什么是序列化与反序列化?
基本概念
把对象转换为字符串进行存储的过程称为对象的序列化(Serialization)
把存储的字符串恢复为对象的过程称为对象的反序列化(DeSerialization)
护网漏洞讲解(全)
月印千江6712024-04-22 14:43
相关推荐
java_heartLake6 小时前
PostgreSQL数据库参数调优实践xnuscd7 小时前
Milvus概念代码欢乐豆8 小时前
软件工程第13章小测小gpt&9 小时前
实现qt拖拽显示或者播放望获linux9 小时前
在 ARM 平台上如何实现Linux系统的1秒启动漫天转悠9 小时前
MySQL 七种JOIN连接详解尘浮生9 小时前
Java项目实战II基于Java+Spring Boot+MySQL的智能停车计费系统(开发文档+数据库+源码)quintin-lee9 小时前
PostgreSQL中的内存上下文管理蚂蚁在飞-10 小时前
一个高度可扩展的 Golang ORM 库【GORM】hai4058710 小时前
Spring Boot整合Redis Stack构建本地向量数据库相似性查询