美文网首页
17-WEB-BugkuCTF之秋名山的车速

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

作者: evil_ice | 来源:发表于2018-06-30 00:57 被阅读16次

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

    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)
    

    相关文章

      网友评论

          本文标题:17-WEB-BugkuCTF之秋名山的车速

          本文链接:https://www.haomeiwen.com/subject/ioizyftx.html