SSRF原理

参考【SSRF漏洞的打通经验】

图片 1

昨日莫再,周日腐败了,躺尸一龙,不过昨天过了瞬间前三篇翻译,把单词整理及了文末。

说明

今天底debugger支持太中心的简单单指令,next step和watch variable。

今关押了首15年之老文章了,结尾整理了一下:

语言定义

及等同节实现了概括的解释器,语言的概念:

先后:语句序列
话:语句子序列|赋值语句(语句;)
赋值语句:变量=表达式
表达式:包含变量的季则运算

SSRF概述

源码示例:

{
  number=2;
  a=number;
  b=10*a+10;
  c=a--b
};
x=11;
y=x*10

SSRF(Server-Side Request Forgery:服务器端请求伪造)
是一律种植由攻击者构造形成由服务端发起呼吁的一个安全漏洞。一般景象下,SSRF攻击的靶子是由外网无法访问的里边系统。(正是为其是由服务端发起的,所以它能够呼吁到和她不止而同外网隔离的其中系统)

调试器使用

package lsbasi;

public class TestDebug {
    public static void main(String[] args) throws Exception {
        Lexer lexer = new Lexer("{number=2;a=number;b=10*a+10;c=a--b};x=11;y=x*10");
        Parser p = new Parser(lexer);

        Interpreter i = new Interpreter(p);
        i.debugger();
        System.out.println(i.GLOBAL_SCOPE);

    }
}

SSRF
形成的缘故大多是由于服务端提供了自旁服务器应用获取数据的效果都从未对目标地点做过滤和限定。比如从指定URL地址获取网页文本内容,加载指定地方之图,下载等等。

调试器实现

package lsbasi;

import java.util.List;
import java.util.Map;
import java.util.Scanner;

import lsbasi.ast.StatementAST;
import lsbasi.visit.NodeVisitor;

public class Debugger {
    Scanner s = new Scanner(System.in);
    private Map<String, Integer> scope;
    private List<StatementAST> list;
    private int index;

    public Debugger(List<StatementAST> list, Map<String, Integer> scope) {
        this.list = list;
        this.scope = scope;
        this.index = 0;
    }

    public void help() {
        System.out.println("h:help");
        System.out.println("n:next");
        System.out.println("w:watch");
    }

    public String waitUser() {
        return s.next();
    }

    public void debugger() throws Exception {
        help();
        while (index < list.size() ) {
            switch (waitUser()) {
            case "n":
                NodeVisitor.visit(list.get(index), scope);
                index++;
                break;
            case "h":
                help();
                break;
            case "w":
                System.out.println(scope);
                break;
            default:
                break;
            }
        }

    }

}

完的代码

值得改进之地方本来多了,例如调试器功能不完整,这个只要考虑的扩展性的言辞,需要拆分代码。让每种调试功能化一个实例,在待的当儿进行挂号,组合子对象模式真的好像是。

SSRF 漏洞的摸索

后记

深信广大人数对调试器没有其他兴趣,但是据我所知很多小伙编程几乎离不起头调试器,比如自己,这自是可怜让权威鄙视的。

自身直接当怀念调试器的劳作原理是什么样的,有什么好处和弊病,怎么好摆脱调试器束缚,让自家为变成权威一下,而无是碰见问题不怕生断点,以前认为就是必选项。当自己听说,仅仅是风闻,有人可以同样糟以代码写针对性之上,我彻底改变了先的想法,觉得温馨的做法太low了。我怀念要去调试器的话,我们须对语言很熟稔,对正值操作的数量很熟悉,有部分帮扶日志帮助,把逻辑设计的天衣无缝,一人暴都写针对性。如果起同样丁暴都写对的,请联系我,让自家见识一下。

调试器的哲学是叫计算的世界已下来,慢下,让咱们精心考虑我们的代码,看到变量值和当下考虑非全的地方,有时候这种似是而非非常为难捕捉,即使极好之调试器也吃不消拙略程序员的鲁行为。我想其他一个术是咱们可被好舒缓下来,来答复程序的片段错误。

