声明:本篇的作者 Esc1234(CCSR小组重要成员之一)

题目:http://123.206.87.240:8002/qiumingshan/

目录

  1. 题目解析
  2. 总结

题目解析

  • 打开链接显示如下,且每次刷新时算式都会发生变化;

  • 显然是让在2s内提交计算结果,靠人工算是不可能的,因此使用python脚本进行计算,查看网页源代码;

  • 我们可以将div标签中的内容提取出来,然后使用python的eval()函数进行计算,最后通过post请求提交数据;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests
from bs4 import BeautifulSoup

# 建立session连接,此处没有直接使用request.get是因为之后进行post数据的时候会重新打开链接,计算表达式会发生变化
# 而session连接可以保持连接不会断开
session = requests.session()
res = session.get("http://123.206.87.240:8002/qiumingshan/")
# 使用第三方包BeautifulSoup对网页进行解析
soup = BeautifulSoup(res.text, 'html.parser')
s = soup.find('div')
# 去除div标签和多余符号
expression = str(s).strip('<div>').strip('=?;</')
# 计算表达式结果
result = eval(expression)
# 通过post请求提交数据,就有一定几率能得到flag,这里可能是因为计算结果有可能太大导致服务器不响应
req = session.post(url='http://123.206.87.240:8002/qiumingshan/', data={"value": str(result)}, headers={'Content-Type': 'application/x-www-form-urlencoded'})
print(req.text)
  • 执行后结果如下图所示:

总结

虽然这个web题很简单,但属于web方面的第一篇,而且重点介绍了在web类型题如何使用python脚本,而且注释很详细,再次感谢小组的Esc1234同学的讲解。