第六次作业

1.CSRF 和 XSS 的区别


CSRF:攻击者通过伪造请求利用受害者的身份执行操作。
XSS:攻击者通过注入恶意脚本在受害者的浏览器环境中执行操作。

 2.CSRF攻击步骤

1. 攻击者寻找目标

  • 选择目标网站:攻击者会选择那些存在CSRF漏洞且具有有价值功能的应用程序作为攻击目标,如银行网站、社交网络或其他涉及个人数据的服务。
  • 确定目标功能:找到可以通过伪造请求触发的功能,比如修改密码、更改邮箱地址或转账等。

2. 构造伪造请求

  • 创建恶意请求:攻击者构建一个恶意的HTTP请求,该请求模仿合法用户的行为,如一个POST请求,带有正确的参数和值。
  • 利用会话状态:此请求依赖于受害者的会话状态(通常是存储在cookie中的会话令牌),这使得服务器认为请求是合法的。

3. 诱导受害者

  • 创建载体:攻击者可能通过电子邮件、社交媒体、即时消息或论坛等渠道发布一个包含恶意链接或图像的HTML代码。
  • 例子<img src="http://example.com/change-email?newemail=hacker@example.com"> 或 <a href="http://example.com/transfer-money?amount=1000&to=hacker">Click here</a>
  • 诱骗点击:攻击者等待受害者点击该链接或加载该图片,此时受害者的浏览器会自动发送一个请求到目标站点,并附带任何相关的认证信息(如cookie)。

4. 执行伪造请求

  • 请求发送:当受害者访问了包含恶意请求的链接或图片后,受害者的浏览器会自动发送预先设定好的HTTP请求到目标服务器。
  • 服务器响应:服务器收到请求后,因为请求中携带了合法的认证信息(如session ID),所以服务器无法辨别请求的真实性,并按照请求中的指令执行相应的操作。

5. 攻击成功

  • 完成操作:服务器根据伪造请求执行操作,如转移资金、改变账户设置等。
  • 后果:受害者可能会在不知情的情况下遭受损失,而攻击者则达到了其目的。

6. 检测与响应

  • 发现异常:受害者或管理员可能会在事后发现账户活动异常,并启动调查。
  • 采取行动:如果检测到CSRF攻击,应该立即采取措施,如冻结账户、重置密码、通知用户等。

防御措施

为了防御CSRF攻击,可以采取以下几种方法:

  • 使用CSRF Tokens:在每个表单中加入一个不可预测的token,并在服务器端验证这个token的存在性和正确性。
  • SameSite Cookie属性:设置cookie的SameSite属性为Strict或Lax,限制cookie只在原站发送。
  • 双因素认证:实施额外的身份验证步骤,即使攻击者能发送伪造请求,也需要通过第二道验证才能执行敏感操作。
  • 安全的登录状态管理:确保会话管理机制的安全性,避免泄露会话标识符。
  • 用户教育:提醒用户不要随便点击不明链接或附件,提高安全意识。

3.总结CSRF手工构造POST型页面方法

1. 分析目标应用
  • 确定目标:选择一个存在CSRF漏洞的应用,例如一个在线银行系统。
  • 确定目标功能:找出可以通过POST请求触发的功能,如转账、修改密码等。
  • 查看请求:使用抓包工具(如Burp Suite、Wireshark或Fiddler)捕获正常的POST请求,了解请求的具体参数。
2. 构造恶意HTML页面
  • 创建HTML文件:使用文本编辑器创建一个新的HTML文件,例如 csrf_attack.html
  • 编写HTML代码:在HTML文件中添加表单标签,并设置表单的actionmethod属性以及所需的表单数据。

4.说明token类CSRF利用方法

token类CSRF(跨站请求伪造)利用方法指的是利用那些没有正确实施或绕过CSRF令牌机制的Web应用程序来进行攻击。CSRF令牌是一种常用的安全措施,用于防止攻击者利用用户的登录状态发起恶意请求。

5.SSRF常用伪协议

  1. file://

    • file://伪协议用于访问本地文件系统。通过这个协议,攻击者可以尝试读取服务器上的文件,这可能会导致信息泄露。
  2. gopher://

    • gopher://是一种早期的互联网协议,用于检索文本信息。虽然现在已经很少使用,但在某些环境中仍可能被支持,攻击者可能会尝试利用它来探测内网资源。
  3. dict://

    • dict://协议用于访问字典服务。虽然主要用于查询单词定义,但理论上可以被滥用以探查内网服务。
  4. ldap://ldaps://

    • ldap://(轻量目录访问协议)用于访问LDAP服务器,而ldaps://则是它的安全版本。LDAP通常用于身份验证和授权服务,因此可以被用来探测内部目录服务。
  5. ftp://ftps://

    • ftp://(文件传输协议)用于传输文件,而ftps://则提供了安全的文件传输。这些协议可以被用来探测是否有FTP服务器开放在内网中。
  6. http://https://

    • 虽然http://https://是标准的Web协议,但在SSRF上下文中,它们可以用来探测内部网络中的Web服务。这是最常见的SSRF利用方式之一。
  7. data://

    • data://协议用于直接在URL中嵌入数据,通常用于小段文本或图片。在某些场景下,它可以被用来测试应用如何处理特定类型的数据。
  8. jar://zip://

    • 这些协议用于访问JAR文件或ZIP存档中的资源。如果服务器没有正确过滤这些协议,攻击者可以尝试访问存档文件中的内容。
  9. vnc://

    • vnc://协议用于远程桌面连接。虽然不是常见的Web协议,但如果服务器允许的话,可以被用来探测内部VNC服务器。
  10. rmi://

    • rmi://(远程方法调用)协议用于Java RMI服务。如果内部有Java服务并且允许远程调用,这可以成为潜在的攻击面。

6.SSRF pikachu靶场通关

1.SSRF(curl)

curl 是一个非常强大的命令行工具,用于从或向服务器传输数据。它支持多种协议,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP、LDAPS 和 FILE 等。curl 常用于测试和调试 API、下载文件、上传文件以及模拟 HTTP 请求。

1.http协议通过网址访问链接

修改URL为url=http://www.baidu.com 访问百度页面

修改URL为:url=http://www.goole.com 访问谷歌页面

2.file协议访问本地链接

修改url为:url=file:///E:/shixi/1.txt,查看文件的内容:

3、构造payload

2、SSRF(file_get_content)

file_get_contents 是 PHP 中的一个函数,用于读取整个文件到一个字符串中。file_get_contents 被用来从远程服务器获取数据时,如果开发者没有正确验证或过滤用户输入的数据,那么就可能被攻击者用来发起 SSRF 攻击。

URL变成file

1、file读取本地文件

修改file为:file=file:///E:/shixi/1.txt,查看文件的内容:

7.SSRF根据源代码说明漏洞成因

两者协议不同,漏洞成因也不同。

1.SSRF(curl)

  1. 直接使用用户输入$_GET['url'] 直接用于构造cURL请求,这使得攻击者可以注入任意URL。
  2. 缺乏验证和过滤:没有对用户输入进行验证和过滤,使得攻击者可以利用URL支持的多种协议来访问内部网络资源。
  3. 直接返回请求结果:echo $RES;将请求结果直接返回给前端,这可能会泄露敏感信息。

 2.SSRF(File_get_content)

  1. 直接使用用户输入$_GET['file'] 直接用于file_get_contents函数,这使得攻击者可以通过构造恶意路径来读取任意文件。
  2. 缺乏验证和过滤:没有对用户输入的文件路径进行验证和过滤,这使得攻击者可以利用路径遍历攻击来访问不应该公开的文件。
  3. 直接返回文件内容:与上一个类似,将文件内容直接返回给前端,这可能会泄露敏感信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值