Day 6作业

目录

一、总结CSRF和XSS区别

二、总结CSRF攻击步骤

三、总结CSRF手工构造POST型页面方法

四、说明token类CSRF利用方法

五、SSRF常用伪协议

六、SSRF pikachu靶场通关

第一关:SSRF(url)

第二关:SSRF(file_get_content)

七、SSRF靶场通关时根据源代码说明漏洞成因


一、总结CSRF和XSS区别

在原理、攻击方式、目标及防御策略上存在显著差异。

1. 原理不同

CSRF:CSRF利用网站对用户身份验证的信任,通过伪造用户请求来攻击网站。攻击者构造一个与受信任网站相同的请求,诱导用户在已登录状态下访问该请求,从而达到冒充用户进行非法操作的目的。CSRF攻击主要依赖用户的Cookie或Session等身份验证信息。

XSS:XSS则是通过向Web页面注入恶意的Script代码,当用户浏览该页面时,嵌入的Script代码会被执行,从而达到攻击用户或服务器的目的。XSS攻击主要基于JavaScript等脚本语言,利用Web页面对用户输入的不严格过滤来实现。

2. 攻击方式不同

CSRF:CSRF攻击通常不需要用户进行任何操作,只需用户处于已登录状态,并诱导用户访问攻击者构造的恶意链接或表单。攻击者可以利用图片标签(如`<img>`)、隐藏的表单(如`<form>`)等方式触发GET或POST请求。

XSS:XSS攻击则需要攻击者将恶意代码注入到Web页面中,通常是通过用户输入(如评论、留言板等)或服务器端的漏洞(如未对输入进行过滤)来实现。用户在浏览被注入恶意代码的页面时,浏览器会执行这些恶意代码。

3. 目标不同

CSRF:CSRF的目标主要是冒充用户在网站上的正常操作,如转账、修改密码等,从而窃取用户的数据或进行非法操作。CSRF攻击的目标主要是用户,利用用户的身份进行恶意操作。

XSS:XSS的目标则更加广泛,既可以攻击用户(如窃取用户的Cookie、Session等信息),也可以攻击服务器(如执行恶意代码、篡改网页内容等)。XSS攻击的目标主要是服务器和用户的浏览器。

4. 防御策略不同

CSRF:为了防御CSRF攻击,可以采取以下措施:

  (1) 验证HTTP请求的来源地址(Referer)和表单提交地址(如通过Token验证)。

  (2) 使用POST请求代替GET请求进行敏感操作。

  (3)设置Cookie的HttpOnly属性,防止JavaScript读取Cookie。

  (4)使用验证码或二次确认机制。

XS:为了防御XSS攻击,可以采取以下措施:

  (1) 对用户输入进行严格过滤,避免恶意代码注入。

  (2)使用HTTP头指定内容的类型,避免输出内容被作为HTML解析。

  (3)对输出内容进行编码(如HTML实体编码),防止浏览器执行恶意代码。

  (4)使用内容安全策略(CSP)限制外部资源的加载和执行。

二、总结CSRF攻击步骤

CSRF攻击常常利用用户已登录状态,诱导用户在不知情的情况下执行非预期操作。步骤如下:

1. 用户登录受信任网站

用户C使用浏览器打开并登录受信任的网站A(如银行网站、电子邮件服务等),输入用户名和密码。

网站A验证用户信息后,生成Cookie信息并返回给用户的浏览器,以标识用户的登录状态。

 2. 浏览器保存Cookie

 用户的浏览器保存了网站A的Cookie,这些Cookie包含了用户的认证信息,允许用户在后续的请求中保持登录状态。

 3. 访问恶意网站

在用户未退出网站A的情况下,用户在同一浏览器中打开一个新的标签页或窗口,访问恶意网站B(由攻击者控制)。

 4. 恶意网站发送请求

恶意网站B在用户不知情的情况下,向用户的浏览器发送攻击性代码或构造一个请求,该请求指向受信任的网站A。

这些攻击性代码或请求可能通过嵌入在网页中的图片、脚本、表单提交等方式实现。

5. 浏览器携带Cookie发起请求

 用户的浏览器在接收到恶意网站B的请求后,会携带网站A的Cookie信息(因为浏览器之前已经认证过网站A),向网站A发出请求。

6. 网站A处理请求

 网站A收到请求后,由于请求中包含了有效的Cookie信息,因此会误认为是用户C发起的合法请求,并按照请求执行相应的操作(如转账、修改密码、发送邮件等)。

7. 攻击成功

 攻击者通过诱导用户访问恶意网站B,并利用用户在网站A的登录状态,成功执行了非预期的操作,从而达到攻击目的。

三、总结CSRF手工构造POST型页面方法

通过构建一个看似无害的页面(通常是钓鱼页面),诱导用户在其已登录的状态下提交表单。

1. 分析目标网站的POST请求

首先,使用浏览器的开发者工具(如Chrome的DevTools)来观察和分析目标网站在执行敏感操作时(如转账、修改密码等)所发送的POST请求。

注意请求的URL、HTTP方法(应为POST)、请求头(如Content-Type)以及请求体中的参数和值。

 2. 创建钓鱼页面

在钓鱼页面中,创建一个`<form>`元素,并将其`action`属性设置为目标网站的POST请求URL。

将表单的`method`属性设置为`POST`,以匹配目标网站的请求方式。

根据目标POST请求的请求体,在表单中添加相应的`<input>`字段,并设置其`name`和`value`属性以匹配请求体中的参数和值。

为了避免用户察觉,可以将表单设置为隐藏(通过CSS的`display:none;`)或使用`<iframe>`等方式隐藏表单的提交过程。

3. 自动提交表单

