这是bugku平台的一道ctf-web题目
这道题目非常简单 涉及到脚本的书写 不过这个脚本也很短 非常的简单
打开题目后会看到一串数字的求和 并且题干让你2s内求出值 手动必然不可能实现
从而这题就需要脚本了
我们多次刷新页面会出现这么一个提示
也就是说通过post传参一个value的键值对从而拿到我们的flag
脚本如下 脚本的几处注释也在其中了 脚本很短也非常简单
import requests
import re
url='http://114.67.175.224:12809/'
# 建立一个session 会话 这样后面发包时就在同一个会话中 值才会被传递 不然每次刷新都是不同的会话
r=requests.session()
r1=r.get(url)
print(r1.text)
# 正则匹配 返回列表形式
result=re.findall('<div>(.*?)=\?;</div>',r1.text)
print(result)
# findall返回的是列表形式 下标从0开始 eval进行求和
total=eval(result[0])
print(total)
# post传参 键值对形式
key={'value':total}
# post传参 通过建立的会话将值传回
r2=r.post(url,data=key)
# 将值传回后返回的就是flag 有时返回为空 多go几次即可
print(r2.text)
flag就到手了 不过有时flag不会返回 多go几次即可
这题中涉及到正则 不懂得伙伴们可以学习一下正则 正则在爬虫中也是用到得非常多的