bugku 秋名山老司机

bugku之秋名山老司机

 

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

     一点进去是这样的

bugku 秋名山老司机

 

 请在两秒内计算这个式子。。。怎么可能算的出来

查看源码,无果。。

burp抓包 无果

再次点进这个题目发现式子会变,于是多刷新几次,出现了这个界面

bugku 秋名山老司机

 

 需要post这个式子的值,但是这个式子我不会算啊,怎么办?百度吧。。

百度后知道这个式子需要用python写一个脚本,但是看了他们写的脚本发现自己看不到,于是去刷一刷python 因为本来就不怎么熟悉 这里说下这次看了python学到的知识:

1.首先发现很烦的一件事就是python3很烦  print 后需要加("")而python2只需要print”“

 

2.算了直接上图

bugku 秋名山老司机

 

 

 import re         #  import 是导入模块 相当于就是导入函数库 导入模块过后就可以用相应的模块里的函数  这里的re模块是正则表达式 用于匹配字符串当中的一定字符 但是说匹配这里却用来提取字符 

import requests    #导入requests模块 请求模块 这个模块还有很多需要我学习 

s = requests.Session()  # 用s存session session和cookie 都用于身份识别 session本义为对话 这里我自己暂时理解为 把这次对话保存起来并取名s 相当于记录身份

r = s.get("bugku 秋名山老司机http://120.24.86.145:8002/qiumingshan/")    #用此身份请求并url

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("bugku 秋名山老司机http://120.24.86.145:8002/qiumingshan/", data=d)    #post传值

print(r.text)  #输出结果 
 
bugku 秋名山老司机

bugku 秋名山老司机

 

 bugku 秋名山老司机

       https://blog.****.net/github_36362235/article/details/53302787