当前位置:网站首页>SSRF-服务器端请求伪造-相关知识
SSRF-服务器端请求伪造-相关知识
2022-08-04 12:36:00 【常家壮】
SSRF漏洞介绍:
SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统,利用漏洞可以发起网络请求来攻击内网服务
SSRF漏洞原理:
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,比如从指定URL地址获取网页文本内容,加载指定地址的图片以及下载等等,利用的是服务端的请求伪造
SSRF是利用存在缺陷的web应用作为代理攻击远程和本地的服务器
SSRF是要目标网站的内部系统
SSRF漏洞可以做哪些事情
- 可以对外网服务器所在内网、本地进行端口扫描,获取一些服务的banner信息
- 对内网web应用进行指纹识别,比如通过访问默认文件实现
- 攻击运行在内网或本地的应用程序比如溢出
- 攻击内外网的web应用,主要是使用get参数就可以实现的攻击,比如struts2,sqli等漏洞工具
- 利用file协议读取本地文件等
SSRF漏洞挖掘点:
SSRF攻击结果由涵数本身来决定,涵数功能越强大,攻击成功的机会就越高,如PHP的:curl_init、file_get_contents、fsockopen
网站功能:
- 在线翻译
- 转码服务
- 图片、文章收藏功能
- 图片加载与下载:通过URL地址加载或下载图片
- 分享:通过URL地址分享网页内容
- 未公开的api实现以及其他调用URL的功能
- 所有调外部资源的参数都有可能存在ssrf漏洞
网站url参数:
- share
- wap
- url
- link
- src
- source
- target
- u
- 3g
- display
- sourceURl
- imageURL
- domain
绕过方法:
利用解析URL所出现的问题
利用解析URL所出现的问题比如:http://[email protected]/
更改IP地址写法
改写成 8进制、16进制等,IP地址是一个32位的二进制数,通常被分割为4个8位二进制数,通常用“点分十进制”表示成(a.b.c.d)的形式,所以IP地址的每一段可以用其他进制来转换
比如将 http://192.168.66.133 转换为8进制:http://0300.0250.0102.0205
比如将 http://192.168.66.133 转换为16进制:http://0xc0.0xa8.0x42.0x85
比如将 http://127.0.0.1 转换为8进制:http://0177.0000.0000.0001
比如将 http://127.0.0.1 转换为16进制:http://0x7f.0x00.0x00.0x01
防范方法:
- 白名单过滤
- 对返回的内容进行识别
- 过滤file:///、dict://、gopher://、ftp:// http:// https:// php:///危险schema
- 过滤10.0.0.0/8 、172.16.0.0/12、192.168.0.0/16、localhost私有地址、IPv6地址
用pikachu靶场演示SSRF漏洞
SSRF(curl)
前端传进来的url被后台使用curl_exec()进行了请求,然后将请求的结果又返回给了前端,这关支持的协议挺多的:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP
读取文件:
Linux系统读取
file:///etc/passwd
我在C盘下建立了一个ssrf文本文件,就读取这个文本 我用的 file:///C://ssrf.txt
根据banner返回,错误提示,时间延迟扫描端口:
http://192.168.1.15:22
这里探测 3306 是否开启,有结果就是开启了,没结果换换协议换协议还没有就是没探测出来或则没开端口
SSRF(file_get_content)
读取PHP文件的源码:
php://filter/read=convert.base64-encode/resource=ssrf.php
边栏推荐
- 来 TDengine 开发者大会,洞悉数据技术发展的未来趋势
- 判断密码是否包含键盘连续字母
- Neck modules of the yolo series
- Motion Rule (16)-Union Check Basic Questions-Grid Game
- DateTimeFormatter api
- 缓存中间件技术选型Memcached、MongoDB、Redis
- MySQL - Explain explanation
- OAuth2图文快速入门
- rpm安装提示error: XXX: not an rpm package (or package manifest):
- 动规(16)-并查集基础题——亲戚(Relations)
猜你喜欢
随机推荐
使用COLMAP初步三维重建
oracle sql中根据条件判断是否插入数据
How to develop small program plug-ins to achieve profitability?
What is DevOps?Enough to read this one!
Tarjan 求有向图的强连通分量
Small program on how to play in the construction of e-government service platform value
num_workers
持续交付(四)Jenkins多线程任务执行
DateTimeFormatter api
String is a reference type
酷开科技 × StarRocks:统一 OLAP 分析引擎,全面打造数字化的 OTT 模式
Control CD-ROM with VbScript
新消费、出海、大健康......电子烟寻找“避风港”
A discussion of integrated circuits
num_workers
企业应当实施的5个云安全管理策略
博尔赫斯-诗中的经典语段
树莓派入门
Hit the interview!The latest interview booklet of Ali Jin, nine silver and ten is stable!
《独行月球》猛药,治不了开心麻花内耗