Bugku CTF-web19 速度要快

本文详细介绍了如何解决BugkuCTF中web19挑战的问题。通过分析页面源码,发现需要POST传递margin参数,并从HTTP头部的flag字段获取Base64编码的字符串。经过两次解码,发现flag值会随访问变化。利用Python编写脚本,通过session保持会话并动态获取并解码flag,最终成功获取到Flag值。
摘要由CSDN通过智能技术生成

Bugku CTF-web19 速度要快


解题

在这里插入图片描述
打开url显示;
在这里插入图片描述
没什么有用信息,打开源码看一下;
在这里插入图片描述

注释信息提示,需要post传一个margin值。

首先抓包,发现head里面有flag字段,明显是一个base64;

在这里插入图片描述

用在线工具解码;
在这里插入图片描述
输入字符串报错,说明并没有这么容易就拿到了flag值,看着这字符串好像还是base64编码过,再一次解码得;
在这里插入图片描述
尝试过发现又不是真正值flag值,看了大佬的文章,说需要用python跑,得知每次访问URL,显示的flag值都会变,可以用抓包工具去验证,如下:

第一次抓包;
在这里插入图片描述
第二次抓包;
在这里插入图片描述
编写python脚本;

import requests
import base64
url="http://114.67.246.176:10354/"
r=requests.session()
headers=r.get(url).headers#因为flag在消息头里
mid=base64.b64decode(headers['flag'])
mid=mid.decode()# byte型转str型,为了下一步用split不报错,b64decode后操作的对象是byte类型的字符串,而split函数要用str类型的
flag = base64.b64decode(mid.split(':')[1])#获得flag:后的值
data={'margin':flag}
print (r.post(url,data).text)#post方法传上去

执行语句;
在这里插入图片描述

运行完得到flag值。

参考文章:

速度要快(Bugku)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值