BugKu Web(21-25)

BugKu Web(21-25)


前言

bugku刷题,本来想每10道写一篇的,但水平有限,发现到这里题目难度已经有点大了,所以每5道题整合一篇吧…

题目

  1. 秋名山老司机 1
    登陆可以看到如上提示,然后快速刷新可以看到要求是post提交,键名为value
    2
    这肯定是人工没法完成的,必须写脚本

    py脚本写起来的时候,没有用过eval函数,是真的痛苦,不断字符串处理,条件判断…

    最后还不对,最后看了别人的博客后发现代码即为简短…主要就是eval函数

    import requests
    import re
    url = '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)
    post = {
         'value': result}
    print(s.post(url, data = post).text)
    

    这道题主要考查的就是脚本的编写,很多时候其实都会遇到要编写脚本

    urllib,requests,re…这些模块都很常用到需要好好熟悉

  2. 速度要快
    3
    题目没给什么信息,查看源码有个提示,但也不懂它在说什么
    4
    这时候抓包看下,神奇的发现了flag…
    5
    这时候base64解码看下
    6
    把得到的值拿去提交发现不对…

    这时候用repeater多go几次发现flag在变…

    现在在根据它前面源码的提示来看,应该是要我们在短时间把得到的flag已post形式传过去

    这时候写个脚本就好了

    最开始用urllib死活不行,后面想了想应该是cookie的问题,然后查了下怎么使用返回的cookie…还是requests方便…

    然后要base64解两遍这个也是坑不参考别人的做法就基本卡死在这里了,毕竟加解密这一块不是特别理解
    7

    import base64
    import http.cookiejar
    from urllib import request,parse
    
    url = 'http://123.206.87.240:8002/web6/'
    
    cjar=http.cookiejar.CookieJar()
    cookie=request.HTTPCookieProcessor(cjar)
    opener=request.build_opener(cookie)
    request.install_opener(opener)
    
    res = request.urlopen(url)
    
    flag = res.headers.get('flag')
    value = (base64.b64decode((base64.b64decode(flag.encode('utf
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值