小迪安全40WEB 攻防-通用漏洞CSRFSSRF代码审计同源策略加载函数

#知识点: 逻辑漏洞

1CSRF-原理&危害&探针&利用等

2SSRF-原理&危害&探针&利用等

3CSRF&SSRF-黑盒下漏洞探针点

#详细点:

CSRF 全称:Cross-site request forgery,即,跨站请求伪造,也被称为 “One

Click Attack” “Session Riding”,通常缩写为 CSRF 或者 XSRF,是一种对网

站的恶意利用。举个生活中的例子:就是某个人点了个奇怪的链接,自己什么也没输,但

自己的 qq 号或其他的号就被盗了。即该攻击可以在受害者不知情的情况下以受害者名义

伪造请求,执行恶意操作,具有很大的危害性。

CSRF 的攻击过程两个条件:

1、目标用户已经登录了网站,能够执行网站的功能。

2、目标用户访问了攻击者构造的 URL

CSRF 安全问题黑盒怎么判断:

  1. 看验证来源不-修复 ——同源策略

Referer:检测同源,但不是绝对的安全,此头部可以被抓取修改的

2.看凭据有无 token--修复

Token:一种标识,每操作一次,都会进行更改

3、看关键操作有无验证-修复

-CSRF 安全问题白盒怎么审计:

同黑盒思路一样,代码中分析上述三看

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形

成由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问

的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离

的内部系统)SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功

能且没有对目标地址做过滤与限制。比如从指定 URL 地址获取网页文本内容,加载指定

地址的图片,下载等等。

 

-SSRF 黑盒可能出现的地方:

这些是都会向服务器去请求我们所发送的信息,若配置不当,我们输入了访问它自身的地址,则会回显出它自身的情况

1.社交分享功能:获取超链接的标题等内容进行显示

2.转码服务:通过 URL 地址把原地址的网页内容调优使其适合手机屏幕浏览

3.在线翻译:给网址翻译对应网页的内容

4.图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过 URL 地址加载或下

载图片

5.图片/文章收藏功能:主要其会取 URL 地址中 title 以及文本的内容作为显示以求一

个好的用具体验

6.云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的

信息,就可以进行 ssrf 测试

  1. 网站采集,网站抓取的地方:一些网站会针对你输入的 url 进行一些信息采集工作

  1. 数据库内置功能:数据库的比如mongodb的copyDatabase函数
    9邮件系统:比如接收邮件服务器地址
    10.编码处理,属性信息处理,文件处理:比如ffpmg,ImageMagick, docx, pdf, xml处理器等
    11.未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法(inurl:)加上这些关键字去寻找SSRF漏洞一些的url中的关键字: share. wap、 url、 link. src、 source. target. U、3g、 display、sourceURI、imageURL. domain..
    12从远程服务器请求资源(upload from url如discuz! ; import & expost rss feed如weDblog;使用了xml引擎对象的地方如wordpress xmlrpc.php)


-SSRF白盒可能出现的地方:
1、功能点抓包指向代码块审计
2、功能点函数定位代码块审计

-SSRF常见安全修复防御方案:

1.禁用跳转

2、禁用不需要的协议

3、固定或限制资源地址

4、错误信局统一信息处理


#系列内容点:

1、 CSRF&SSRF&原理&利用&协议等

2、 CSRF&SSRF&黑盒&审计&修复等


 代码审计-CSRF-SCMSFH 无验证

Ø 代码审计-CSRF-ZBLOG 同源策略

Ø 代码审计-SSRF-Yzmcms 功能&函数


CSRF代码审计的思路:

  1. 直接复现有没有:

没有-》代码-》缺陷过滤(绕过)-》有

没有-》代码-》完整过滤-》没有漏洞

漏洞本身不在于代码上,更多的在于逻辑上

#代码审计-CSRF-SCMSFH 无验证

抓包,通过数据包分析,设置伪造页面。通过上传外网,让user进行访问

成功

代码分析:

首先通过数据包分析查找php文件

发现代码中,没有进行验证

#代码审计-CSRF-ZBLOG 同源策略

发现不成功,则有防护了

代码审计:

判断出检测点:referer

通过对比 $referer值

尝试绕过

抓取伪造的网页,进行referer参数修改

来源检测:

  1. 直接伪造:

需要在代码数据包文件固定来源

  1. 自主抓包修改参数;
  2. 写入脚本,强制固定参数;

做一个xx.php的文件用来测试referer

<?php
$xx=$_SERVER['HTTP_REFERER'];
echo $xx;
?>

用python去构造固定referer

import requestsurl='http://127.0.0.1/xx.php'headers={'Referer': 'http://127.0.0.1/'
}data=requests.get(url,headers=headers)
print(data.text)

2.尝试在网站寻找可上传地方,上传数据包文件,取得当前同域名的地址

如:向网站中上传html文件(伪造网站),此时在访问此伪造网站时,来源是其本地

#代码审计-SSRF-Yzmcms 功能&函数

采集功能:访问指定的地址

