Bugku-秋名山车神

Bugku-秋名山车神

目录

题目描述

要在2秒内计算出表达式,并post提交

时间:2023年9月9日

类型:Web 正则匹配 cookie获取

WP

提取信息

多刷新几次发现有不同页面。使用bp抓包找到规律

页面1

Cookie中只有一个PHPSESSID
在这里插入图片描述

页面2

cookie中多了一个 Timeout=alive

在这里插入图片描述

阅读页面2信息可得:我们需要用POST提交一个参数名为value 值为这个表达式的结果1535374328+207288372-16885296531546521933-1179470093375750599*1032048184-962316762-1406938828-1119101745+1964143764=

根据所得信息编写简易脚本

import re
import requests

URL = "http://114.67.175.224:11503/"

s = requests.Session()   #创建会话

res = s.get(URL)    #获取cookie
res = s.post(URL, ) #使用获取到的cookie,得到页面2
DATA = {
    "value": eval(re.search(r"Give me value post about (.*?)=\?", res.text, re.S).group(1))   #计算表达式
}
res = s.post(URL, data=DATA)  #提交获取response
print(res.content.decode())   #获取flag

得到flag

flag{4ec655100d6a9e1e4e7d159de8738616}

在这里插入图片描述

总结

  1. 有的题比较坑,找不到啥信息就多刷新几次看看

参考资料

eval()

用法: eval(expression, globals=None, locals=None)

  • expression:这个参数是一个字符串,,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当做一个python表达式(从技术上讲,是一个条件列表)进行解析和计算。
  • globals :这个参数管控的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了,并且没有提供自定义的__builtins__,那么会将当前环境中的__builtins__拷贝到自己提供的globals里,然后才会进行计算。关于__builtins__,它是python的内建模块,也就是python自带的模块,不需要我们import就可以使用的,例如我们平时使用的int、str、abs等都在这个模块中。关于它的说明可以参照这篇文章:点击打开链接。如果globals没有被提供,则使用python的全局命名空间。
  • locals:这个参数管控的是一个局部的命名空间,和globals类似,不过当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的,也就是当globals和locals中有冲突的部分时,locals说了算,它有决定权,以它的为准。如果locals没有被 提供的话,则默认为globals。
a=10;
print(eval("a+1")) #10

输出为 10 ,eval()可以识别变量a为10

a=10;
g={'a':4}
print(eval("a+1",g)) #5

输出为 5 ,eval()因为我们指定了g作为全局变量,所以会优先取字典g中寻找

a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))

输出为 116,eval()由此可见变量的优先级 字典t > 字典g > 外部定义变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值