题解ciscn 2019

LVJR2 赛后题解

赛后补题请到 洛谷比赛。 A 考虑分类讨论。显然当 $a=0,b=0$ 时,答案等于 $0$。 当 $a=0$ 或 $b=0$ 时,直接将等于 $0$ 的数乘以一个很大的数字,将不等于零的数除以一个很大的数字,答案为 $v$。 当 $a,b$ 均不为 $0$ 时,可以选择先将一个数字减到 $0$,或 ......
题解 LVJR2 LVJR

WEB|[BSidesCF 2019]Futurella

页面英文提示:阻止外星人!我们在垃圾箱里发现了这张纸条。我们认为它来自入侵的外星人!你能读一下吗? 使用翻译可以翻译部份内容,也没发现什么规律 查看源码发现flag flag{ddc88d97-0505-4a91-b442-e7bd74b02358} 最后还发现,直接将所有内容复制到其他地方会看到原 ......
Futurella BSidesCF 2019 WEB

WEB|[BSidesCF 2019]Kookie

页面提示需要以admin身份登录,并且给出了cookie的密码,看到这里应该是越权漏洞 登录cookie帐户抓包 看到数据包中有Cookie: username=cookie,尝试更改username=admin重新发包 登录成功,获得flag flag{febe78bb-526f-4c90-8b2 ......
BSidesCF Kookie 2019 WEB

WEB|[CISCN2019 华北赛区 Day1 Web1]Dropbox

注册帐号登录 存在文件上传点,抓包上传文件,修改Content-Type后可以上传代码文件,但是后缀会变为图片后缀 上传文件后有文件下载功能 抓包发现filename直接曝露在内容中,试试下载其他文件,发现存在任意文件下载漏洞 将已知文件都下载下来 文件源码 login.php <?php sess ......
赛区 Dropbox CISCN 2019 Day1

WEB|[CISCN2019 华北赛区 Day1 Web2]ikun

访问页面注册帐户登录,提示要买到lv6,翻了好几页发现没得lv6的商品,写个脚本跑看看lv6商品在第几页 import requests i = 0 while True: i += 1 url = 'http://40902fee-e0e5-4d7a-8b38-b16b5f97549b.node4 ......
赛区 CISCN 2019 Day1 Web2

WEB|[CISCN2019 华北赛区 Day1 Web5]CyberPunk

看到有登录框想到可能存在注入,但是对每个页面都测试了并没有结果,看有提交订单页面和查询订单页面猜测可能会有二次注入,但是没有源码不好测试,然后查看网页源码也没发现什么 看了下别人的wp,源码最后有提示<!--?file=?-->,可能存在文件包含,这个确实没有想到 </body> </html> < ......
赛区 CyberPunk CISCN 2019 Day1

WEB|[CISCN2019 总决赛 Day2 Web1]Easyweb

有登录框可能有注入,查看源码有一个图片链接id直接曝露出来也了可能有注入 查看robots.txt文件,提示有备份文件,尝试已知php文件,得到image.php.bak备份文件 image.php源码 <?php include "config.php"; $id=isset($_GET["id" ......
总决赛 Easyweb CISCN 2019 Day2

WEB|[CSCCTF 2019 Qual]FlaskLight

查看网页源码提示GET方式传入search,结合网页内容显示有搜索内容和搜索结果处,应该是搜索内容然后显示,因为题目提示是flask想到flask模版的ssti 测试是否存在ssti {{5*4} 返回40说明存在ssti 解法一:基于config的payload 测试config,回显成功,说明没 ......
FlaskLight CSCCTF 2019 Qual WEB

WEB|[FBCTF2019]RCEService

页面提示输入json格式的命令 {"cmd": "ls"} 输入ls命令查看当前目录文件,当前目录仅有index.php文件 读取index.php文件,发现被检测到 {"cmd": "cat ./index.php"} 经过测试发现很多命令和符号都被过滤,自己是没有做出来,在看别人的wp时发现他们 ......
RCEService FBCTF 2019 WEB

WEB|[GWCTF 2019]枯燥的抽奖

页面提示需要输入以lw1ar7AWmn开头的20位字符串才能获得flag,查看页面源码发现check.php 访问check.php,发现源码 伪随机数 mt_srand($_SESSION['seed']); $str_long1 = "abcdefghijklmnopqrstuvwxyz0123 ......
GWCTF 2019 WEB

WEB|[极客大挑战 2019]FinalSQL

提示点击获取flag,依次点击可以发现注入点应该是在id,id=5提示试试id=6 id=6也没有什么特殊内容,对id进行了简单测试,发现存在过滤,fuzz一下,发现对if、and、空格和()等部分符号进行了过滤 过滤字符可使用其他字符绕过,页面存在盲注入,存在非法字符提示“你可别被我逮住了,臭弟弟 ......
FinalSQL 2019 WEB

WEB|[极客大挑战 2019]RCE ME

<?php error_reporting(0); if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long."); } if(preg_match("/[A-Za-z0-9] ......
2019 WEB RCE ME

WEB|[NCTF2019]True XML cookbook

题目提示XML,直接抓包注入XML <?xml version="1.0" ?> <!DOCTYPE lkj [ <!ENTITY admin SYSTEM "file:///flag"> ]> <user> <username>&admin;</username> <password>1</pas ......
cookbook NCTF 2019 True WEB

WEB|[SUCTF 2019]Pythonginx

源码 @app.route('/getUrl', methods=['GET', 'POST']) def getUrl(): url = request.args.get("url") host = parse.urlparse(url).hostname if host == 'suctf.cc ......
Pythonginx SUCTF 2019 WEB

WEB|[De1CTF 2019]SSRF Me

页面代码为python代码,题目提示为SSRF,并且flag is in ./flag.txt 格式化代码 #! /usr/bin/env python # #encoding=utf-8 from flask import Flask from flask import request impor ......
De1CTF 1CTF 2019 SSRF WEB

Crypto|[NCTF2019]babyRSA

task.py from Crypto.Util.number import * from flag import flag def nextPrime(n): n += 2 if n & 1 else 1 while not isPrime(n): n += 2 return n p = getP ......
babyRSA Crypto 2019 NCTF

Crypto|[GWCTF 2019]BabyRSA

encrypt.py import hashlib import sympy from Crypto.Util.number import * flag = 'GWHT{******}' secret = '******' assert(len(flag) == 38) half = len(fla ......
BabyRSA Crypto GWCTF 2019

Web|[watevrCTF-2019]Cookie Store

需要购买flag cookie即可得到flag,但是金额不足,使用burp suite抓包 Cookie: session=eyJtb25leSI6IDUwLCAiaGlzdG9yeSI6IFtdfQ== 看到cookie像是base64编码后的数据,解码查看 {"money": 50, "hist ......
watevrCTF Cookie Store 2019 Web

Web|Buuctf [NCTF2019]SQLi

直接给出了查询语句 select * from users where username='' and passwd='' 构造语句查询,发现有过滤 fuzz一下,很多参数都被过滤 robots协议下发现hint.txt文件 hint.txt文件,有被过滤的参数,但是没有过滤"、|和\,并且提示只要 ......
Buuctf 2019 NCTF SQLi Web

Reverse|[GXYCTF2019]luck_guy

ida64打开文件,搜索字符串 进入please input a lucky number伪代码 输入数字进入patch_me(v4);,输入数字为偶数进入get_flag()函数 unsigned __int64 get_flag() { unsigned int v0; // eax char ......
luck_guy Reverse GXYCTF 2019 luck

Reverse|[GWCTF 2019]pyre

pyc文件反编译 uncompyle6 -o pcat.py attachment.pyc pcat.py # uncompyle6 version 3.8.0 # Python bytecode 2.7 (62211) # Decompiled from: Python 3.10.6 (main, ......
Reverse GWCTF 2019 pyre

[Luogu-P1008]题解(C++)

Part I Preface 原题目(Luogu) Part II Sketch 求出若干组排列 $a,b,c$,使得 $a:b:c = 1:2:3$。 Part III Analysis 暴力 $9$ 层循环即可。 Part IV Code #include <iostream> using na ......
题解 Luogu-P Luogu 1008

[Luogu-P1007]题解(C++)

Part I Preface 原题目(Luogu) Part II Sketch 给定一个正整数 $L$,表示独木桥长度。 给定一个正整数 $N$,表示桥上士兵的数量。 给定 $N$ 个整数,分别表示每个士兵的坐标。 规定走到 $0$ 坐标或 $L+1$ 的位置为下桥,两个士兵相遇时不能走过去,他们 ......
题解 Luogu-P Luogu 1007

[Luogu-P1003]题解(C++)

Part I Preface 原题目(Luogu) Part II Sketch 给定一个正整数 $n$,表示地毯张数。 接下来 $n$ 行,每行 $4$ 个整数,$a,b,g,k$,分别表示一个地毯的左下角和右上角的坐标。 最后一行,$x,y$,表示查询的点。 求出这个点上面覆盖的最上面的地毯编号 ......
题解 Luogu-P Luogu 1003

[AtCoder-AT_ABC108_B]题解(C++)

Part I Preface 原题目(Luogu) 原题目(AtCoder) Part II Sketch Part III Analysis 观察这道题,我们很容易想到,必须推导出 $x1, y1, x2, y2$ 与 $x3, y3, x4, y4$ 之间的关系。 我们观察下图。 可以发现: $ ......
题解 AtCoder-AT_ABC AtCoder ABC 108

[CodeForces-1104A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(CodeForces) Part II Sketch 给定一个整数 $n$。 将 $n$ 拆分成一个数列 $a_1,a_2,a_3,\dots,a_m$。 使得 $\sum\limits_{k = 1}^{m}a_k = n$,每个 $a_ ......
题解 CodeForces 1104

[CodeForces-143A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(CodeForces) Part II Sketch 设有一个 $2 \times 2$ 的棋盘,上面可以填入 $1-9$ 的数字。 给出 $6$ 个数字,为每行每列以及每个对角线上的数字之和,求相应的摆放方式,无解输出 $-1$。 Par ......
题解 CodeForces 143

[HDCTF2019]Maze 1

#查壳 ##有壳,脱了 ###进入IDA: ####会发现我们看不了伪代码,那么看看爆在哪了: ####这有标红的,那么把这里改了(IDA改的有点麻烦,建议用OD贼快)这里注意哦,报错点上边还有一个jnz跳转指令,这个是指向报错点的,那么要不要改呢?小小的期待一下: ####接下来演示怎么改,这里注 ......
HDCTF 2019 Maze

【模板】堆 题解

题目传送门 一道小根堆模板题。 在做这道题之前,我们先介绍一下小根堆是什么。 我们定义小根堆是一种对于任何一个父结点的权值总是小于或等于子节点权值的完全二叉树。因此,不难看出,一个小根堆的堆顶(这棵树的根节点)应该是这个堆(树)中权值最小的结点。 简单介绍完了小根堆,我们再介绍下如何存储。 存储 我 ......
题解 模板

【ABC298C】题解

思路 一道很好的复习数据结构的题。 对于第 $1$ 个问答(既第 $2$ 种操作),我用一个小根堆(优先队列,$\text{priority_queue}$)来储存第 $i$ 个盒子的卡牌。 对于第 $2$ 个问答(既第 $3$ 种操作),我用一个 $\text{set}$ 来储存编号为 $i$ 个 ......
题解 298C ABC 298