• [护网杯 2018]easy_tornado-1|SSTI注入


    1、打开之后给出了三个连接,分别查看下三个连接内得信息,结果如下:

    2、url中参数包含一个文件名与一串应该是md5得加密的字符串,文件名已经获得了,就需要获取加密得字符串,但是加密字符串时需要使用到cookie_secret。搜索下tornado render信息,显示是找到模板进行渲染,因此就想到了ssti注入。

    3、开始思考获取cookie_secret,未在三个页面中发现存在可利用得地方,然后就只能开始目录扫描,发现了error页面,就想到了修改前面正常的参数,然后看下报错界面,发现了错误界面的msg参数,结果如下:

    4、测试下msg参数是否存在ssti注入,payload:{{2*2}},返回ORZ,开始还以为是提示,发现并没有啥用,是对我们的参数进行了过滤,但是也确定了这里可以注入,结果如下:

    5、在tornado官方网站和网上查找资料,最终得到handler指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,官方文档说明如下:

    点击self.application.settings后如下:

    所以在注入点输入handler.settings进行测试,最终得到cookie_secret,结果如下:

    6、获取到cookie_secret之后,那就根据之前文件获取的md5(cookie_secret+md5(filename))进行加密,获取加密值:eef1ef9f2f68ad8887830b86bcac0120,结果如下:

    7、获取到加密之后在访问文件得url下修改文件名和加密的字符串进行访问,成功获得flag值,payload:/file?filename=/fllllllllllllag&filehash=eef1ef9f2f68ad8887830b86bcac0120,结果如下:

  • 相关阅读:
    Python---异常
    面试突击76:${} 和 #{} 有什么区别?
    C语言——计算1!+2!+3!+......+10!
    图片怎么转换成PDF格式?这两种方法赶紧记下
    [ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法
    11 盛水最多的容器
    【Android抓包】- Stetho
    力扣(LeetCode)16. 最接近的三数之和(C++)
    联想M7216NWA打印一体机墨粉清零方法
    代码随想录1刷—数组篇
  • 原文地址:https://www.cnblogs.com/upfine/p/16580848.html