查看: 102|回复: 0

[Web] xuenixiang_2020_web_web200-1

[复制链接]
发表于 2020-4-25 20:10:45 | 显示全部楼层 |阅读模式
打开链接,让我们在2秒之内计算出一个很复杂的式子的值传进去

xuenixiang_2020_web_web200-1

xuenixiang_2020_web_web200-1

刷新式子一直在变化,不过出来一个提示让我们以post方式传入计算的值,变量名字为value,如果你真的拿计算机去计算传值,嘿嘿嘿!


xuenixiang_2020_web_web200-1

xuenixiang_2020_web_web200-1



查看源代码没有什么提示

xuenixiang_2020_web_web200-1

xuenixiang_2020_web_web200-1



百度知道这道题是快速反弹post请求,什么意思呢?HTTP 响应头获取了一段有效期很短的 key 值后,需要将经过处理后的 key 值快速 POST 给服务器,若 key 值还在有效期内,则服务器返回最终的 flag,否则继续提示“请再加快速度!!!”之类的话,所以你别想手动传值了,必须使用python脚本了,python中有eval函数可以快速计算,满足要求
脚本如下:

<font size="4">import requests
s = requests.Session()
r = s.get("http://123.206.87.240:8002/qiumingshan/")
searchObj = re.search(r'(\d+[+\-*])+(\d+)', r.text)
d = {
    "value": eval(searchObj.group(0))
    }
r = s.post("http://123.206.87.240:8002/qiumingshan/", data=d)
print(r.text)
</font>
需要多次运行才可以获取flag,可能在计算过程或者传值过程有错误。


解释:


调用requests库


创建一个会话对象s,以会话对象向url发出一个get请求


re.search扫描一个字符串返回第一个匹配成功的值,r.text为服务器返回页面的内容,这句代码的功能是在re.text中匹配我们需要的计算公式,r表示字符串为原始字符串,里面的"\"不再被认为转义字符


“\d+” 匹配一个或者多个字符
“[+-*]” 匹配加号,加号,乘号,因为式子里面包含这三种运算,"-“在中括号里面为特殊符号,使用”\"转义
“\d+” 再匹配一个字符或者多个字符
这样就满足了式子格式


创建一个字典d,键"value",键值为刚才匹配的式子的值


eval计算式子的值


"group(0)"表示匹配的结果,索引从0开始,这里指的匹配到的式子


以post的形式传给url一个值,参数data为默认参数不能修改


打印出r.text,里面的内容为成功提交计算结果的返回页面,里面存放着flag


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
快速回复 返回顶部 返回列表