Ssrf.html

读到了本地的文件,说明可以利用一些协议去访问本地的信息

代码审计:

通过抓包分析关键文件

找到对应配置参数

关键函数

SSRF:

关键函数和特定功能

白盒:

功能点-采集 审计

采集添加-测试-抓包-代码-远程请求资源操作(函数)

函数-功能 审计

file_get_contents

Fopen

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

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

相关文章

Python AI 之Stable-Diffusion-WebUI

Stable-Diffusion-WebUI简介 通过Gradio库&#xff0c;实现Stable Diffusion web 管理接口 Windows 11 安装Stable-Diffusion-WebUI 个人认为Stable-Diffusion-WebUI 官网提供的代码安装手册/自动安装不适合新手安装&#xff0c;我这边将一步步讲述我是如何搭建Python Conda…

【linux本地安装tinycudann包教程】

【linux本地安装tinycudann包教程】 tiny-cuda-nn官网链接 如果你是windows 10系统的,想要安装tiny-cuda-nn可以参考我的文章——windows 10安装tiny-cuda-n包 根据官网要求:C++要求对应14,其实这样就已经告诉我们linux系统中的gcc版本不能高于9,同时下面又告诉我们gcc版…

【面试精讲】深克隆和浅克隆的实现方式?深克隆和浅克隆有什么区别?

【面试精讲】深克隆和浅克隆的实现方式&#xff1f;深克隆和浅克隆有什么区别&#xff1f; 目录 本文导读 一、浅克隆&#xff08;Shallow Clone&#xff09; 二、深克隆&#xff08;Deep Clone&#xff09; 1、递归使用clone()方法实现深克隆 2、使用序列化实现深克隆 …

接收服务端请求,WebSocket 并非唯一选择!(含:ChatGPT 流推送原理解析)

前端训练营&#xff1a;1v1私教&#xff0c;终身辅导计划&#xff0c;帮你拿到满意的 offer。 已帮助数百位同学拿到了中大厂 offer。欢迎来撩~~~~~~~~ Hello&#xff0c;大家好&#xff0c;我是 Sunday。 说到推送数据&#xff0c;大家可能首先想到的是 WebSocket。 事实上&…

vue右键自定义样式

<!-- eslint-disable vue/no-dupe-keys --> <template><div><div class"search-box"><div class"search"><el-input placeholder"搜索" prefix-icon"el-icon-search" v-model"input2">…

论文阅读——BLIP

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation &#xff08;1&#xff09;单模态编码器&#xff0c;它分别对图像和文本进行编码。图像编码器用ViT&#xff0c;并使用附加的 [CLS] 标记来表示全局图像特征。文本…

基础---nginx 启动不了,跟 Apache2 服务冲突

文章目录 查看 nginx 服务状态nginx 启动后 访问页面 127.0.0.1停止 nginx 服务&#xff0c;访问不了页面停止/启动 Apache2 服务&#xff0c;启动 Apache2 页面访问显示正确nginx 莫名启动不了卸载 Apache2 服务器 启动 nginx &#xff0c;但是总是不能实现反向代理&#xff0…

【C++ 学习】内存管理

1. new / delete 和 malloc / free 的区别? malloc / free 和 new / delete 的共同点&#xff1a;都是从堆上申请空间&#xff0c;并且需要用户手动释放。不同的地方是&#xff1a; malloc 和 free 是函数&#xff0c;new 和 delete 是操作符&#xff1b; malloc 申请的空间不…

如何使用vue定义组件之——父组件调用子组件

首先&#xff0c;我们需要创建两个组件模板template&#xff1a; <template id"father"><div><h3>我是父组件</h3><h3>访问自己的数据:</h3><h3>{{ msg }}</h3></div></template><template id"…

数据结构和算法:栈与队列

栈 栈 &#xff08;stack&#xff09;是一种遵循先入后出逻辑的线性数据结构 把堆叠元素的顶部称为“栈顶”&#xff0c;底部称为“栈底”。 将把元素添加到栈顶的操作叫作“入栈”&#xff0c;删除栈顶元素的操作叫作“出栈”。 栈的常用操作 /* 初始化栈 */ stack<int&g…

HelpLook AI 升级!一键生成SEO设置关键要素

| 现代SEO营销为何选择与AI同行 众多企业面临SEO优化日趋复杂的挑战&#xff0c;投入的时间和资源不断攀升。然而&#xff0c;HelpLook利用AI技术&#xff0c;一键完成SEO关键词和描述的生成&#xff0c;无需额外付费或繁琐操作&#xff0c;轻松提升网站曝光和点击率&#xff…

单目测距的基本介绍和实现原理

单目测距的基本介绍和实现原理 单目测距是一种常用的测量技术&#xff0c;它通过单个摄像头来测量物体与摄像头的距离。在现代科技的推动下&#xff0c;单目测距术正在不断发展和应用于各个领域。本文将分点阐述关于单目测距的重要性、原理和方法、应用领域以及潜在的挑战和发展…