- 博客(49)
- 收藏
- 关注
原创 比赛的复现(2024isctf)
在 chacha20中,明文数据会被划分为若干个 64字节的分组,然后通过 chacha20算法计算出对应的 KEY_n(上面演示的矩阵),并让明文分组与 KEY_n相异或,得到对应的密文分组。 对于r, 将r[3],r[7],r[11],r[15]前4位清零(使其小于16),r[4],r[8],r[12]最后两位清零(能够被4整除),完成清零操作后,类按字节倒序排列。 首先将32字节的密钥分成16字节的两组,前16字节称作“r”,后16字节称作“s”,申请两个大小为16的数组r[]和s[]。
2024-12-18 22:30:42
879
原创 2024年龙信
为了获得一致的MD5值,可以在打包前对文件进行预处理(如设置统一的时间戳、权限和属性等),并使用相同的压缩工具和选项进行打包。有些题目的连贯性很强,做出一点就能做出很多了,关于邮箱、密码等的回答,通常要密码进行加密,要注意一些奇怪的字符和代码的阅读,更要注意不要踩坑。用火眼仿真,不要重置密码,有些隐藏的信息就看不到了, 先打开pycharm看看,但是打开它花了好几分钟,好慢啊!主要利用火眼证据分析和雷电app智能分析,对两个软件要比较熟悉,做题时要细心观察,(从总部开始算第一级)[标准格式:10]
2024-10-20 19:56:02
1411
原创 AWD初步学习
AWD比赛中一般准备语言环境,工具、exploit及相关脚本框架。1.脚本环境2.上传该PHP后进行访问,访问后在路径下生成test.php的不死马,使用蚁剑或菜刀,http://文件所在路径./test.php?pass=test连接的密码:test成功之后,ls等简单的命令根本找不到它,只有查看新增文件才能发现它。那么如何处理呢?一定要访问才能连接3.exploit及相关框架。
2024-10-20 19:55:01
1340
原创 kali的学习
NAT(网络地址转换)模式允许虚拟机通过宿主机的网络连接来访问外部网络。在这种模式下,宿主机相当于一个网关,虚拟机通过宿主机进行网络地址转换来访问外部网络。
2024-10-19 15:02:21
1105
原创 ARP欺骗
发送ip分组前通过发送一次ARP请求就能确定MAC地址,而ARP高效运行的关键就是维护每个主机和路由器上的ARP缓存,通过每一次ARP获取的MAC地址作为ip对MAC的映射关系到一个ARP缓存表中,下一次在向这个地址发送数据包时就不再需要发送新的ARP请求,主机A向主机B发送一个ip分组,A的地址为192.168.1.2,B的地址为192.168.1.3,互相不知道对方的MAC地址,C和D是同一链路的其它主机。如果A想获取B的MAC地址,A会通过广播的方式向以太网的所有主机发送一个ARP请求包,
2024-10-09 22:27:23
1054
原创 SQL注入漏洞
寻找SQL注入点;闭合+注释使用例如: ' or 1=1 # ' or 1=1 -- 等等,如果能查询出结果,存在注入点,证明是SQL注入同时也可以确定数据库的类型,查询SQL有几个字段;等等进行探索确认字段与页面显示的关系;查询数据库名,表,字段查询数据库名后使用相应的SQL语句。
2024-09-01 19:09:08
1125
原创 初学流量分析
利用Kali或者notepad++,搜索一下有没有异常的东西;然后利用wireshark打开发现无法打开,然后进行文件修复;之后追踪流搜寻信息,寻找规律;主要熟悉wireshark的用法;
2024-09-01 19:08:26
1146
原创 ECC密码与RSA
ECC 全称为椭圆曲线加密,EllipseCurve Cryptography,是一种基于椭圆曲线数学的公钥密码。与传统的基于大质数因子分解困难性的加密方法不同,ECC 依赖于解决椭圆曲线离散对数问题的困难性。它的优势主要在于相对于其它方法,它可以目前椭圆曲线主要采用的有限域有。
2024-09-01 19:07:19
1266
原创 浅谈RC4
RC4是对称密码(加密解密使用同一个密钥)算法中的流密码(一个字节一个字节的进行加密)加密算法。 优点:简单、灵活、作用范围广,速度快 缺点:安全性能较差,容易被爆破 密钥长度可变以一个足够大的表S为基础,对表进行非线性变换(一个变换就是一个函数),从而产生密钥流对S表进行线性填充,s[0]=0到s[255]=255,一般为256个字节; 用种子密钥填充另一个256字节的K表,如果种子密钥是256的话,那么刚好填充完K表,如果校园长度小于256的话,K表里面的值就密钥的循环使用; 用K表
2024-06-19 22:44:08
1704
2
原创 【无标题】
一眼看到“==”猜测出是base64得到一串:奇奇怪怪的的东西,想到了凯撒密码但是不对尝试了很多方法后,决定将这串奇怪的东西转为Ascill,因为发现它的Ascill值在33到156之间AScill的值在33到156直接就是ROT47加解密了直接在在线网站进行解码发现出现一串的东西,也不知道怎么了实在不行来用一 一对照,ASCII编码对照表_911查询 (911cha.com)参考了大神的wp,得到的结果是GXY{Y0u_kNow_much_about_Rot} 主要分为ROT5、ROT13、R
2024-06-14 22:28:55
1012
原创 RSA学习
具体来说,因为me ≡ m(e*d) (mod n)(根据费马定理的原理),所以me ≡ m (mod n),从而证明了m = cd mod n是正确的。取排列的接下来(即第5个到最后的)元素,同样将它们连接成一个字符串,并转换为整数q_guess(假设这些元素代表q的二进制表示)。选取一个整数e作为公钥,要求e与(p-1) * (q-1)互质(即gcd(e, (p-1) * (q-1)) = 1)。利用费马定理,可以找到另一个整数d,使得e * d ≡ 1 (mod (p-1) * (q-1))。
2024-06-13 23:24:21
1077
原创 取证工具volatility的下载、使用
Volatility可以还原系统崩溃或重启前的运行状态,包括进程、网络连接、文件操作等,为取证人员提供重要的线索。:Volatility可以分析被恶意软件感染的系统内存,帮助取证人员识别恶意软件的行为、进程和可能的隐藏技术。:通过内存取证,Volatility可能能够获取到用户输入到系统中的密码信息,这有助于在取证过程中破解密码。你运行命令的时候可能是你正在尝试使用Python 2的语法来运行一个期望Python 3语法的。的内存镜像文件进行分析,并导出进程ID为1234的进程的内存内容到。
2024-06-12 23:33:27
2749
原创 buuctf的RSA(六)
这个不是base64,但也不是正确的base32。开始代码审计,大致意思是说flag分为了两个,之前总结过共模攻击内容,有兴趣可以去看看。最后就来得到flag,修改一下顺序即可。后面就就是求flag1,flag2了。打开output.txt是n和c。打开另一个发现了n,m1,m2。那么根据以前的总结来做。解出来了c,这里来了个。下载压缩后有两个文件。
2024-06-07 23:12:19
408
原创 【无标题】
python中使用框架有flask,Java中使用框架有spring,PHP中有tp框架,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。简单来说,用户输入的东西在进行分析后被传出来视图层进行模板渲染(render),让用户看到结果。定义:就是很多的n,c不同,m,e不同,且e比较小,一般使用中国剩余定理(CRT)仍然是那个payload,就可以得到flag了。
2024-06-06 23:05:04
402
原创 【无标题】
Http Referer是header的一部分,当浏览器向web服务器,一般带上Referer,常用在防盗链和防恶意请求中。很多程序要检测客户端的ip地址,然后赋予相关的权限,比如数据库的读写,文件的读写,选择构造假ip,这里使用的是透明代理。用来传输用户使用的是什么样的浏览器,还可以防止爬虫,会检验User-Agent,只有当用户访问是时候才会传输数据。根据观察,afz-与flag的Ascill码相差分别为5,6, 7, 8 ,那么位移就为1,从五开始。的值,即true/false。
2024-06-05 22:25:58
1011
原创 buuctf的RSA(五)
连分数可以是有限的(即终止于某个an),也可以是无限的(即不终止)。A转化为2进制后是2017位,而说明第一项只能为1,相比于第二项,第三项可以忽略,所以对A开316次根,得到y的估计值为83,考虑忽略项,实际y的值小于等于83。看了其他大神的wp,似乎常规解法是根据A来推测x,y的范围,解出x,y,根据q与iroot(n/(x*y),2)的值相接近.从而可以得出p,q的值.接下来可以暴力破解e了,因为e没有给出来,应该不会太大,猜测是四位数字。一看到题目,我就有些蒙了,A是代表了什么,
2024-05-31 22:41:46
1198
原创 Buuctf的RSA(四)
生成素数e1=2333e2=23333#共模攻击n=p*q导入库定义RSA公钥的模数n、两个加密指数e1和e2、以及两个密文c1和c2。定义共模攻击函数e1e2c1c2和n。首先,将输入参数转换为整数类型,确保所有操作都在整数域进行。使用函数计算e1和e2的扩展欧几里得算法结果。该函数返回一个三元组(g, x, y),其中g是e1和e2的最大公约数(在此场景下应为1,因为e1和e2互质),而x和y是满足的整数。从gcdext的结果中提取x和y的等价值s1和s2。
2024-05-30 22:57:03
840
原创 buuCTF的RSA(三)
有很多的n和c,一看就是共模攻击,上脚本 这个代码主要目的是通过RSA的公共模数()来找出两个可能相同的质因数,进而解密某个特定的密文()。初始化变量填充列表:寻找共同的质因数:计算质因数并解密:还是比较简单的,题目:分析: 不知道e的值是多少,但是“m=bytes_to_long("BJD"*32)”表明了,已经知道了明文“BJD”*32大体步骤:提示:下面的一大串:output:c1 = 1264163561780374615033223264635459629270
2024-05-29 23:02:31
1051
原创 buuctf的RSA(三)
如果e的取值较小,例如e=3,那么对于某些特定的明文消息,攻击者可能能够通过直接计算密文的e次根来恢复明文。这种攻击方法基于数学上的性质,即当e很小时,加密过程变得相对简单,从而降低了安全性。继续修改,先得到了整个flag的ASCII码表示的整数,我们直接输出的这个整数是直接从某个来源得到的,并且代表整个flag的ASCII码,那么您可以直接使用。RSA中的低指数加密攻击,也称为低加密指数攻击,是指当RSA加密算法中使用的加密指数(通常表示为e)取值较小时,攻击者有可能更容易地破解加密消息。
2024-05-24 23:35:59
632
原创 buuctf的RSA(二)
在这个例子中,你已经使用了公钥的模数 N 和指数 E 来模拟(尽管没有实际加密过程)公钥,并用私钥的质数因子 p和 q 来计算私钥指数 D,然后用这个私钥来解密一个文件。代码首先导入 gmpy2和 rsa 模块,然后定义了一系列变量,包括公钥的模数 N、公钥的指数 E、两个质数 p,q,以及通过 gmpy2.invert 函数计算出的私钥指数 D。如果B使用A的公钥解密签名得到的哈希值和B自己对原始消息进行哈希运算得到的哈希值相同,那么B就可以确认这条消息是由A发送的,并且没有被篡改。
2024-05-23 22:14:24
1625
原创 buuctf的RSA(一)
bytes.fromhex()使用 bytes类的 fromhex()方法将十六进制字符串转换为字节对象。但如果 m是一个非正整数或者非常大的整数(其十六进制表示超过了 Python 整数类型的范围),hex(m)可能会返回不同的结果,或者引发异常。,原始明文在加密前通常是作为被编码的字节串(如使用UTF-8)。是 255,则 hex(m) 返回"0xff" .m 是一位数时,返回为空,即 “”因此,如果原始明文是文本,可能还需要将字节串解码为字符串(使用正确的编码)。返回的字符串中去掉前两个字符。
2024-05-22 22:24:07
913
原创 期中考复现
GET传参id=admin,主当$ GET[id]= urldecode($ GET[id])时返回flag。用dirsearch 来扫描一下,发现了index.phps,访问一下。使用bp编码器,url编码两次admin,GET传参即可得到flag。直接上传一个haha.php,发现错误,只允许 haha image。下载得到一个文件,打开看看,发现是一段php代码。根据题目可知给你了公钥和密文,来解开密文。打开bp,修改一下,之后上传成功。安装gmpy2,需要的依赖库。根据php代码可知,
2024-05-17 23:24:54
451
原创 密码前三题(2024期中考)
由于e和d是互逆的,所以如果知道了n和e,就可以通过扩展欧几里得算法计算出d,从而得到私钥。但是,这个计算过程是单向的,即从公钥直接求出d是不可能的,除非使用暴力破解的方法,即尝试所有可能的d值,直到找到满足条件的那个d。这种方法在n足够大时是不可行的,因为计算量非常大。由题目可以知道,这是简单的求m,先将n分解成成两个质数,但是发现分解为三个质数,改变一下脚本,加入元素r,即可。因此,已知公钥求私钥是不可行的,除非你知道p和q,否则你无法从公钥计算出私钥。一搜,发现是unicode转换ascll。
2024-05-16 21:45:42
411
原创 Git泄露(续)
分支是git中的重要功能,我们可以把它看作代码库中的不同版本,可以独立存在,并且有自己的提交记录,优点是分支中的内容互不影响,保证了主线代码仓库随时处于可用且比较稳定的状态,默认分支为main,所有的Git对象都会存放在.git/objects目录中,对象SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名。扫描后发现,存在一个flag.txt,先访问一下,看见一个flag,提交一下,发现不对,应该是存在git泄露。来移动HEAD指针,移动的对象可以是分支指针也可以是快照。
2024-05-10 23:35:19
670
原创 Git泄露(CTFHUB的git泄露)
去 .git/objects/(objects 所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名) 文件夹下下载 对应的文件。git泄露指的是开发人员在开发过程中遗忘删除 .git 文件夹,导致攻击者可以通过 .git 文件夹中的信息获取开发人员提交过的所有源码。使用git init初始化git仓库的时候,会生成一个.git的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中。解压文件,按原始的目录结构写入源代码。
2024-05-09 22:22:51
1270
原创 CentOS操作
打开终端,运行以下命令来编辑`/etc/profile`文件: ``` sudo vi /etc/profile ``` 在文件末尾添加以下内容,设置JAVA_HOME和PATH环境变量: ``` export JAVA_HOME=/usr/local/java export PATH=$PATH:$JAVA_HOME/bin ``` 保存文件并退出编辑器。在终端中运行以下命令: ``` wget <Java下载URL> ``` 请将"<Java下载URL>"替换为你下载Java安装包的实际URL。
2024-05-08 12:39:17
7512
2
原创 SQL注入总结
做SQL注入的题目,先明白库、表、列的关系利用Navicat 来让你明确新建my SQL新建数据库字符集,排序规则参考如下打开数据库后创建表接下来,创建了三个表,点击 添加字段,是不是null自行选择还可以添加注释保存创建成功在表里面添加内容添加后保存,后面使用命令来查询相关信息查数据库名查询登录用户如何找注入点?1,注入点首先观察搜索框的地址是否是有与数据库交互,例如html这种几乎是不存在注入的所以要先判断是否有交互。
2024-05-04 11:11:26
827
原创 buuctf的杂项题目
文件尾:AE426082 ,后面还有许多的内容,包含着4number.txt 和 zip。查看图片的高度为256,十六进制为0100,查找后修改为0300(十六进制)是一个音频隐写的题目,用Audacity打开,将图片用Stgeslove 打开,然后另存为一张图片,是明显的base64编码,直接解密,可以看到应该是张二维码。先用010检查一下,发现文件头和文件尾完整,19 00 00 00:压缩后尺寸(25)17 00 00 00:未压缩尺寸(23)png文件的文件头:89504E47。
2024-04-26 22:52:15
558
1
原创 文件包含(借助CTFHUB,buuctf)
定义:使用文件包含函数将文件包起来,直接使用包含文件的代码为了灵活包含文件,将包含的文件设置为变量,通过动态变量来引入需要包含的文件时,用户可对变量值可控而服务器没有对变量值进行合理的校验或者校验被绕过导致的,通常为php语言。00截断属于RCE绕过,遇到00自动停止长度截断包含日志文件包含session二、include 表达式。
2024-04-24 22:25:48
1053
4
原创 文件上传(bugku)
Flask是一个较小的Python web框架,只提供了一个强劲的核心,其他的功能都需要使用拓展来实现。意味着可以根据自己的需求量身打造,一般来说就是利用它来搭建网站。Flask的核心组件包括Werkzeug,一个WSGI工具箱,以及Jinja2,一个模板引擎。Flask使用BSD授权,这意味着它遵循开源许可证,允许用户自由地使用、修改和分发分析:首先对于这个有flask构建的web文件上传程序,其中包含了一个文件上传的端点 /uploader。
2024-04-19 22:41:12
818
1
原创 文件上传(借助dvwa)
在文件上传的功能处,若服务端未对上传的文件进行严格验证和过滤, 导致攻击者上传恶意的脚本文件时,就有可能获取执行服务端命令的能 力,称为文件上传漏洞。文件上传漏洞对Web应用来说是一种非常严重的漏洞。
2024-04-17 22:02:03
891
1
原创 CTFhub的布尔盲注
如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。),手工注入比较麻烦,一般使用工具sqlmap,burpsuite辅助,或者使用脚本。返回从下标为from截取长度为length的str子串。提高效率,枚举法,延时法写得脚本,运行出有时花的时间太长。参考高中数学的函数二分法求根,将数据库名切片,循环i次,i是字符下标。输入3,只回显对和错,确定是布尔盲注。
2024-04-12 20:00:07
1500
原创 CTFHub的Web的时间盲注
id=1” –dump -C “column_name” -T “table_name” -D “db_name” -v 0#获取字段内容。的情况下,用时间函数构造时间延后,由回显时间来获取数据,主要是利用sleep函数让sql语句的执行时间变长,常与if(1,2,3)函数连用如果1执行为ture则返回2,否则返回3.id=1” –columns -T “tablename” users-D “db_name” -v 0 #列字段。其他,如果我们的软件库中没有相应的软件包,那么我们可以从软件研发的团队的。
2024-04-11 21:52:51
622
1
原创 Web的SQL的过滤空格
select column_name from information_schema.columns where table_schema=datebase() and table_name=’user’#查询列名。select table_name from information_schema.tables where table_schema=datebase()#查看当前库内的表名;首先是应用系统未关闭数据库报错函数,对于一些SQL语句的错误,直接回显在了页面上,部分甚至直接泄露数据库名和表名;
2024-04-10 21:43:02
449
1
超级SQL注入工具,支持布尔盲注,报错盲注,union注入等
2024-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人