17-WEB-BugkuCTF之秋名山的车速

一,题目--秋名山的车速

image.png

二,分析

根据题目的要求,将页面的四则混合算数运算结果在2s内提交,人工计算必然是不可能的,所以我们提取页面四则混合算数运算,计算并提交

#coding:utf-8
import requests
import re
import distutils.filelist
from bs4 import BeautifulSoup
#1,获取网页内容,并且提取<div>内容
url = 'http://120.24.86.145:8002/qiumingshan/'
#特别注意
session = requests.session()
res = session.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text,"html.parser")
div_contents = soup.find_all("div")
div_content = div_contents[0].text
# <div>143350709250709223654721*1433507092+2095192870+317935632*1098910792+926004113-1084542666*1034451422-725691534*1973466417-1918506529=?;</div>
#2,去除无效字符
div_content = div_content.replace('<div>',"  ")
div_content = div_content.replace("</div>","  ")
div_content  = div_content.replace("=?;","  ")
#3,计算结果
result=eval(div_content)
#4,上传结果
post_req = session.post(url, data = {'value':result})
print(post_req.text)

特别需要注意的是:获取页面数据和提交结果需要保持一个同一个Session,Session能够跨请求保持某些参数,它也会在同一个 Session 实例发出的所有请求之间保持 cookie。 别问我为什么需要同一个Session请求和提交数据,因为这个页面的HTTP请求中有Session

三,知识点

  • Request获取页面,以及提交结果
  • 页面元素的抓取
  • Session

PS:上面页面元素的抓取和结果提交显得有点啰嗦,下面模仿网上精简的代码

import requests
import re
url = 'http://120.24.86.145:8002/qiumingshan/'
session = requests.Session();
page_content = session.get(url).text
exp = re.search(r'(\d+[+\-*])+(\d+)',page_content).group()
result = eval(exp)
print(result)
post_page = session.post(url,data={'value':result})
print(post_page.text)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文/始于初见 爷爷在世时,有一个习惯。 他一般会一觉睡到中午十二点左右,然后慢悠悠的起来,搬把椅子放在大门前,坐在...
    始于初見阅读 563评论 2 1
  • #玩卡不卡·每日一抽#每一位都可以通过这张卡片觉察自己: 1、直觉他叫什么名字?小红 2、他几岁了?25 3、他现...
    我心安住阅读 260评论 0 0
  • 今天一天都没课,只有下午4点的后两节课,于是我们宿舍四人就计划去武汉大学看樱花,毕竟不远。今天气温骤降,昨天还23...
    佼佼者脾气很差阅读 2,416评论 207 109
  • 再见的意思是,不再见你。不再见你的意思是,你和我之间,只剩想念。想念的意思是,穿越时间和空间去看你。去看那天你带着...
    最怕深交后的冷漠阅读 292评论 0 2