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

82,【6】BUUCTF WEB .[CISCN2019 华东南赛区]Double Secret

进入靶场

提到了secret,那就访问

既然这样,那就传参看能不能报错

这个页面证明是有用的

传参长一点就会报错,传什么内容无所谓

所以网站是flask框架写的

有一个颜色深一点,点开看看

rc4加密+url编码

import base64
from urllib import parse

def rc4_main(key = "init_key", message = "init_message"):#返回加密后的内容
    s_box = rc4_init_sbox(key)
    crypt = str(rc4_excrypt(message, s_box))
    return  crypt

def rc4_init_sbox(key):
    s_box = list(range(256)) 
    j = 0
    for i in range(256):
        j = (j + s_box[i] + ord(key[i % len(key)])) % 256
        s_box[i], s_box[j] = s_box[j], s_box[i]
    return s_box
def rc4_excrypt(plain, box):
    res = []
    i = j = 0
    for s in plain:
        i = (i + 1) % 256
        j = (j + box[i]) % 256
        box[i], box[j] = box[j], box[i]
        t = (box[i] + box[j]) % 256
        k = box[t]
        res.append(chr(ord(s) ^ k))
    cipher = "".join(res)
    return (str(base64.b64encode(cipher.encode('utf-8')), 'utf-8'))

key = "HereIsTreasure"  #此处为密文
message = input("请输入明文:\n")
enc_base64 = rc4_main( key , message )
enc_init = str(base64.b64decode(enc_base64),'utf-8')
enc_url = parse.quote(enc_init)
print("rc4加密后的url编码:"+enc_url)
#print("rc4加密后的base64编码"+enc_base64)

将运行结果进行传参即可得到flag

         ·


http://www.kler.cn/a/522765.html

相关文章:

  • 免杀国内主流杀软的恶意样本分析
  • C#高级:常用的扩展方法大全
  • 单路由及双路由端口映射指南
  • 4.flask-SQLAlchemy,表Model定义、增删查改操作
  • MongoDB 数据库备份和恢复全攻略
  • 不只是mini-react第二节:实现最简fiber
  • 电脑怎么格式化?格式化详细步骤
  • App UI自动化--Appium学习--第一篇
  • 【机器学习】自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
  • LabVIEW相位差测量系统
  • [微服务]服务保护原理
  • Redis数据库笔记——数据类型及其底层实现
  • stm32内存溢出怎么办
  • 如何在AWS上部署一个Web应用?
  • 【设计模式-行为型】备忘录模式
  • 《CPython Internals》读后感
  • 使用Python和Qt6创建GUI应用程序--关于Qt的一点介绍
  • WordPress event-monster插件信息泄露漏洞复现(CVE-2024-11396)(附脚本)
  • 【MySQL】 数据类型
  • Hive详细讲解-各类函数速通
  • GO 库与框架篇
  • Vue 3 30天精进之旅:Day 06 - 表单输入绑定
  • 【愚公系列】《循序渐进Vue.js 3.x前端开发实践》027-组件的高级配置和嵌套
  • Java数据库操作指南:快速上手JDBC【学术会议-2025年数字化教育与信息技术(DEIT 2025】
  • 如何利用AI工具来进行数据分析
  • 落地 轮廓匹配