欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > CTF--秋名山车神

CTF--秋名山车神

2025/4/21 4:09:39 来源:https://blog.csdn.net/2401_83809941/article/details/147355303  浏览:    关键词:CTF--秋名山车神

一、原网页:

二、步骤:

1.尝试用计算器计算:

计算器溢出,无法正常计算

2.使用python计算:

得出计算结果为:1864710043732437134701060769

3.多次刷新页面:

发现变量为value,要用post方式给变量传参

那么value=1864710043732437134701060769

4.向URL传参

没有返回flag,且每次刷新页面,数学表达式都在变化

用python计算后,发现计算结果都不相同:

得出结论:我们必须按照提示,在2秒之内计算出结果并传参给URL才能返回flag,否则页面会重新生成新的数学表达式,而我们提交的值无效。

5.解决方案:

(1)编写脚本:

(2)修改Cookie值:

CTF-WEB-秋名山车神-简单方法解题 - 简书

(PS:emmm,按照上面的方法修改了cookie,还是刷新不出flag,不知道啥原因,而且很奇妙的是,我关了BP的intercept on,才能在原网页中不断键入ctrl+r刷新出新的页面,一开intercept on,那页面就跟老年痴呆一样,一直刷新不出新页面的内容。走过路过的帅哥美女们,知道原因的麻烦留个言噻,感激不尽!)

三、脚本分析:

1.脚本: 

import requests
import reurl = '''http://117.72.52.127:15092'''
s = requests.session()
response = s.get(url)equation = re.search(r'(\d+[+\-*])+(\d+)', response.text).group()
result = eval(equation)key = {'value': result}
flag = s.post(url, data=key)print(flag.text)

2.分析:

import requests 
# 导入requsets库
# requests是一个用于发送HTTP请求的库,可以轻松地发送GET、POST等请求import re  
# 导入re库
# re是正则表达式模块,用于在字符串中查找模式用于正则表达式匹配url = '''http://117.72.52.127:15092''' 
# 定义目标服务器的URL,表示你要访问的地址s = requests.session()
# 创建一个会话对象s,会话对象可以保持某些参数(如cookies)在多个请求之间共享
# 这对于需要模拟登录或保持会话的场景非常有用。response = s.get(url)
# 使用会话对象发送GET请求到目标URL,并获取响应equation = re.search(r'(\d+[+\-*])+(\d+)', response.text).group()
# 使用正则表达式从响应的HTML内容中搜索一个数学表达式
# 正则表达式 r'(\d+[+\-*])+(\d+)' 的含义:
# \d+:匹配一个或多个数字
# [+\-*]:匹配一个加号、减号或星号(运算符)
# 整个模式匹配一个数学表达式,例如 1+2 或 3*4
# .group():提取匹配到的完整字符串result = eval(equation)
# 使用 eval() 函数计算匹配到的数学表达式的结果key = {'value': result}
# 将计算结果封装到字典中,作为POST请求的数据flag = s.post(url, data=key)
# 使用会话对象发送POST请求到目标URL,并附带计算结果作为数据print(flag.text)
# 打印服务器返回的响应内容

这小友也写得挺好的,附上链接:

请求与响应 - Bugku-Web-秋名山车神 - 《⚔️CTF》 - 极客文档

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词