飞道的博客

SSRF攻击Redis写入webshell

219人阅读  评论(0)

目录

攻击环境设计

redis服务器搭建

dict探测内网端口

利用gopher协议写入webshell


关于ssrf攻击,传送门 -》SSRF漏洞原理与利用方式 。当我们检测出一个网站存在SSRF漏洞的时候,我们就可以探测当前主机开放的端口,而这些端口往往我们从外网是不能直接探测到的,所以可以尝试利用ssrf探测内网开放的端口。

漏洞利用前提:

  • 知道网站根目录,这里假设知道了根目录
  • 根目录具有写文件的权限

攻击环境设计

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()


  
  1. flushall
  2. config set dir C:\\Users\\Administrator.WIN2012\\Desktop\\phpStudy\\WWW
  3. config set dbfilename shell.php
  4. set 'webshell' ' <?php phpinfo();?> '
  5. save

编辑好后运行redis-over-gopher/redis-over-gopher.py


将生成的payload复制下来,再进行一次url编码

直接在浏览器漏洞所在url访问payload,或者使用burp发送

此时查看。发现生成了shell.php文件,访问文件


转载:https://blog.csdn.net/qq_44159028/article/details/117034100
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场