SSRF漏洞

  1. ssrf漏洞介绍
    Server-Side Request Forgery:服务器端请求伪造
    由于服务端提供了,从其他服务器应用获取数据的功能而没有对目标地址做过滤和限制,服务端请求伪造,利用存在缺陷的WEB应用作为代理攻击远程和本地的服务器。
  2. ssrf 漏洞常见功能点
    社交分享功能:获取超链接的标题等内容进行显示
    转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
    在线翻译:给网址翻译对应网页的内容
    图片加载/下载:例如富文本编辑器中的点击下载图片到本地、通过URL地址加载或下载图片
    图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验
    云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
    网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
    数据库内置功能:数据库的比如mongodb的copyDatabase函数
    邮件系统:比如接收邮件服务器地址
    编码处理、属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
    未公开的api实现以及其他扩展调用URL的功能:可以利用google语法加上这些关键字去寻找SSRF漏洞。一些的url中的关键字有:share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain……
    从远程服务器请求资源
  3. 常出现漏洞的参数名
    share
    wap
    url
    link
    src
    source
    target
    u
    3g
    display
    sourceURL
    imageURL
    domain
    4.ssrf漏洞用途
    内外网的端口和服务扫描
    主机本地敏感数据的读取
    内外网主机应用程序漏洞的利用
    内外网web站点漏洞的利用
  4. ssrf 常见函数
    (1)file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。
<?php

$url = $_GET['url'];;

echo file_get_contents($url);

?>

(2)fsockopen() 函数打开一个网络连接或者一个Unix套接字连接

<?php`在这里插入代码片`
$host=$_GET['url'];
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

(3)curl_exec() 执行一个 curl 会话

<?php 
if (isset($_GET['url'])){
    $link = $_GET['url'];
    $curlobj = curl_init(); // 创建新的 cURL 资源
    curl_setopt($curlobj, CURLOPT_POST, 0);
    curl_setopt($curlobj,CURLOPT_URL,$link);
    curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1); // 设置 URL 和相应的选项
    $result=curl_exec($curlobj); // 抓取 URL 并把它传递给浏览器
    curl_close($curlobj); // 关闭 cURL 资源,并且释放系统资源

    // $filename = './curled/'.rand().'.txt';
    // file_put_contents($filename, $result); 
    echo $result;
}
?>


(4)SoapClient() 类为SOAP 1.1,SOAP 1.2服务器提供客户端。它可以在 WSDL 或非 WSDL 模式下使用。

// ssrf.php
<?php
$a = new SoapClient(null,array('uri'=>'http://47.xxx.xxx.72:2333', 'location'=>'http://47.xxx.xxx.72:2333/aaa'));
$b = serialize($a);
echo $b;
$c = unserialize($b);
$c->a();    // 随便调用对象中不存在的方法, 触发__call方法进行ssrf
?>

6.ssrf测试代码:

<?php
function curl($url){
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_exec($ch);
      curl_close($ch);
}
$url = $_GET['url'];
curl($url);
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值