CISCN2022 初赛WP
咕了有点久了,来发一下
CISCN2022初赛WP
一、 战队信息
战队名称:flag虽不能至,然心向往之
战队排名:第130名
Crypto
签到电台
根据题目的提示从公众号获取两个hint:
在“标准电码表”找“弼时安全到达了”所对应的7个电码,再跟“密码本”的前7*4个数字分别逐位进行“模十算法”(加不进位、减不借位),所得到的就是要发送的电码。发送电码前先发送“s”启动,即按3个“.”,这个发送电报的过程可以使用抓包软件进行抓取,可方便输入电报。
“弼时安全到达了”所对应的7个电码:1732 2514 1344 0356 0451 6671
0055。模十算法示例:1732与6378得到7000,发包示例:/send?msg=s
然后访问/secret看到密码,取前28个做模10运算,再用hint2的发包方式发送得到flag。
基于挑战码的双向认证
这题给了 ssh,有权限就想着先连一下,连上去之后试试
find / | grep "flag.txt"找到一个类似
flag的东西,但是不是
flag,此时又看到两个题目是连 ...
Educational Coeforces Round 129(Div.2)题解
这波 div2 上大分,写波题解。
实况录屏在这
A. Game with Cards
题目描述
题目分析
题目的意思就是说,Alice 和 Bob 分别有
n,m
张牌,然后每次出牌不能小于等于上一次的出牌,如果到自己的回合却不能出牌则判负,问如果两人分别先手,谁会赢?这个稍微想一下就能发现我一开始出最大的一定是最优的策略,比的就是最大值谁最大,假设相等那我肯定出最大的那个我必赢,所以无脑比最大就是这题的思路,如果相等那么谁先手谁赢,所以这里就分三种情况:
max1>max2:Alice必赢
max1<max2:Bob必赢
max1==max2:谁先手谁赢
标程
12345678910111213141516171819202122232425262728293031323334353637383940#include<bits/stdc++.h>#define maxn 200005using namespace std;int a[maxn];char s[maxn];void solve(){ in ...
KCTF2022春季赛 第六题 writeup
KCTF2022春季赛 第六题 writeup
这题,BROP提示给的很明显,所以就是盲打,不管怎么说先问(bao)候(da)一下出题人。
首先我们一开始什么都不知道,就先确定一下一些基本信息,那么就先测试一下缓冲区的长度,最后发现缓冲区长度为0x10。
我们先执行一遍正常流程,大概就是:
输出一句话
输入
输出一句话
当存在栈溢出的时候,最后一句话输出不出来,因此可以断定,溢出是发生在自己定义的函数的。大概写一下伪代码:
12345678910#include<stdio.h>void func(){ char buf[16]; gets(buf);}int main(){ puts("hacker, TNT!"); func(); puts("TNT TNT!");}
当然,输出第一句话的语句可能也在 func
里面,但是不影响,我们先爆破第一个字节
123456789101112131415from pwn import * ...
Codeforces Round 788(Div.2)题解
Codeforces Round #788
(Div. 2)题解。
实况在这里
A. Prof. Slim
题目描述:
题目分析
给你一个序列,一次操作会使序列中的两个数交换符号但不交换大小,问能否在若干次操作后使得序列不递减。容易得到负数的个数一定不变并且负数永远小于正数,因此最后的结果一定是负数全在前面,正数全在后面,因为一个位置的数的绝对值一定不会改变,所以可以得到在绝对值中,负数区域一定不递增,正数区域一定不递减。先
O(n) 统计所有的负数的个数,再判断就ok了。
标程
12345678910111213141516171819202122232425262728293031323334353637383940414243#include<bits/stdc++.h>#define maxn 200005#define maxx 40005//#define int long long#define OK {puts("YES");}#define NO {puts("NO&qu ...
Codeforces Round 787(Div.3)题解
Codeforces Round #787
(Div. 3) 题解来了。
实况在这里
A. Food for Animals
题目描述
题目分析
给你猫粮,狗粮和猫和狗都能吃的粮的个数,再给你猫狗的个数,问能否使得猫狗都有一份粮食能吃。这里我操之过急,导致WA了一发,血亏。就是说你可以先判断狗粮是否够,如果不够则通用粮食减去剩余的数目,然后在判断通用粮食和猫粮是否大于等于猫的个数就行了,但是非常要注意,通用粮食的个数不能出现负数,因为这里没判断wa了一发,很难。
标程
12345678910111213141516171819202122232425262728293031323334353637383940#include<bits/stdc++.h>#define maxn 200005#define maxx 40005//#define int long long#define OK {puts("YES");}#define NO {puts("NO");return;& ...
sql注入总结
sql学了也有一段时间了,想着把能用到的知识点都写一遍好。
WEB框架
web应用一改我们平时常见的 p2p 和
C/S 模式,采用 B/S
模式。随着网络技术的发展,特别随着Web技术的不断成熟,B/S
这种软件体系结构出现了。浏览器-服务器(Browser/Server)结构,简称
B/S 结构,与
C/S不同,其客户端不需要安装专门的软件,只需要浏览器即可,浏览器与Web服务器交互,Web服务器与后端数据库进行交互,可以方便地在不同平台下工作。
比如我们玩的英雄联盟就是典型的 C/S
结构的服务,因为有大量图片资源和 3D
模型存储在本地,因此提前安装好客户端就可以方便地与服务器进行交互,如果采用
B/S
结构的话,在我们游戏开始的时候就要与服务器建立连接,下载好各种资源到本地,然后再与服务器进行交互,各种页游均是
B/S 结构。B/S
的优势就是对需要服务一方的电脑要求较低,很容易可以兼容系统上的差异,客户往往只需要安装浏览器便可以享受全部的
web 服务。web
应用会先向我们的浏览器发送前端语言 javascript 或者
html
...
Codeforces Round 786(Div.3)
Codeforces Round #786
(Div. 3)题解来了
实时录频在这里
A. Number Transformation
题目描述
题目分析
就是说让你找到两个数 \(a,b\),使得
\(x\times a^b=y\) 这里可以使得 \(b=1\) 然后就判断一下 \(y\ mod\ x=0\) 是否成立即可。
标程
12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>#define maxn 200005#define maxx 40005#define int long long#define OK {puts("YES");}#define NO {puts("NO");}using namespace std; void solve(){ int x,y; cin>>x>>y; if(y%x==0 ...
网鼎杯 2020 青龙组AreUSerialz writeup
做到一道题,写下 write up
源码分析
本题给了源码。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op; protected $filename; protected $content; function __construct() { $op = "1"; $filename = "/tmp/tmpfile"; $content = "Hello World!"; $ ...
Fermat-Theory
小学一波数论
费马小定理
若 \(p\) 为素数,\(\gcd(a, p) = 1\),则 \(a^{p - 1} \equiv 1 \pmod{p}\)。
另一个形式:对于任意整数 \(a\),有
\(a^p \equiv a \pmod{p}\)。
证明
设一个质数为 \(p\),我们取一个不为
\(p\) 倍数的数 \(a\)。
构造一个序列:\(A=\{1,2,3\dots,p-1\}\),这个序列有着这样一个性质:
\[
\prod_{i=1}^{n}\space A_i\equiv\prod_{i=1}^{n} (A_i\times a) \pmod p
\]
证明:
\[
\because gcd(A_i,p)=1,gcd(A_i\times a,p)=1
\]
又因为每一个 \(A_i\times a \pmod p\)
都是独一无二的,且 \(A_i\times a \pmod p <
p\)
得证(每一个 \(A_i\times a\)
都对应了一个 \(A_i\))
设 \(f=(p-1)!\), 则 \(f\e ...
html语言的学习
来学学 html (超文本标记语言)。
超文本标记语言)是一种用于创建网页的标准标记语言。
前言
想彻彻底底学一遍 web 安全,先从最基本的
html 开始吧,首先 html
是给浏览器执行的语言,也就是说 html
是在我们本地的,是前端语言,相反 php
就是后端语言了,在服务器执行完得到结果之后以 html
的形式返回给用户,先最基本了解一下 html
有一个清晰的概念。
html语法
html 语法较为松散,以至于你基本见不到因为
html
报的错(这也就更加考验了我们的代码功底,因为写错了某些东西它不会报错的)。html
说到底它就是由标签(有时候也成为"元素")和对应的属性组成的,万种语言都有自己的
hello world,同样我们也先写一个
hello world。
1234567<html> <body> <div> hello world! </div> </body></html>
我们把它放 ...