【小迪安全】Day29web漏洞-csrf及ssrf漏洞

本文探讨了CSRF和SSRF漏洞的原理,包括如何利用它们进行攻击,以及如何通过设置token、验证referer、使用验证码等手段进行防御。实例演示了如何检测网站是否存在这两种漏洞,并提供了SSRF防护措施,如过滤输入、限制端口和协议等。
摘要由CSDN通过智能技术生成

web漏洞-csrf及ssrf漏洞

前言

​ 介绍csrf及ssrf漏洞的原理、防护。

CSRF漏洞

原理

​ CSRF漏洞(Cross-site request forgery)跨站请求伪造。原理是在用户登录某些网站的时候访问了攻击者的网站,攻击者会请求用户已登录的网站api接口,由于请求是在用户的浏览器发起的,且此时用户已登录,导致网站后台会以为就是用户发起的请求而执行,达到攻击目的。

防护
当用户发起重要请求时需要输入原始密码
设置随机token
检测referer来源
设置验证码
如何确认网站是否有csrf漏洞

​ 自己写一个网页做请求伪造,看目标网站是否执行伪造请求。

csrf漏洞示例

​ 用pikachu靶场做例子。项目地址:https://github.com/zhuifengshaonianhanlu/pikachu

SSRF漏洞

原理

​ SSRF(Server-Side Request Forgery)服务端请求伪造,漏洞的原理为如果一个网站有提供远程访问链接的功能,那么攻击者就有可能实施让网站访问网站服务器内网获取敏感信息等操作。也就是相当于让网站服务器作为攻击者的中间代理服务器。

漏洞常见地方

​ 如果网站有提供下面的功能就有可能有SSRF漏洞。原因是他们都有通过网站服务器访问我们提供的链接。或者是url中包含关键字【结合谷歌语法找到入手点】 share wap url link src source target u 3g display sourceURL imageURL domain也可能存在漏洞。

  • 分享:通过URL地址分享网页内容
  • 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
  • 在线翻译:通过URL地址翻译对应文本的内容。
  • 图片加载与下载:通过URL地址加载或下载图片。
  • 远程图片、文章收藏功能
  • 未公开的api实现及其他调用URL的功能。
防护
过滤输入输出的信息,如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准
统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态
限制请求的端口,比如80,443,8080,8090
禁止不常用的协议,仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp://等引起的问题
使用DNS缓存或者Host白名单的方式
ssrf漏洞示例

​ 编写一个php脚本作示例。

<?php
if(isset($_GET['submit'])){

  $request_url = $_GET['request_url'];
  
  $curl = curl_init();
  curl_setopt_array($curl, array(
    CURLOPT_URL => $request_url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
  ));
  $response = curl_exec($curl);
  curl_close($curl);
  echo $response;
  echo "<br>";
}
?>

<form method="get">
  Please enter the url link:<input type="text" name="request_url">
  <input class="sub" type="submit" name="submit" value="submit"/>
</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值