bugku 秋名山老司机
bugku之秋名山老司机
题目连接:http://123.206.87.240:8002/qiumingshan/
一点进去是这样的
请在两秒内计算这个式子。。。怎么可能算的出来
查看源码,无果。。
burp抓包 无果
再次点进这个题目发现式子会变,于是多刷新几次,出现了这个界面
需要post这个式子的值,但是这个式子我不会算啊,怎么办?百度吧。。
百度后知道这个式子需要用python写一个脚本,但是看了他们写的脚本发现自己看不到,于是去刷一刷python 因为本来就不怎么熟悉 这里说下这次看了python学到的知识:
1.首先发现很烦的一件事就是python3很烦 print 后需要加("")而python2只需要print”“
2.算了直接上图
import re # import 是导入模块 相当于就是导入函数库 导入模块过后就可以用相应的模块里的函数 这里的re模块是正则表达式 用于匹配字符串当中的一定字符 但是说匹配这里却用来提取字符
import requests #导入requests模块 请求模块 这个模块还有很多需要我学习
import requests #导入requests模块 请求模块 这个模块还有很多需要我学习
s = requests.Session() # 用s存session session和cookie 都用于身份识别 session本义为对话 这里我自己暂时理解为 把这次对话保存起来并取名s 相当于记录身份
r = s.get("
searchObj = re.search(r'^<div>(.*)=\?;</div>$', r.text, re.M | re.S) #search 是扫描整个字符串并返回成功的匹配值 如果没有匹配则返回none 正则re.search(要匹配的字符,被扫描的字符,功能选择), 这里用这个函数实则是在提取字符,首先看要匹配的字符是这样的 r'^<div>(.*)=\?;</div>$',这里的r我实在没有查到是什么意思我看了好几个有些没有这个r,^代表开始,$代表结束,这里则表是从<div>开始到</div>结束,而中间的(.*)这里的.代表任意一个字符加一个*构成.*就多次的任意字符 然后\?是?有特殊含义需要匹配?要在前面加一个\,这里的=\?是源代码中本来就有的,这里打括号是进行分组,第一个()就是第一组第二个()就是第二组(这是我自己的理解) ,r'^<div>(.*)=\?;</div>$'表示<div></div>中的所有字符,然后再与r.text相匹配,相当于提取,后面我会带上图上面有一些字符的含义与某两个网站,还有分组。
d = {
"value": eval(searchObj.group(1)) #eval函数是计算值
}
r = s.post("
print(r.text) #输出结果
https://blog.****.net/github_36362235/article/details/53302787