[SCTF2019]Flag Shop ruby REB

这篇博客介绍了如何通过正则表达式完成CTF挑战,涉及在线计算任务和循环执行。同时,文章讨论了一个JWT漏洞,其中包含不断的点击工作以增加JKL值的尝试,以及通过分析源码找到SECRET并构造JWT进行重放攻击来获取flag的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[GXYCTF2019]StrongestMind
在这里插入图片描述
计算算式1000次给flag,写一个脚本就行。重点考察正则的使用:

from time import sleep

import requests
import re

url = "http://944c02ef-5777-4072-84fa-3fabe8c45ae9.node4.buuoj.cn:81/index.php"

s = requests.session()
r = re.compile(r"[0-9]+ [+|-] [0-9]+")
res = s.get(url)
for i in range(0,1001):
    sleep(0.1)
    play = r.findall(res.text)[0]
    result = eval(play)
    print(i,end=",")
    print(result)
    data = {
   
   "answer":result}
    res = s.post(url, data=data)
    res.encoding = "utf-8"
    print(res.text)

[SCTF2019]Flag Shop
在这里插入图片描述
有三个选项:buy flag需要你的JKL大于10e27,work可以增加你的JKL,大概是0-5的随机数,reset没用。
bp抓包看一下,这是work的,可以看到GET方法传了/work?name=bot&do=bot%20is%20working,然后你的JKL就增加了。
在这里插入图片描述
注意/shop返回的html页面上是没有你的JKL数量的,它是又调用了/api/info去查看的
在这里插入图片描述
在这里插入图片描述
这里的cookie是一个jwt,记录你的uid和jkl。一般想法肯定是去修改cookie里的jkl,我直接修改了然后重放会报错,看来这里是需要密钥的。尝试了jwt直接破解密钥,不行。
在这里插入图片描述
我又尝试了用脚本不断点击work,如果不是buu上的waf限制了访问间隔说不定还真可以,我把脚本放在这里哪位勇士想的话可以尝试一下。

from time import sleep
import requests

i=0
cok="auth=eyJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiI1OWYxOWU0Mi03NGFiLTQyYmMtYjhjZS0wNmZlMDY0ODE1NTkiLCJqa2wiOjE1NH0.VvXFVvRaWQVH7e0PDAOJaUkdnllTXRRaqX1Yoe5puKM"
while(i<=1000000000000000000000000001):
    sleep(0.2)
    url = "http://8faad94e-0038-49e8-80d8-993ff1b34e56.node4.buuoj.cn:81/work?name=bot&do=bot%20is%20working"
    s = reque
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值