i春秋WEB CTF 3

3 篇文章 0 订阅
2 篇文章 0 订阅

题11:Backdoor,tips:敏感文件泄漏!

解题:题目给出了提示“敏感文件泄漏”,于是用dirb扫一下:

存在git文件,用git_extract导出文件:

导出的文件如下:

查看几个文件内容,发现falg.php.bd049e文件提示flag在文件b4ckdo0r.php中:

访问b4ckdo0r.php,确实存在且提示查看该 文件源码:

 

考虑是否存在.b4ckdo0r.php.swp等文件,尝试后发现存在.b4ckdo0r.php.swo,把它下载下来。

稍解释一下,为什么会存在.b4ckdo0r.php.swp,.b4ckdo0r.php.swo等文件?在linux系统,当我们用vi编辑文件如b4ckdo0r.php时,就会自动生成 .b4ckdo0r.php.swp,此时如有另一用户也用vi打开这一文件就会生成 .b4ckdo0r.php.swo,以此类推可能生成 .b4ckdo0r.php.swn,.b4ckdo0r.php.swm等等文件,如果文件编辑后正常关闭,这些临时生成的文件也会被自动移除,否则就会保存下来。

接下来还原下载下来的文件,vi -r b4ckdo0r.php.swo :

回车,打开的文件显示b4ckdo0r.php原码:

代码是混淆的,通过create_function将$L的内容创建为函数,稍改动输出$L:

运行,用burpsuit测试得

复制出来并稍做整理:

接下来就是代码审计。在下载下来的代码加入一些打印语句,帮助快速理清逻辑并找出漏洞构造payload:

需要在http头加入Accept-Language和Referer,构造Accept-Language: zh-CN,zh;q=0.1,则Referer的值最少要两个参数,且第二个参数格式为"675"+payload+"a3e",因为程序中使用了eval,所以可以考虑使用system函数执行系统操作,但构造的载荷会经过base64_decode,异或,gzuncompress的处理,所以可以把要执行的操作经过逆处理即gzcompress,异或,base64_encode:

先查看一下目录文件,system("ls")处理后得到“TPocyB4WLfrhNv1PZOrQMTREimJn”,把这字符串加下前缀“675”,后缀“a3e”,做为Referer的第二个参数:

把得到的字符串“TPp8VHv2Kv4DTuVN+hCEff8ve2EBCpdlZk33ypDEwMumBIr0uCrKpbiq1Z5+6xyPHma96ydT”,因为这字符串是经过gzcompress,异或,base64_encode处理,所以可以进行base64_decode,异或,gzuncompress解密:

得到该文件列表,其中有this_i5_flag.php,查看该文件 system("cat this_i5_flag.php"):

处理后得到“TPocyB4WLfrhNn0oHmlM/vxKuakGtSv8fSrgTfoQNOWAYDfeUDKW”,把这字符串加下前缀“675”,后缀“a3e”,做为Referer的第二个参数再次请求:

将“TPqE1x3wTNfRNH6te3Qzh2E2MLfnroKRHU8h77uC4l69AI1A1C5NjSLPviCIHgK+0s+hcHS+YrEi092wjmSSQWhmaa0jGw==”解密:

得到this_i5_flag.php的内容包含了flag。

 

 

待续。。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值