- 博客(39)
- 收藏
- 关注
原创 SU CTF 2025 web 复现
进来看到有添加链接,尝试file协议读取任意文件,没打成,提示时间戳用md5加密,尝试往这方面思考,黑盒打不走了,看看源码吧。去翻翻其他wp,过程中突然灵光一现,我用的是/2.txt,有没有可能会被解压到根路径下呢,如果用//,尝试,成功!如果解压失败,就不会进入检测,可以构造出一个压缩包,使shell脚本成功解压,其他东西解压失败,弱弱吐槽一句,其实你不过滤这些东西我也不知道咋用啊,到这里就应该是到知识瓶颈了,看看wp吧。试着在压缩包里放马,被弹窗退回了,试着传图片,文件上传失败,打不动了,启动白盒吧。
2025-04-02 16:09:27
1001
原创 python 原型链污染学习
.__globals__来找可以用来执行命令的模块,就是基于这个原理,__init__属性是类中常见的函数,所以可以直接用它来实现访问__globas__变量。引用sys模块下的module属性,这个属性能够加载出来在自运行开始所有已加载的模块,从而我们能够从属性中获取到我们想要污染的目标模块。接下来看merge函数,这个函数实现了对两个字典的递归合并,如果原来已有的键值对会被覆盖,新的键值对会被加进去,举个例子。其实很像SSTI,这个全局变量可以从任何已知函数的方法访问,比如我们常用的._
2025-03-30 22:12:48
648
原创 PwnMe CTF 2025 web
其实题目难点是在于黑盒,比赛环境中看不懂编码函数,所以wp里花了大量的心思来推理出编码函数,虽然我有crypto基础,但是这样的工作对目前来说还是天方夜谭,于是直接跳过这一步。看profile路由,username这里实际上并没有任何过滤,所以可以借此进行路径穿越,穿越到哪去呢,看下一行,显然只能是html页面。在id可以使用sql注入,接下来又到了烦人的写脚本时间,我自己写的脚本不对,给个wp的脚本吧。当我们向h中添加原本不存在的字符,如B时,报500,解码错误,基于以上事实,我们可以得到两个结论。
2025-03-29 17:21:30
699
原创 N1 CTF 2025 web 复现
在Linux里安装依赖遇到报错时,其实根本没必要到此ai或者搜,大多数时候它会给你解决方案,沉下心看看翻译跟着步骤走就解决了,包括脚本一定要在Linux环境里运行,window会报错,我用的是wsl,在window下开powshell后输wsl就可以了。看到这里调用了两次innerHTML进行html渲染,这里学到了一个新东西,html实体编码,即html的一些标签用其他的一些特定符号替换,那么浏览器在识别到这样的编码时,就不会将其当作html代码而渲染,将其还原为原本的惠html编码,举个例子。
2025-03-27 20:19:39
961
原创 TPCTF 2025 web 复现
其实在上一篇文章里有绕过策略,整体思路是采用 style 绕过,测试发现当 style 标签前面跟上一些字符时,style 内部的元素可能会得以保留,故这里采用的是删除策略,把 xss 的 payload 构造好后,把 script 标签插入 content,在第二次 post 的时候删除就行。在views.py中看到拿到flag的逻辑,要求传入username和password,根据传入的数据去查询,如果查询到的密码跟自己设置的密码一样,那就给出flag。复现环境没有bot,试着可以弹窗就说明成功了。
2025-03-22 22:39:59
987
原创 NewStar CTF web wp
后来突然想通了哪里出的问题,我们在浏览器是用了一个代理,这个代理设置了一个监听地址,而这个地址一定不能是题目的地址,因为当我们发包时就相当于把题目的数据发到代理设置的这个地址,如果你的 Burp 监听 了 10.147.42.151:19830,但你请求的目标也是 10.147.42.151:19830,造成了 Burp 代理自身的死循环。还是不对,看了看wp,思路就是这个,不信邪又用工具跑了一次,还是不对,那这个工具可能是有点问题,也有可能是要文件的MD5值,我是直接ctrl+a去计算的url编码。
2025-03-18 21:33:46
1033
原创 从0开始学习搭网站
举个例子这些都是URL,你可以将它理解为网页的地址,它由以下几个部分组成web 服务器一词可以代指硬件或软件,或者是它们协同工作的整体。硬件部分,web 服务器是一台存储了 web 服务器软件以及网站的组成文件(比如,HTML 文档、图片、CSS 样式表和 JavaScript 文件)的计算机。它接入到互联网并且支持与其他连接到互联网的设备进行物理数据的交互。软件部分,web 服务器包括控制网络用户如何访问托管文件的几个部分,至少是一台 HTTP 服务器。
2025-03-16 19:23:54
1003
原创 ctf web入门知识合集
协议头://内容.user.ini在配置文件使用auto_apppend_file=1.txt使所有文件包含1.txt,执行里面的php代码任意找一个php文件,利用1.txt里的一句话木马执行php代码即可sql是一门语言,进行数据的增删改查CURD:create(增),update(改),read(查),delete(删除)数据库是一个用于存储、管理和检索数据的系统,它将数据按照特定的结构进行组织,方便高效地访问。
2025-03-16 19:17:46
1398
原创 Aliyun CTF 2025 web 复现
好了,现在你已经清楚了,有这样一个函数,只允许白名单上的东西执行。接下来学到一种思路和手法,既然是输入账号密码,那就尝试sql注入,通过sleep函数的差异来测试数据库,但是在这里就卡住了,在哪里测试?实际上这里在首页源码里可以看到web,web的一个账号密码,但是这个账号权限不够,不能执行sql写命令,接下来尝试一下弱密码,用root,root成功登录,拿到权限。随后配置防火墙,添加入站规则,允许两个端口的流量进来,到这里应该是都配置好了,但是还页面还是不能正常显示,猜测赛后环境已关闭。
2025-03-12 22:26:01
1022
原创 操作系统学习笔记-进程&调度篇
定义进程是程序在计算机中的一次运行实例,是操作系统进行资源分配的基本单位。每个进程都有独立的内存空间数据代码和系统资源(如文件、网络连接等)。进程之间相互独立,一个进程的崩溃不会影响其他进程。定义线程是进程内的执行单元,是操作系统进行CPU 调度的基本单位。一个进程可以包含多个线程,它们共享相同的内存空间和系统资源。线程之间相互协作,能提高程序执行效率。进程是执行的载体,作业是任务的逻辑单元。进程调度关注微观的CPU时间分配,作业调度关注宏观的任务队列管理。
2025-03-12 19:45:41
997
原创 2025 N1CTF crypto 复现
经典RSA,唯一的额外信息在gift,测一下发现r是90bit,gift在移位是273+750位,也就是1024位左右,也就是说等式两边可以画一个约等于符号,通过在实数域上的近似计算,可以恢复p的高位。
2025-02-16 22:20:25
412
原创 数据库学习记录
什么是 SQL?是一种用于管理和操作关系型数据库(由多张表组成,不同的表之间存在关系)的标准编程语言。它的主要功能是对数据库中的数据进行查询、插入、更新和删除等操作,同时可以创建和管理数据库结构。SQL 被广泛应用于各种数据库系统中,如等。SQL 的用途创建和管理数据库结构创建表、视图、索引等结构,语法由列名称和数据类型组成:CREATE TABLE users (数据操作(CRUD)INSERT(插入):向数据库中插入新数据。在指定列中插入数据。
2025-01-22 11:38:06
1161
原创 2025-1-21 SUCTF 2025 crypto signin
这道题是一道基于BLS12-381的题目,对ECC完全不熟悉,与其说是复现不如说是对鸡块博客的解析。关于ECC的配对我专门写了一篇文章来说明。
2025-01-21 23:07:19
1014
原创 椭圆曲线ECC双线性配对
ECC(椭圆曲线密码学)中的双线性配对(Bilinear Pairing)是一种重要的数学工具,常用于现代密码学中的多种应用,如身份基加密(IBE)、匿名协议、签名方案等。的元素,( a, b ) 是标量,( e ) 是双线性配对函数。简单来说,双线性配对会保留标量乘法的结构。配对应该是高效可计算的,能够在实际应用中快速进行计算。这个性质对于实际应用的密码协议至关重要。换句话说,配对值不能总是1,除非输入的群元素具有特定的关系。需要满足非退化性,即如果。
2025-01-21 15:49:13
925
原创 2025春秋杯冬季赛 day1 crypto
打开文件,发现与上一题很相似,试着用md5在线网站解第一行内容,解出的结果为1,且类型为sha1,那么目标就很明确了,每一行进行一次hash爆破。展开式可以类比二进制的展开式,我将它称为字节进制的展开式,即以字节为单位进行计算,这也是bytes_to_long函数的计算原理。打的时候是把前面基本都推出来了,但是没想到copper还能用于位数不大的e的求解,这道题e只有128位,因此可以用copper。根据提示推断是哈希函数,ai一下,推测大概率是一个sha1,让ai写一个爆破脚本即可。
2025-01-18 23:30:08
598
原创 新生ctf入门指导
一般来说,两种路线都会慢慢的卡住,当你接触到的东西逐渐都有了一定的难度,并且能在国内一些正常ctf做出签到题,就说明你已经成功入门了。如果你能力足够强,直接开刷buuoj,如果你觉得难度太高,也可以去刷一场新生赛再回来练习。
2025-01-15 11:27:50
448
原创 python 爬虫学习
findall函数负责筛选出所有的p元素,而attrs则是通过键值对进一步筛选,通过筛选就可以爬取大部分的信息了,学爬虫本意是想免费看片,但是爬取视频部分没搞会,干脆先放一放,哪天想起来了再深造。若访问成功,状态码为200,访问失败,则查询状态码,http和https的状态码是一样的。可以采取伪造请求头的方式绕过,右键检查元素,随便找个user-agent。
2025-01-13 16:59:29
1399
1
原创 计算机网络速成
将信息打包后在各个结点直接依次传输路由器连不同网段,交换机处理同一网段内的交换信息即通过目标的ip地址找到mac地址,从而找到转发结点网络分层的目的是将复杂的网络通信过程分解成若干个可管理、可维护、可优化的模块,每个层次专注于解决特定的网络问题。分层不仅提高了网络协议的灵活性和可扩展性,还增强了故障排查和协议互操作性的能力。每一层解决不同的问题,从物理层的比特传输到应用层的用户需求,每一层都发挥着至关重要的作用。
2025-01-13 11:37:53
938
原创 RSA dp泄露及其变式
关于dp可以做一个模p的coppersmith,而n是p的倍数,所以可以对dp已知位和n做一个coppersmith得到dp。这一部分用到一些构造格的知识,不太懂,直接去看la佬的博客吧。先复习一下dp的推理过程。
2025-01-11 12:12:24
679
5
原创 极客大挑战 2024 部分crypto wp
分析一下,flag的长度是44byte,而1byte==8bit,所以flag的长度约为352位,pxor是flag左移400位与p异或的结果,但是异或过程中flag除了它自己的那352位,其他位都是0,0与p异或得到p本身,所以问题就清楚了,我们可以求出p的高位和低位,进而求解p。值得一提的是,在这里使用Pycharm报错数字过大转换不了,而使用sagemath则不会有这样的问题。分析题目,明文m已知高位求低位,h,m和n相差过大,所以由h算出的m就是它的原始结果。这道题做的想骂人,题解借用官方wp。
2025-01-08 23:03:20
410
原创 MoeCTF 2024 crypto 合集
前言:写这篇文章时也是诚惶诚恐,总觉得一些简单题写的太草率,没有讲清楚,如果大家有什么疑问直接发评论区即可,我看到后会及时回复目录week1Signinez_hashBig and smallbaby_equationweek2大白兔More_secure_RSAezlegendrenew_systemRSA_revengeweek3One more biteEzMatrixezpackweek4ezLCGbabe_Liftinghidden-polyweek1Signin解题之前,你首先需要了
2025-01-05 21:53:41
1035
原创 NewStar CTF 2024 crypto 合集
简单说一下这道题的加密流程,将明文添加到key的后面,形成新key,再根据新key和明文查表得到密文,问题在于,如果能知道原来的key,那么一切都能倒推回去,如果不知道呢?在这里可以看到,其实CBC和ECB唯一的区别,就是CBC将上一次加密的密文跟这一次的明文做一个异或操作,然后在进行ECB,所以题目给出的decrypt,其实是刚刚进行完异或,而并没有进行ECB的过程,所以依据这一点,将每一步的decrypt与前一步的密文异或就可以得到flag。
2025-01-05 21:26:17
1068
原创 密码学复习
同位,遵循三个规则进行加密(简单理解就是有对角线看对角线,没对角线整体向右下偏移),明文分组时用X填充,同样存在词频分析的问题,同时密钥不能过短,否则某一段相同的明文恰好遇上密钥,产生相同的密文,密钥就会被推断出来,这个问题在替换密码中都存在。,即一张没有任何规律的表,但是满足明密文之间一一对应的关系,从而使密钥空间提升到26!每一个密钥字母都对应了一张表,因此在破解密文时,每一个字母都要猜测26种可能,并不存在固定的明密文间一一对应的关系。,但是密钥空间太小,无法保证密码的安全性,于是产生了。
2025-01-05 17:45:26
1428
原创 数字电路期末复习
前言:*写的东西不太全面,更多的是一个,让你发现自己有哪些不懂的问题(不懂的地方就去翻书或者问AI),如果能够解决提出的所有问题,那么过期末考一定不是问题。
2025-01-03 00:09:32
528
原创 密码学课程实验作业
前言:这学期选了个密码学的课,留了三个作业,但是因为拖延症一直到期末了才开始动手,又觉得太麻烦懒得自己做,去咸鱼上一问其中一个都要我500块,是真敢抢啊,干脆自己动手。三个实验都是用python写的(其实用c会更简单一点,用python在控制台编程和读写文件的形式方向花了很多时间)
2024-12-30 22:11:43
636
原创 2024 十二月长城杯crypto rsand
这里因为用到了math库,在用pow的过程就会出现一些问题,嫌慢的话直接新开一个脚本用p,q解就行,接下来是enc2。因为第一个脚本是在sage里解的,所以脚本分成了两个部分。分为两个part,先看enc1。
2024-12-15 21:41:21
236
原创 python处理国家五级行政区数据(用于搭建树)
1:处理第一级到第二级的数据(因为只有32个省,所以就手动改一下路径名称提取),先运行注释部分,提出每个省的txt数据,再运行其他部分,生成市的txt,省的直属下级,并将打印出的市列表替换到第二个脚本中的相应位置。刚开始拿到的数据是这样的,含有全国五级行政分区的所有数据,而我们在搭建树时,如果分离出这样的一些txt,某个结点的txt里只包含它的下一级结点的信息,在构建树时是不是会容易很多。如果没有特殊需求,直接使用这样的数据就可以,接下来附上初始数据和处理后的数据。话不多说,先看初始数据和最终处理效果。
2024-12-05 09:51:23
398
原创 Coppersmith算法学习记录
该函数是一个用于在整数模下搜索多项式小根的函数。该函数使用NTL库中的算法进行实现,并提供了一些参数来控制搜索的精度和效率。其中,1、参数。
2024-11-26 19:47:29
1475
1
原创 ctfshow单身杯Crypto部分做题记录
打开脚本,只有一个m,long_to_bytes(m),得到n,c的十六进制,在这里发现一个细节,直接使用int(n)就可以把n转为十进制,加不加16都可以接着根据提示,爆破d,得到flag。
2024-11-15 18:48:17
881
原创 sagemath使用from Crypto.Util.number import *时报错No module name Crypto解决方案
文件目录如下:SageMath 9.3\runtime\opt\sagemath-9.3\local\lib\python3.7\site-packages。给到启发,sagemath应该也是同样的原因导致,所以只需要找到sagemath存储库函数的位置,将crypto改为Crypto即可。注意在这一步一定要按上面给出的路径来,因为sagemath有很多名字相似的文件。在网上找了一些解决方案,有一篇博客写到python报类似错误的解决方案,如下。
2024-11-11 17:25:23
452
1
原创 同时使用sagemath函数和python库函数
笔者遇到一次ECC加密的脚本,而脚本里使用了 E = EllipticCurve(Zmod(p),[a,b])生成椭圆曲线的函数,一搜才发现这是sagemath软件的一个函数,但是自己写的脚本里用到了python函数,所以需要在使用jupyter notebook(我的理解是sagemath的工作环境,类似于python的pycharm)的同时导入python库函数。作为一个小白,在这一步上找了无数教程,路过的UU们点点关注。
2024-10-30 19:51:50
621
原创 数制和码制
D/10:十进制(Decimal)O/8:八进制(Octal)B/2:二进制(Binary)H/16:十六进制(Hexdecimal)
2024-09-08 11:39:39
1095
原创 ctf十六进制下修改图片高度和宽度
8403开头的地方是宽度,9600开头的地方是高度,以ctfshow的misc入门23举例,将96改为EE得到flag(bmp图片没找到计算高宽的脚本,题主自己也是菜鸡不会,有不对的地方欢迎各位大佬指正)(本人是刚入门的小菜鸡,在这方面找了很多资源才勉强弄清楚,记录一下以后忘了方便找,有说的不对的地方欢迎各位大佬指正)第二行前四位是宽度(直接改0384就行),后四位是高度(直接改0096就行)与png图片类似,高度和宽度在第二行,不过区别是需要空两位数字开始数。
2024-09-07 21:46:14
2371
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人