秋名山老司机

进来之后会发现让算一个非常复杂的算式,刷新几遍后会发现

让以post方式传一个值,查看源码以后也没有什么收获,所以百度了一下是叫快速反弹post请求

快速反弹post请求:在 HTTP 响应头获取了一段有效期很短的 key 值后,需要将经过处理后的 key 值快速 POST 给服务器,若 key 值还在有效期内,则服务器返回最终的 flag。

解决这类方法一般会写python脚本,先学一下requests:

GET和POST区别:请求参数的话,get和post是不同的,get是params,直接接在url后面,而post是传递data。

#发送post请求和get请求
r = requests.get("http://httpbin.org/get")
r = requests.post("http://httpbin.org/post")#查看请求头
r = requests.get('http://httpbin.org/get')
print(r.request.headers){'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.24.0'}#查看响应头
r = requests.get('http://httpbin.org/get')
print(r.headers){'Content-Length': '305', 'Server': 'gunicorn/19.9.0', 'Connection': 'keep-alive', 'Access-Control-Allow-Credentials': 'true', 'Date': 'Mon, 22 Jun 2020 10:41:23 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json'}#查看响应内容
r = requests.get('http://httpbin.org/get')
print(r.text)#传递GET请求参数
#GET 请求参数作为查询字符串附加在 URL 末尾,可以通过 requests.get() 方法中的 params 参数完成。
data = {"hello":"world"}
r = requests.get('http://httpbin.org/get',params=data)
print(r.url)http://httpbin.org/get?hello=world#传递POST请求参数
#POST 请求参数以表单数据的形式传递,可以通过 requests.post() 方法中的 data 参数完成,具体代码如下:
data = {"hello":"world"}
r = requests.post('http://httpbin.org/post',data=data)
print(r.text)

cookie和session

Session 是存储在服务器上的相关用户信息,用于在有效期内保持客户端与服务器之间的状态。Session 与 Cookie 配合使用,当 Session 或 Cookie 失效时,客户端与服务器之间的状态也随之失效。

session的根本原理及安全性
Session原理

#传递Cookie参数(post和get都可以)
data = {"userid":"123456"}
r = requests.post('http://httpbin.org/post',cookies = data)
print(r.request.headers)#建立session对象
s = requests.session()
r = s.get("http://httpbin.org/get")

正则表达式:

search() 的第一个参数是匹配的正则表达式,第二个参数是要匹配的字符串。其中 \d+代表一个或多个数字;[+\-*] 匹配一个加号,或一个减号,或一个乘号,注意减号在中括号内是特殊字符,要用反斜杠转义;(\d+[+\-*])+代表一个或多个由数字与运算符组成的匹配组;最后再加上剩下的一个数字 (\d+)。

正则表达式中,group()用来提出分组截获的字符串**,()用来分组**

写脚本如下为:

import requests
import reurl = 'http://123.206.87.240:8002/qiumingshan/'
s = requests.Session()
source = s.get(url)
expression = re.search(r'(\d+[+\-*])+(\d+)', source.text).group()result = eval(expression)
data = {'value': result}
r = s.post(url, data=data)
print(r.text)

得到flag。

Bugku-web-秋名山老司机相关推荐

  1. BugkuCTF: 秋名山老司机(web)

    题目描述: 亲请在2s内计算老司机的车速是多少 1565348110-1585852319+1424136689-501596850-364488737*872756914-663618483-112 ...

  2. 秋名山老司机 (Bugku) re库和request库

    尝试写的第一个python脚本--之前一直只会用工具(不,有的工具也还不会用--)可以说是很神奇了 先贴上代码: import requests import re url='http://120.2 ...

  3. Bugku WEB 秋名山车神

    1.打开场景,发现是一个表达式求值,而且要求是两秒之内求值,刷新发现表达式变了,手动算是不可能了 ,写脚本跑吧 2.上脚本内容 #! /usr/bin/python import requests # ...

  4. Bugku web(1—35)

    1.web2 打开网页: 哈哈,其实按下F12你就会发现flag. 2.计算器 打开网页,只是让你输入计算结果,但是发现只能输入一个数字,这时按下F12,修改一下参数,使之可以输入多个数字,修改后输入 ...

  5. bugku web篇

    web2 f12查看源代码在注释语句里面 计算器 直接求给的题目 但是对input的最大输入个数做了限制可以直接f12改限制字数也可以bp抓包修改 web基础$_GET $what=$_GET['wh ...

  6. bugku web wp

    写在前面: 简单步骤不再复现,只是再复习一下知识点,可以挖深一点. web2 F12 计算器 F12改html $get $post ? & hackbar 矛盾 很多解法 1加一个符号就行了 ...

  7. [Bugku][Web][CTF] 16-29 write up

    [说明] 整合资源 简略版本2020Bugku write up web16 备份是个好习惯 /index.php.bak 查看php代码 1.因为md5()函数加密不能处理数组,则key1和key2 ...

  8. stm32 web 参数_老司机们都是怎么学习STM32的?

    单片机用处这么广,尤其是STM32,这么火!如何快速上手学习呢? "不要去学STM32".我不是说STM32不好,而是这种为了学习单片机而去学习单片机的思路不对.你问,如何系统地入 ...

  9. python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...

    原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...

  10. 【20:30直播】网易老司机聊程序员的职场道路选择

    小时候你在想,到底去北大还是清华: 毕业了你在想,到底去大公司还是小公司: 入职后你在想,到底主攻技术专家还是技术管理. 人生处处是选择, 机遇总有限,坑却总不少. 为什么成功者的鸡汤总是美味? 因为 ...

最新文章

  1. 百度嵌入式深度学习框架Paddle-Mobile介绍
  2. 第五章 Python数据结构
  3. rt-thread 自动初始化机制分析-关于编译链接及段信息
  4. 产品经理做产品设计的九步法
  5. HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信
  6. HashMap在并发场景下踩过的坑
  7. 用美图秀秀批量修改图像尺寸分辨率大小、批量修改名字
  8. 什么是晶振?晶振在电路中的作用是什么?
  9. 人工神经网络—神经元的数学模型
  10. 关于启动报错:Field xxxMapper in com.xxx.service.impl.xxxServiceImpl required a bean of type的解决方案
  11. 10-7 spj-查询供应工程 j1 的供应商
  12. 盛迈坤电商:店铺推广的技巧分享
  13. wps图片与图片间距怎么调整_wps图片与图片间距怎么调整_微信图文排版,字间距,行间距,怎么调整合适?......
  14. 【使用python获取pdf所需数据】
  15. 新旧版本谷歌浏览器自动播放问题
  16. mysql 8.0.11-winx64_mysql-8.0.11-winx64 安装步骤
  17. apple pay
  18. [数据集][VOC]高质量的目标检测数据集合集(持续更新)
  19. SAP中使用BDC创建或修改采购信息记录
  20. 敏涵国际品牌:定义高端美妆新力量

热门文章

  1. JavaScript实现的手风琴图片切换,鼠标悬停任意图片html前端源码
  2. 编写MTK6737平台的GPIO驱动例程(一)
  3. Android开发之so文件使用方法详解
  4. 数加平台协助汇合营销快速行动,捕获转瞬即逝的商机。
  5. html怎样给图片铺热区,HTML图片热区map area的用法
  6. mysql 磁盘读取原理_mysql 底层原理
  7. alex机器人 ser_基于Web Service的机器人远程控制系统设计
  8. 生活中的定律——劣币驱逐良币
  9. Java回收对象的标记 和 对象的二次标记过程
  10. 实体(Entity)