Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
攻防世界Web题目WP(二)
本文是《网络安全课程设计》的一项任务 (CTF Part 2)
下文的“难度”指攻防世界的题目星级,最高为10星
easylaravel (难度:10/10)首先使用dirsearch进行目录扫描:
发现了robots.txt,但为空;然后尝试打开/upload目录,需要登录,但前端注释里给了github地址,得到了网站源码。
尝试注册一个普通用户,但并没有upload功能,于是开始寻找admin账号的获取方式。在登录界面发现重置密码功能,只需要输入邮箱地址:
于是开始寻找管理员邮箱。直接在源码里检索“admin@”,在/easy_laravel/app/Http/Middleware/AdminMiddleware.php文件里发现了管理员邮箱:
1234567public function handle($request, Closure $next) { if ($this->auth->user()->email !== '[email protected]') { re ...
Rabin加密体制原理概述
概述Rabin 密码系统是第一个非对称密码系统,由Michael Oser Rabin于1979年在论文*Digitalized Signatures and Public-Key Functions as Intractable as Factorization*中发表。可以证明从密文中恢复明文与分解一样困难,它的安全性来源于大整数的因子分解。优点:
Rabin 函数的每个输出都可以由四个可能的输入中的任何一个生成
如果每个输出都是密文,则解密时需要额外的复杂性来识别四个可能的输入中的哪一个是真正的明文
密钥生成算法Rabin密码系统的密钥生成如下:
1. 选择两个不同的大素数 𝑝 和 𝑞 ,并且满足 𝑝≡3 mod 4和 𝑞≡3 mod 4
2. 计算 𝑛 = 𝑝×𝑞.
将 𝑝 和 𝑞 作为私钥,n 作为公钥。
一个消息 M 首先转换为数字 m (m < n, 可逆映射),然后计算. 密文为 c .
消息 m 可以从密文中 c 通过取其平方根模 n 如下。$$\begin{equation}\begin{aligned}&m_{p 1}= ...
Python实现动态验证码(包含GUI)
本项目是《网络安全A》课程的一项附加作业
概述本项目主要分为三个类,也分别代表了本项目的三个主要部分。首先是DynamicVerificationCode类,主要实现生成动态验证码每一帧的PNG图像文件,是本项目的核心;然后是LabelDisplay类,负责将gif文件动态显示在界面中;最后是GUI类,负责将PNG序列合称为gif文件,并基于tkinter构建图形界面。
代码分析下面来分析一下DynamicVerificationCode类的代码。要实现动态验证码,主要实现以下几个功能:生成随机颜色,生成随机字符(包含数字和大小写字母)。生成干扰线段,生成干扰点以及将每一帧合称为gif文件。以上几个功能分别对应以下几个函数:Colorconfusion(), StrInDVC(), LineConfusion(), ArcConfusion(), Create()。
首先是Colorconfusion()函数,因为使用RGB色彩模式,因此只需要生成三个0-255之间的随机数即可,这个函数会被调用生成随机背景颜色和生成随机字体颜色。StrInDVC()函数也很简单,只需要生成数字和 ...
LFSRXOR题解
题目给出了一个Python加密算法,将代码稍作修改如下所示。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import numpy as npfrom pylfsr import LFSRfrom Crypto.Util.number import *import randomimport string# from secret import flagflag = "DASCTF"flag = bytes(flag, encoding = "utf8")def xor(a, b): return str(chr(a ^ b)).encode('latin1')def encode(content, key): tmp = b"" for i in range(len(content)): tmp += xor(c ...
Java语言及网络编程作业
作业一
计算多项式1!+2!+3!…+n!,当多项式之和超过10000时停止,并输出累加之和以及n的值。
1234567891011121314151617181920public class factorial { public static void main(String[] args) { int sum = 0; int n = 1; int next = 0; while (next <= 10000) { sum = sum + fun(n); next = sum + fun(++n); } System.out.printf("累加之和为 %d, 数字 n 为 %d\n", sum, n-1); } public static int fun(int n) { if ( ...
攻防世界Web题目WP(一)
本文是《网络安全课程设计》的一项任务
robots题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
于是应该读取robots.txt里的内容。
直接访问http://111.200.241.244:58484/f1ag_1s_h3re.php得到flag。
Training-WWW-Robots
由题目名称可得知本题与robots协议有关,于是检查该站点有没有robots.txt文件:Disallow:/fl0g.php表示网站禁止蜘蛛访问本目录,于是我们尝试访问http://111.200.241.244:63486/fl0g.php,得到flag。
php_rce由题意得本题应该与ThinkPHP V5远程代码执行漏洞相关。在 ...
CUMTCTF-2021秋季赛部分题解
Webssti经过多次尝试发现request被禁用,于是构造payload直接给不同变量赋值,拼接成最后的file='/flag'命令。这里直接放payload:
12345678910{% set po=dict(po=a,p=a)|join%}{% set a=(()|select|string|list)|attr(po)(24)%}{% set ini=(a,a,dict(init=a)|join,a,a)|join()%}{% set glo=(a,a,dict(globals=a)|join,a,a)|join()%}{% set geti=(a,a,dict(getitem=a)|join,a,a)|join()%}{% set built=(a,a,dict(builtins=a)|join,a,a)|join()%}{% set x=(q|attr(ini)|attr(glo)|attr(geti))(built)% ...