但过多上咱们接不熟悉的代码,甚至得在线定位,或者对总体的代码不熟悉,这时候就得用调试器碰碰运气了。当然终极杀招似乎还是类似alert
print之类的输出。

对新家调试器是种植逆天的效益,可以被人对代码每一样步有直观了解,弥补了针对细节掌控的贫乏。但是别牛皮的工具还未会见为猿类的好逸恶劳与免思量上进买只,如果你切莫晓得您自己正干什么,做的更好且是废品。

一样、从WEB功能上追寻

咱俩打者的概述可以看出,SSRF是出于服务端获取其他服务器的连带信息之成效中形成的,因此我们蛮得列举几栽于web
应用中广泛的从服务端获取其他服务器信息之之法力。

1)分享:通过URL地址分享网页内容

早期分享应用被,为了还好之供用户体验,WEB应用在分享功能受到,通常会落目标URL地址网页内容中的<tilte></title>标签或者<meta
name=”description”
content=“”/>标签中content的文件内容作为显示为供更好之用户体验。例如人人网分享功能中:

http://widget.renren.com/*****?resourceUrl=https://www.sobug.com

图片 2

经目标URL地址获取了title标签和系文件内容。而要当是意义中绝非指向目标地点的限定做过滤跟限定则就在正在SSRF漏洞。

根寻这个意义,我们可发现多互联网公司还负有如此的效能,下面是自个儿自百度分享集成的截图如下:

图片 3

起境内有漏洞提交平台及提交的SSRF漏洞,可以发现包淘宝、百度、新浪等国内有名商家还早已深受发现过分享功能及是SSRF的纰漏问题。

2)转码服务:通过URL地址将本来地方的网页内容调优使其副手机屏幕浏览

是因为手机屏幕尺寸的干,直接浏览网页内容的时节会招致广大困难,因此有些商家提供了转码功能,把网页内容通过有关手段转为适合手机屏幕浏览的体裁。例如百度、腾讯、搜狗等店铺还起提供在线转码服务。

3)在线翻译:通过URL地址翻译对应文本的情节。提供者功能的国内企业来百度、有道等

4)图片加载与下载:通过URL地址加载或生充斥图片

图片加载远程图片地址是意义因此到之地方重重,但大多还是比隐秘,比如当微公司受到之加载自家图片服务器上的图样用于展示。(此处或会见有人出疑点,为什么加载图片服务器上之图也会产生题目,直接用img标签不就是吓了?
,没错是这般,但是开发者为了有双重好的用户体验通常对图纸做些轻微调整例如加水印、压缩等,所以尽管可能造成SSRF问题)。

5)图片、文章收藏功能

此间的图形、文章收藏着的章收藏就象是于功能一、分享功能受到赢得URL地址中title以及文本的始末作显示,目的还是为重新好的用户体验,而图片收藏就好像于功能四、图片加载。

6)未明之api实现和任何调用URL的效益

此地类似的法力有360资的网站评分,以及小网站经过api获取远程地址xml文件来加载内容。

 

在这些职能受到除去翻译与转码服务呢公共服务,其他力量都有或在企业应用开发进程被碰到。

亚、从URL关键字被找找

于针对功能上存在SSRF漏洞被URL地址特征的观测,通过我一段时间的搜集,大致有以下重点字:

share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
...

一经用google
语法加上这些关键字去摸SSRF漏洞,耐心的辨证,现在尚是好找到在的SSRF漏洞。

SSRF 漏洞的证明

1)基本论断(排除法)

例如: 

http://www.douban.com/***/service?image=http://www.baidu.com/img/bd_logo1.png

排除法一:

而可直接右键图片,在新窗口打开图片,如果是浏览器上URL地址栏是http://www.baidu.com/img/bd\_logo1.png,说明不存在SSRF漏洞。

解法二:

您得用burpsuite等抓包工具来判断是否不是SSRF,首先SSRF是由于服务端发起的求,因此于加载图片的下,是出于服务端发起的,所以当我们当地浏览器的请求被就是非应当在图片的乞求,在此例子中,如果刷新时页面,有如下请求,则只是判不是SSRF。(前提设置burpsuite截断图片的求,默认是放行的)

