- 博客(104)
- 收藏
- 关注
原创 isctf2025 部分wp
一个简单的get传参,给了一个正则的白名单,可以使用chdir跳到根目录,再print flag,这边白名单里面没有/
2025-12-07 23:24:15
1457
原创 ctfhub技能树部分题目题解
给了我们常用的文件名和后缀,很显然要我们去尝试访问这些组合,可以手搓因为也不多,也可以用dirsearch自定义字典去扫描,这边用dirsearch自定义字典扫看看需要注意的是把线程数调小一点,不然速度太快扫出来都是503,可以看到只有一个文件可以访问,直接访问看看会直接下载下来,解压缩文件有一个类似flag的文件,我们打开发现没有,只给了提示那还是直接访问看看这个文件,就可以得到答案。
2025-11-27 17:10:35
297
原创 定位内存地址
在计算机上我们知道美国定义了一个ASCII码来标识可视的字符,其中包括数字、大小写字母、符号……在计算机系统中也有关于ASCII码的应用,例如a对应的ASCII码是61H,如果我们向显存中输入61H,在文本模式下先科就会把它解释成a,之后驱动显示器在显示器上显示a。
2025-10-01 11:45:00
833
原创 代码段与程序
在之前,我们通常使用end去定义程序的结束,但是在这里我们提到end和start联用也可以用来定义程序的开始,也就是通知编译器程序的入口。例如上面这段代码类似这段代码的结构,先是用start,后面end后面跟上 start标志着mov bx,0是程序的第一条指令。就是雷士这样的结构在了解end start定义程序入口之前,我们也了解过用CS:IP去指向程序的入口,也就是要第一条执行的指令。
2025-09-22 20:38:34
387
原创 [BX]和loop指令,debug和masm汇编编译器对指令的不同处理,循环,大小寄存器的包含关系,操作数据长度与寄存器的关系,段前缀
上面我们利用标号s来作为循环的名称,s:后面的指令则是要循环的指令。这边要去查循环的指令不止是单单s:后面那句,也可能是一段,循环语句结束的标识是loop+标号。例如想这种的就说明一整段都是循环语句像这种的就是只有标号后面那一句。
2025-09-16 21:36:23
571
原创 选拔考试复现
文件是一张图片,根据提示521,直接在RGB里面调整参数521提取图像位数据可以得到一个压缩包的二进制这边直接保存成压缩包,解压就可以得到一个图片之后就没有上面提示了,可以先看属性得到一个关键字符串,考试就卡在这里,后面要用steghide去提取隐藏数据就可以得到flag。
2025-09-07 20:14:38
916
原创 学习一下动调
die查一下用ida64打开main函数里面没有什么信息,接着追一下函数,内容在test函数里面函数会对我们输入的内容进行base64加密,这段逻辑也很简单,就是将加密后的字符串和目标字符串依次进行比较,一样就输出成功,那么我们是不是可以直接把这段字符串解码一下,然后直接启动程序输入解码内容就可以了,当然不是,看一下解码之后的内容直接乱码了,原因是这个base_64encode不是base64加密,是一个自定义的函数,我们追踪看看。
2025-08-30 00:59:07
940
原创 逆向汇编指令分析
对于现在的我去整段的使用汇编语言去分析一个程序对我来说还是有些难度,所以我下面会在逆向中找出我认为的关键步骤的汇编语言,并进行分析。
2025-08-28 06:30:00
1511
原创 逆向汇编指令作用,代码分析
lea指令,装入有效地址指令,它将内存单元的地址送至指定的寄存器。和mov的用法不同,它的操作数虽然也是内存单元,但是它获取到的是内存单元的地址,而不是内存单元中的数据。pop和push的操作都是从栈顶去进行的,pop对应从栈顶弹出,push对应从栈顶压入,通常有pop就会有push,他们是栈操作的基础指令,通过它们可以方便地管理函数调用过程中的数据保存、恢复以及参数传递等操作。下面还有类似的这样的代码块,完成类似的功能,明确各个参数和函数地址,通过这些地址调用可以知道程序的作用,就和伪代码一样。
2025-08-27 09:45:10
1360
原创 PC端逆向会用到的常见伪指令
总的来说,平常在逆向过程中,如果是简单的逆向一般较少涉及到具体利用伪指令分析汇编代码,进而了解程序进程,到目前为止,我了解到的伪指令也不多,主要是通过追踪变量或关键函数,去理解程序的进程。一开始学汇编的时候,会先接触到类似codesg segment ......codesg ends这样表达一个代码段的开始和结束的伪指令,但是其实在实际的逆向分析中这种伪指令还是比较少见的,更多的是其他的,例如我们这边用一个简单的程序来用ida分析看看。后续还有符号定义伪指令,和偏移定义伪指令,在栈上进行的操作。
2025-08-25 23:35:22
903
原创 web刷题3
打开环境就是文件上传的一道题目尝试上传php文件提示要上传image文件,尝试上传图片马可以看到对文件内容有限制,改成script格式可以看到上传成功了,但是不知道上传路径,猜一下是uploads,去url直接看看,正确的是upload。
2025-08-10 17:40:50
678
原创 web刷题2
知道是sql注入就用测试语句测试一下还有一些过滤,依次测试之后发现是and被过滤了,那么既然注入点这么明显,就测试一些注入的类型是什么,还是进行测试,首先如果只只有一个查询语句类似最简单的1'结果就是无回显,尝试之后发现注入方式是堆叠注入,直接暴库得到几个库名,接着爆表名,这边用常规的查询语句发现还是被过滤了还是测试过滤语句,测试结果是from被过滤了,这边用了大写也被过滤了,所以明显不能用大写绕过,那就不一个一个查直接整个查表名。
2025-08-04 03:17:54
691
原创 web刷题1
打开环境,代码逻辑还是很简单的思路是传参code参数,一般传参shell然后用蚁剑连接看flag,但是这题做了之后就会发现思路是没错但是这题多了一些验证,这题就是无字符rce,可以考虑用取反,异或绕过,这边就用取反,按照我们上面说的直接上传code参数,做完之后会发现确实是可以连接蚁剑,但是无法执行命令,所以我们需要先用phpinfo看一下禁用的内容看到这个disable_function,php版本是7。
2025-07-27 17:00:47
1000
原创 awd初始及基础的攻击防御学习
awd是一种网络安全对抗赛,比赛双方通过入侵彼此电脑,得到flag得分。队伍组成一般有三个人,两个负责进攻一个负责防守,赛制有许多种,一般提供三台靶机, 有混合靶机,也有纯Linux和纯Windows,其中Windows一般用于运维,Linux一般用于攻击。
2025-07-21 03:53:16
1169
原创 2025期末考复现
可以看到他读取了一个txt文件,我们找到这个文件,根据代码把文件内容赋值给key,这个代码的作用就是通过密钥解密字符串之后,将解密后的二进制数据转换为 UTF-8 格式的代码字符串,并用exec执行。我们可以把解密之后转化成的UTF-8格式输出出来看看。可以看到编写的语言是py,我们用pyinstxtractor反汇编,找到关键的pyc文件进行反汇编,也就是d.pyc,用pylingual在线反编译得到py代码。下载文件有很多图片和txt文件,里面有一个exe文件,用die分析一下。
2025-07-03 12:02:43
1021
原创 简单理解HTTP/HTTPS协议
IP 则负责将数据从源地址发送到目标地址,它规定了网络中数据传输的基本规则,包括寻址、路由选择等,使得数据能够在不同的网络之间进行传输。在网络数据传输过程中,SSL/TLS 协议通过加密技术,对传输的数据进行编码,防止数据被窃取或篡改,确保数据的保密性和完整性。HTTPS协议又称超文本传输安全协议,是HTTP的安全版本,他在HTTP的基础上加了SSL/TLS协议。HTTP协议又称超文本传输协议,是一个基于TCP/IP通信协议来传输数据的,是目前最常用的协议之一。HTTP协议通常使用80端口。
2025-06-19 21:41:01
335
原创 php反序列化漏洞学习
魔术方法在一些特定的情况下能被自动调用,所以我们一般用这个来绕过一些验证和过滤或者用来执行代码;魔术方法是以__开头的特殊函数,我们需要掌握上面条件下能调用什么魔术方法,什么魔术方法有什么作用,使用多个魔术方法的时候魔术方法调用的先后顺序是什么。
2025-06-12 09:32:42
1294
原创 csrf攻击学习
csrf又称跨站伪造请求攻击,现代网站利用Cookie、Session 或 Token 等机制识别用户身份,一旦用户访问某个网站,浏览器在之后请求会自动带上这些信息来识别用户身份。
2025-06-07 17:20:09
497
原创 xss漏洞学习
xss(css)又称跨网站脚本攻击,从名字也知道它大致的概念,大致就是攻击者通过向网站注入脚本并在攻击者的浏览器执行达到攻击效果,是网站一种常见的漏洞。他通常通过js代码进行,但其他代码也可以,他跟攻击类型分为反射型xss(非持久型)、储存型xss(持久型)、DOM型xss、。常见的xss注入点就是网站提供的输入框或者直接是url栏中,有一些网站对用户输入的数据处理不够严谨,导致一些闭合构造的错误,让注入的代码成功执行。
2025-06-07 15:52:01
922
原创 litctf2025复现
开始是一个登录界面,随便输入发现没回显,抓包看看,没看出来什么,猜一下账号是admin直接用常用密码字典爆破得到密码是password,登录就有flag。
2025-05-29 21:59:10
419
原创 2025期中考复现
题目提供了三个界面,注册界面,登陆界面,登录之后的修改界面。这题的重点不在修改界面,在注册界面和登录界面,注入点在注册界面,注入之后在登录之后可以查看回显。先联合注入查一下库名这题只能用#闭合--+闭合不了,先注册可以设置密码也可以不用,账号就是注入语句,注册登录之后可以看到库名之后查表名这题有几个不理解的:不加group_concat出不来,根据我之前的学习,这个函数是一个聚合函数,作用是将一些查询到的数据聚合起来,以字符串的形式输出。这题如果去掉这个函数的话,就没有回显。
2025-05-23 19:41:15
1133
原创 ssrf漏洞学习
ssrf又称服务器端请求伪造,一般用于攻击外网无法访问的内网系统,而攻击者通常访问可以访问的服务端,使用服务端提供的手段,去给访问不了的内部系统发送http请求(通常是),由于发送请求的不是客户端,而是服务端,一些网站对服务端发送的请求都没有太多的验证,所以攻击者就可以通过这个访问到用户端无法访问到的内部系统,使用一些内部服务。简单来说,客户端访问的服务端就是一个中介,原本通过客户端无法访问的内部系统,客户端可以通过服务端这个中介向内部系统发送请求,导致客户端可以使用内部系统的一些服务。
2025-05-22 22:22:18
223
原创 ssti模板注入学习
模板是一种包含占位符和静态内容的文本文件,占位符用于表示在运行时将被动态替换的数据或执行的逻辑。例如,在一个 HTML 模板中,可能会有{{ name }}这样的占位符,用于表示用户的姓名。
2025-05-14 17:47:24
958
原创 web刷题笔记
禁用了一些关键字符,查询函数,系统执行函数,执行函数都有,空格也和斜杆也禁用了,但是其他一些很大一部分字符都没有禁用,属于关键词禁用的类型,正常的步骤是去查一下列表,想着正常去构造一下查询语句,但是没有回显我能想到的原因是目录层级不对,由于/被禁用了我们不能直接查根目录的列表,那我们换个思路,可以用转义绕过,或者取反,异或,这边使用简单一点的取反,先查列表写一个简单的php取反编码代码取反,明确要执行的代码system ls /,两个分开转义得到列表。
2025-04-23 22:16:24
661
原创 文件上传漏洞学习
文件上传漏洞指用户通过上传一个恶意的可执行文件,例如木马、病毒、webshell、恶意脚本等等在服务器中执行,配合其他工具,获得网站控制权或达到一些其他效果。由于对上传文件的格式限制不够严格,或者服务器的处理逻辑不够严谨,对上传文件的解释和应用限制不够充分,导致用户可以通过操作上传的文件进行一些开发者没预想到的操作,做一些用户权限之外的事情。一、有文件上传的功能。这里不是指必须要网站给你提供严格文件上传的路径,文件上传可以通过传参一些恶意代码来完成等等。二、文件要在程序中能被执行,例如网站时php环境的,我
2025-04-16 19:19:32
1044
原创 rce漏洞学习
rce漏洞又称远程代码执行漏洞,它允许攻击者在目标服务器上远程执行任意代码或操作系统命令。rce漏洞通常出现在 应用程序提供给用户执行命令的接口,例如网页的ping功能也就是网页的url栏,如果不对上传的数据进行严格的管控就可能出现rce漏洞。许多程序、网站都对用户提供交互功能,利用前端用户提供的代码或命令让后端系统执行一些操作,如果对这些管控不严格就很容易产生rce漏洞。
2025-04-15 21:54:41
744
原创 sql注入学习
之前一篇文章简单写过sql注入产生的原因,大体是因为网站传参数据时,过滤不够严格导致传参的数据和后台sql语句拼接执行。还了解了为什么要闭合,闭合的作用,以及注释的作用,那么现在就开始具体学习各种类型的注入。其实在学习之前个人认为还是具体去学习一下几个现在常用数据库的结构,比如说mysql或是sql server等等,但是这两个内容太多了,短时间学不精,而且大多的数据库的差异都是储存数据的格式差别,其构成还是:库、表、列、字段之类存在级别区分的个体组成的,这边就直接进入操作过程。
2025-03-31 22:55:55
960
原创 3月考复现
pe查壳,ida32打开,f12+shift看string可以看到很多flag,追踪主函数这段代码前面是随机生成flag,也就是我们看到的那些,主要数后面的验证,可以看到有七个验证,在考试时,我一直以为是对前七位ASCII值进行处理之后验证,但其实看到后面加的数字就不可能,ASCII没有那么大的数字,这个验证是地址的验证,追踪byte_41A000可以看到对应一个地址后面就是加上的偏移量,找个计算器算一下加上偏移量去找。
2025-03-31 20:25:36
221
原创 sql注入基础
-+这是一种闭合手段,也有其他的闭合手段例如#等等可以用于其他的注入情境,这边就不多说了,--+中--是注释符号,+在url是空格的编码被编译成空格,确保注释符号生效。的记录,不过只返回符合条件的第一条记录,所以我们加上注释符可以显示users表中所有id为2的记录,limit 0,1的作用是从行号0开始往下面搜索,只返还一条id=2的数据。可以看到报错了,去看sql语句可以看到1后面有一个单引号落空了,在sql语句中单双引号都是要成对出现的,所以这边报错了,验证一下我们传参id=1''
2025-03-28 19:15:01
463
原创 sql基础
百度百科:SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息。
2025-03-28 16:57:23
478
原创 编写汇编语言到程序
汇编语言编写之后是不能直接执行的,要进行编译这一过程。我们分三步看:1、编写一个汇编语言,产生一个储存源文件的文本文件。2、对源文件进行编译,编译后产生目标文件,在用连接程序连接目标文件,生成在系统中可执行的文件。3、执行程序整个过程的目的是将机器看不懂的汇编语言编译成机器码并载入内存 ,进行相关的初始化。详细过程可以看另一篇笔记。
2025-03-25 21:36:24
379
原创 寄存器(内部访问)
我们之前提到过,字由两个字节组成,当我们用16位寄存器来储存时,把字分别储存在连续的两个内存单元中,高位字节放在高地址单元中,低位字节则放在低位地址单元中。例如上图,0、1两个单元存放了20000(4E20H),这两个单元可以看成起始地址为0的字单元,这里提出了字单元这个概念:存放一个字的两个内存单元。同理,我们不止可以将0、1看作一个字单元,也可以将2、3看作一个字单元,任意两个连续的内存单元组成一个字都可以看成字单元,默认编号小的作为高地址。
2025-03-20 22:14:02
424
原创 使用dosbox的debug功能和调试汇编语言源文件asm
首先我们要下载dosbox,并下载对应插件,放在一个文件夹里,将文件夹放在dosbox同目录。
2025-03-19 17:11:48
649
原创 寄存器
先说一下寄存器:寄存器可以理解为是一个移动的仓库,在CPU进行一些处理时,寄存器就是用来暂存这些还在处理的数据,寄存器相较于储存器大小小很多,但是读写的速度比储存器快很多,储存器中例如磁盘rom断电后仍可保存数据,寄存器断电后即失去数据,寄存器也是储存器的一类。
2025-03-18 17:42:10
849
原创 汇编基础知识
1、机器语言是机器指令的集合,机器指令就是机器可以正确执行的命令,由二进制数组成2、当今我们常用的是pc机,由一个芯片完成上述功能,即CPU是一种微处理器,每一种微处理器由于自身硬件设计和内部构造不同都拥有自己的机器指令集,即机器语言。3、由于机器语言是二进制组成的,可读性极差,篇幅也较长,于是产生了汇编语言。
2025-03-17 17:52:09
692
原创 迷宫破解py代码
这个是官方文件,这个库内容还是挺多的,主要实现了对应目标的容器,python内置了特定的数据类型和处理办法,collection提供了更加高效的内置数据类型和处理方法,以便更加高效的处理数据。这边使用的库是python中的collection库的deque模块。
2025-03-13 09:45:11
871
原创 关于原码、反码、补码、移码、阶码
机器数是将符号数字化的数,是数字在计算机中的二进制表示形式。机器数有2个特点:一是符号数字化,二是其数的大小受机器字长的限制。二进制每个0和1是组成二进制的最小单位,称作位(bit),常用的位数有8、16、32、64位,字长为8位的组合编码称为字节,是计算机的基本编码单位。字长反应了一台计算机的计算精度,其他条件相同的情况下,字长越长,计算机处理速度越快。
2025-03-10 20:38:42
666
原创 关于RSA解密基础原理
我们简单看一下计算过程,首先通过e计算出d需要知道φ(n),φ(n)=(p-1)(q-1),而n=p*q,众所周知,两个质素相φ(n)乘很容易算出答案,但是要将这个乘积再拆分成原本的两个质数就很难,特别是当这两个质数很大的时候,乘积拆分后的质数有很多组,所以当两个质数qp很大的时候,分解基本上不可能得到正确的那一组,所有RSA算法算是很安全的。五、计算关于φ(n)的模逆元,私钥为d,ed=1(mod φ(n))的含义就是(e*d)÷φ(n)的余数为1。解密方式:(c**d)÷n的余数为m。
2025-03-04 20:25:39
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