在钓鱼页面的`<script>`标签中编写JavaScript代码,以在用户加载页面时自动提交表单。这可以通过调用表单的`submit()`方法来实现。

确保钓鱼页面在加载时立即执行表单提交操作,不给用户留下查看或修改表单内容的机会。

 4. 诱骗用户访问

创建一个看似无害的链接或消息,诱导用户点击或访问钓鱼页面。诱饵的内容可以根据目标用户的兴趣和习惯进行设计。

通过电子邮件、社交媒体、即时通讯工具等渠道将诱饵分发给目标用户。

5. 监控和评估

在目标网站上设置日志记录机制,以跟踪和记录来自钓鱼页面的POST请求。

分析日志记录,评估钓鱼页面的成功率和攻击效果。根据评估结果调整钓鱼页面的设计和分发策略。

四、说明token类CSRF利用方法

1.Token泄露:

如果Token在客户端的某个地方以明文形式存储(例如,在HTML源代码、JavaScript变量或URL参数中),并且这个存储位置可以被第三方访问(例如,通过XSS攻击),那么攻击者就可以窃取Token。

2.预测Token:

如果Token的生成算法不够复杂,或者存在某种可预测的模式(如基于时间戳、用户ID的简单哈希),攻击者可能通过猜测或暴力破解的方式获得有效的Token。

3.Token重用:

在某些情况下,如果Token在多个请求之间被重复使用(特别是那些不需要频繁更改用户状态的请求),攻击者可能通过捕获一个有效的Token并在其过期前重用它来执行CSRF攻击。

4.绕过Token验证:

如果应用程序的某些部分没有正确实施Token验证,或者存在逻辑错误允许绕过Token验证,攻击者就可以利用这些漏洞执行CSRF攻击。

5.会话固定攻击:

此攻击则间接地帮助攻击者绕过Token机制。攻击者预先设置一个有效的会话ID(或Token),并诱使受害者使用该会话ID登录。一旦登录,攻击者就可以使用该会话ID(或Token)来执行恶意操作。

五、SSRF常用伪协议

1.file://

主要用于任意文件读取,从文件系统中获取文件内容。

格式:file://[文件路径]。

示例:file:///etc/passwd用于读取系统密码文件,file:///proc/net/arp用于显示ARP缓存表,从而寻找内网其他主机。

2.dict://

字典服务协议,用于访问字典资源。可用于扫描内网主机的开放端口、获取内网信息、爆破密码等用处。

示例:dict://ip:6739/info,其中ip是字典服务器的IP地址,6739是默认的字典服务端口。

3.ftp://

文件传输协议,用于网络文件的上传和下载。虽然ftp协议主要用于文件传输,但在SSRF攻击中,它也可以被用来进行网络端口扫描。不过,ftp扫描的效率较低,描结果可能不准确。

4.gopher://

早期互联网上的一种文档检索协议,与HTTP类似但更为简单和结构化。

gopher协议在SSRF攻击中的应用非常广泛,它可以用来构造GET和POST请求,攻击内网中的Redis、FastCGI、SQL等服务。此外,由于gopher协议可以发送换行的数据,因此它还可以用来攻击那些需要交互的应用。

5.http:// 和 https://

超文本传输协议及其安全版本,用于在Web上传输数据。

在SSRF攻击中,http和https协议主要用于向目标服务器发送HTTP请求,以探测内网中那些可以通过HTTP请求进行攻击的应用。由于GET请求的参数直接加在URL中,因此可以使用http协议来探测内网中的GET请求漏洞。

6.Ldap://

轻量级目录访问协议,用于访问和维护分布式目录信息。

在SSRF攻击中,ldap协议可以被用来访问内网中的LDAP服务,从而获取敏感信息或执行未授权操作。

7.tftp://

简单文件传输协议,用于在局域网中传输小文件。

虽然tftp协议在SSRF攻击中的应用相对较少,但理论上它也可以被用来进行文件传输等操作。

六、SSRF pikachu靶场通关

第一关:SSRF(url)

(1).点击蓝色链接进入,可以观察到url后面跟的网址,疑是直接跳转网站

(2)尝试在url后面改为百度的网址,然后直接跳转,说明没有对其URL进行限制,所以我们可以直接修改该网站的url,实现URL跳转,那么现在就可以尝试在这里进行手动的端口扫描:可以利用dict协议访问ip的某端口来确定该端口是否开启

比如说可以探测3306,返回了数据,说明3306端口是开启的:

再探测3278无返回数据,则说明端口关闭

第二关:SSRF(file_get_content)

  1. 这次进入之后,发现是file=,说明从一个url中读取了一个php文件

   2.这里可以利用file伪协议的方法制造恶意的payload去获取本地配置的信息

file=file:///c:/windows/win.ini

    3.可以利用file伪协议的方法制造恶意的payload去获取本地文件

file=php://filter/read=convert.base64-encode/resource=../../../phpinfo.php

     解码base64可得:

      这时与phpinfo.php验证:

七、SSRF靶场通关时根据源代码说明漏洞成因

在Pikachu靶场源代码中,举例的漏洞地址如下:

B:\phpstudy_pro\WWW\pikachu-master\vul\ssrf\ssrf_fgc.php

在这段代码中,一是因为$_GET['url']直接用于file_get_contents()函数,没有对$url进行任何验证或过滤,攻击者可能会通过修改URL参数来构造恶意请求,从而触发SSRF漏洞;

二是缺乏对$filename的验证和过滤,特别是没有检查该文件名是否指向了服务器本地文件系统中的有效和安全的文件。

为了防止此漏洞,除了对$_GET['file']的值进行严格验证和过滤,确保它只包含预期内的、安全的值,也可以使用白名单来限制允许的文件名或路径。

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值