图片 4

 

这边说明下,为什么就边用排除法来判定是否留存SSRF,举个例子:

http://read.*******.com/image?imageUrl=http://www.baidu.com/img/bd_logo1.png

图片 5

当今多数修复SSRF的不二法门基本都是别内外网来举行限定(暂勿考虑下这题材来倡导呼吁,攻击外网站,从而隐藏攻击者IP,防止这题材就是设开要的地址之白名单了),如果我们请求

http://read.******.com/image?imageUrl=http://10.10.10.1/favicon.ico

倘从未内容展示,我们是判定这点不有SSRF漏洞,还是http://10.10.10.1/favicon.ico这个地址被过滤了,还是http://10.10.10.1/favicon.ico这个地址的图片文件不存在,如果我们事先不知道http://10.10.10.1/favicon.ico这个地址的文件是否存在的时候是判断不出来是哪个原因的,所以我们采用排除法。

2)实例证实

经过简易的清除验证后,我们尽管使说明看看这个URL是否可以来求对应之内网地址。在是例子中,首先我们如果收获内网存在HTTP服务都是favicon.ico文件的地址,才能够印证是否是SSRF漏洞。

搜索有HTTP服务之内网地址:
无异于、从漏洞平台中之历史漏洞寻找泄漏的存在web应用内网地址
次、通过二级域名暴力猜解工具模糊猜测内网地址

example:ping xx.xx.com.cn

图片 6

足推测10.215.x.x 此段子就是生好怪之或: http://10.215.x.x/favicon.ico
存在。

当选举一个特的事例来说明\[1\]

http://fanyi.baidu.com/transpage?query=http://www.baidu.com/s?wd=ip&source=url&ie=utf8&from=auto&to=zh&render=1

图片 7

此地得到的IP
不是本人处处地方下的IP,因此好判此处是由服务器发起的http://www.baidu.com/s?wd=ip
请求得到的地点,自然是中逻辑中提倡呼吁的服务器的外网地址(为什么如此说呢,因为发起的要的匪必然是fanyi.baidu.com,而是内部任何服务器),那么这里是勿是SSRF,能形成损伤吗?
 严格来说此处是SSRF,但是百度已经开过了过滤处理,因此形成不了探测内网的危。

SSRF 漏洞被URL地址过滤的纠缠了

1)http://www.baidu.com@10.10.10.10与http://10.10.10.10 请求是一模一样之

其一脚本访问请求得到的内容都是www.baidu.com的情节。 

图片 8

2)ip地址转换成为进制来访问

图片 9

此脚论解析的地方都是 115.239.210.26,也得使ping 获取解析地址:

图片 10

 

若是WEB服务简单的过滤参数中获之URL地址,没有看清真的访问的地方,是发或为这个两种植方式绕了的。

文中”SSRF 漏洞被URL地址过滤的纠缠了”小节参考:URL Hacking –
前端猥琐流[0x_Jin] http://drops.wooyun.org/tips/750

 

整理:

[1]. 百度翻译的这里

http://fanyi.baidu.com/transpage?query=http://www.baidu.com/s?wd=ip&source=url&ie=utf8&from=auto&to=zh&render=1

红色部分是一个参数,如换成http://2017.ip138.com/ic.asp

http://fanyi.baidu.com/transpage?query=http://2017.ip138.com/ic.asp&source=url&ie=utf8&from=auto&to=zh&render=1

图片 11

如下:

http://translate.baiducontent.com/transpage?cb=translateCallback&ie=utf8&source=url&query=http%3A%2F%2Fgames.sina.com.cn%2F&from=en&to=zh&token=&monLang=zh

图片 12

 

发道翻译如下:

http://fanyi.youdao.com/WebpageTranslate?keyfrom=fanyi.web.index&url=2017.ip138.com%2Fic.asp&type=AUTO&action=FY\_BY\_ENTER

图片 13

 

末尾谢谢辣条小姐姐的解答