护网漏洞讲解(全)

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()

文件包含漏洞的利用条件:

  1. 程序用include()等文件包含函数通过动态变量的范式引入需要包含的文件
  2. 用户能够控制该动态变量
  3. 要保证php.ini中allow_url_fopen和allow_url_include要为On。(远程文件包含)

文件包含漏 洞的分类

1 本地包含 (LFI)

2 远程包含(RFI)

任意用户重置密码
提权/越权
交易支付
验证码绕过漏洞

什么是序列化与反序列化?

基本概念

把对象转换为字符串进行存储的过程称为对象的序列化(Serialization)

把存储的字符串恢复为对象的过程称为对象的反序列化(DeSerialization)

相关推荐
权^7 分钟前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
OLDERHARD43 分钟前
Java - MyBatis(上)
java·oracle·mybatis
Code成立1 小时前
1、深入理解Redis线程模型
数据库·redis·bootstrap
缘友一世3 小时前
macos安装mongodb
数据库·mongodb·macos
万事大吉CC4 小时前
mysql单表查询·3
数据库·mysql
bin91535 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha5 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐6 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Java探秘者10 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_7869643610 小时前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase