毕业实训-Day6

一、CSRF(跨站请求伪造)和XSS(跨站脚本攻击)的区别

特点CSRFXSS
攻击目标服务器上的受保护资源客户端的浏览器
攻击原理利用用户已登录的身份,诱骗用户点击恶意链接,从而在用户不知情的情况下以用户的名义发送恶意请求通过注入恶意脚本,在用户浏览网页时执行,获取用户敏感信息或控制用户浏览器
攻击方式伪造请求,利用浏览器自动携带cookie注入恶意脚本,利用浏览器执行脚本
危害窃取用户信息、篡改数据、执行非授权操作窃取用户信息、传播恶意软件、钓鱼攻击、破坏网站
防御措施验证请求来源、使用验证码、token机制输入验证、输出编码、内容安全策略(CSP)

二、CSRF攻击步骤

1. 准备阶段

  • 攻击者创建恶意页面:攻击者设计一个网页或应用程序,包含会自动向目标网站发送请求的恶意代码(通常是JavaScript、HTML表单等)。
  • 了解目标网站的请求:攻击者需要了解目标网站的请求格式和参数,通常通过分析请求的网络流量或逆向工程来获得这些信息。

2. 诱导用户访问恶意页面

  • 传播恶意链接:攻击者通过电子邮件、社交媒体、论坛等手段,诱导用户点击包含恶意代码的链接。
  • 嵌入恶意内容:攻击者将恶意代码嵌入到合法的网页中,诱使用户在浏览这些网页时触发CSRF攻击。

3. 用户浏览恶意页面

  • 用户在登录状态下访问恶意页面:用户在浏览器中访问恶意页面时,恶意代码会在用户的浏览器中自动执行,通常是通过发送伪造的请求到目标网站。

4. 执行恶意请求

  • 伪造请求:恶意代码会以用户的身份向目标网站发送伪造的请求。这些请求通常包含用户的认证信息(如Cookies),因此目标网站会认为请求是合法的。
  • 执行未授权操作:如果目标网站没有有效的CSRF保护机制,伪造的请求可能会导致未经授权的操作(如转账、修改设置、删除账户等)。

5. 完成攻击

  • 攻击结果:一旦请求被目标网站处理,攻击者就可以达到他们的目的,比如盗取用户信息、损害用户账户等。

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

1. 分析目标网站

  • 找出存在漏洞的POST请求:
    • 确定目标网站上哪些功能是需要保护的,比如修改密码、转账等。
    • 使用浏览器开发者工具抓包,分析这些功能对应的POST请求,包括URL、参数名和参数值。
  • 了解网站的防御措施:
    • 是否使用了token机制、referer验证等防御手段。
    • 这些防御措施的实现方式如何。

2. 构造攻击页面

  • 创建HTML表单:
    • 使用HTML的<form>标签创建一个表单。
    • 设置表单的action属性为目标网站的漏洞URL。
    • 设置表单的method属性为"POST"。
    • 为每个POST参数创建一个<input>标签,设置其typenamevalue属性。
  • 隐藏表单:
    • 可以使用CSS将表单隐藏,以免用户察觉。
  • 触发表单提交:
    • 可以使用JavaScript在页面加载时自动提交表单,或者通过点击一个链接或按钮触发提交。

3. 诱骗用户访问

  • 制作钓鱼页面:
    • 设计一个看起来和目标网站很相似的页面。
    • 将构造好的攻击表单嵌入到钓鱼页面中。
  • 传播攻击页面:
    • 通过电子邮件、社交媒体等方式将钓鱼页面发送给目标用户。

4. 绕过防御措施

  • 绕过token验证:
    • 如果目标网站使用了token机制,需要想办法获取到正确的token值,并将其添加到表单中。
  • 绕过referer验证:
    • 如果目标网站使用了referer验证,可以尝试修改referer的值,或者使用一些技巧绕过验证。

四、token类CSRF利用方法

1. 窃取token:

  • XSS攻击: 攻击者通过XSS漏洞获取用户的cookie或token,然后将其嵌入到恶意页面中,从而伪造用户请求。
  • 弱加密: 如果token的加密算法不够强,攻击者可能通过暴力破解或其他手段获取token。
  • 会话固定攻击: 攻击者通过各种手段强制用户使用特定的session ID,然后在该session ID下伪造请求。

2. 预测token:

  • 可预测的token生成算法: 如果token生成算法存在漏洞,攻击者可能通过分析请求和响应,推测出token的生成规则,从而预测后续的token值。
  • 弱随机数生成器: 如果使用的随机数生成器不够随机,攻击者可以通过穷举法或其他手段猜测出token值。

3. 重放攻击:

  • 缓存token: 攻击者可以缓存截获的包含有效token的请求,并在稍后重放该请求。
  • 服务器端状态不一致: 如果服务器端没有对重放攻击进行防护,攻击者可以多次重放同一个请求。

五、SSRF常用伪协议

1. file://

  • 功能: 访问本地文件系统。
  • 利用场景: 读取服务器上的敏感文件,如配置文件、数据库备份等。
  • 示例: http://target/ssrf?url=file:///etc/passwd

2. http://https://

  • 功能: 发起HTTP或HTTPS请求。
  • 利用场景: 访问内网的Web服务,获取敏感信息;进行端口扫描;发起内网攻击。
  • 示例: http://target/ssrf?url=http://192.168.1.100

3. gopher://

  • 功能: 访问Gopher协议服务。
  • 利用场景: 由于Gopher协议的灵活性,可以模拟各种协议请求,如FTP、Telnet、SMTP等。
  • 示例: http://target/ssrf?url=gopher://192.168.1.100/ping%20192.168.1.1

4. dict://

  • 功能: 查询字典服务。
  • 利用场景: 攻击者可以利用字典服务进行端口扫描、服务探测等。
  • 示例: http://target/ssrf?url=dict://192.168.1.100

5. ftp://

  • 功能: 访问FTP服务器。
  • 利用场景: 上传或下载文件,获取服务器上的敏感信息。
  • 示例: http://target/ssrf?url=ftp://user:password@192.168.1.100/file.txt

6. 其他协议

  • ldap://:访问LDAP服务。
  • sftp://:访问SFTP服务。
  • tftp://:访问TFTP服务。

六、SSRF pikachu靶场通关

1. SSRF(curl)

只有一个链接

打开是一首诗

改为百度地址

使用file伪协议访问本地文件

2. SSRF(file_get_content)

点击链接

file协议读取本地文件

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

1. curl源码分析

可以看出服务端没有将传入的url进行校验,而是直接使用传入的url值,使用curl_exec()函数通过PHP对数据进行获取,并且输出返回,明显存在服务端请求伪造,没有对前端的URL进行白名单的过滤

漏洞成因:服务端对用户输入的URL缺乏有效过滤和验证,就可能允许恶意URL或IP地址的输入。

2. file_get_content源码分析

使用PHP函数file_get_content()读取文件且未进行白名单过滤

漏洞成因:服务端未对URL进行严格的过滤和验证,也未对响应结果进行有效处理【函数file_get_content()不仅可以读取本地文件系统的文件,还可以通过读取远程文件的内容】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值