ctf题库--天下武功唯快不破

<题目>
看看响应头
格式:CTF{ }
解题链接: http://ctf5.shiyanbar.com/web/10/10.php
<解答>
解题过程式解答:
1.打开拿到的网站链接,出现以下提示信息。
1
2.查看网页源代码,发现以下注释内容:<!-- please post what you find with parameter:key -->
3.根据题目内容,试图将网页链接速度放慢,这里采用burp抓包形式(此时浏览器启动本地代理)。
4.proxy的intercept打成“on”,然后重新载入网页,并将抓到的信息发到repeater中Go一下。发现FLAG,等号后面的值依据经验可判定是base64编码。
4
5.在conventer中(可以找网源或在任意在线解密网站中执行)解密,得到:P0ST_THIS_T0_CH4NGE_FL4G:o0UJpSPMT一段字符串。
5
6.联系刚刚注释中提到的信息(以及刚得到解密后FLAG的提示),在提示信息中有两个尚不明白的点,一是post,二是parameter。
7.因此百科了一下post,了解了post的有关知识,并发现部分在线post网站以及python可实现post脚本。
8.首先是尝试的post在线网站,打哪在线网站速度仍然过慢(对于该题来说),因此最终还是采用py脚本方法来进行尝试。
9.在各网站及论坛简要学习了python如何进行简单的post,并尝试自己编写了一个脚本(为不打乱解题流程,将脚本代码放到最后以供继续学习参考使用)。
PS:经多次调试发现每次所遇到的加密FLAG是不一样的,因此必须要在得到网站flag同时进行解码,之后还要将解码得到的有效信息一并post回网站中。所有流程要在py脚本中一气呵成。
ps
每次得到FLAG值不一样。
代码:

import requests     #若执行报错,请先安装requests(命令行输入:pip install requests)
import base64 

a = requests.get("http://ctf5.shiyanbar.com/web/10/10.php") 
code = a.headers["FLAG"]    #这里FLAG对应刚刚抓包看到的FLAG=....... 
decode = str(base64.b64decode(code))
half = decode.split(":")[1]   #“:”的依据是解码后只要冒号后面的一部分。
flag = requests.post("http://ctf5.shiyanbar.com/web/10/10.php",data={"key":half[:-1]})    #这里要去掉最后面的“'” 号,不然得不到flag。
print (flag.content)

12运行得到flag。
12

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值