自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 SSRF个人学习笔记

SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种安全漏洞,攻击者通过该漏洞可以诱导服务器发起恶意的网络请求,从而实现对服务器内部网络或外部网络资源的访问。SSRF漏洞通常出现在服务器端的应用程序中,尤其是那些允许用户输入URL或IP地址的接口。多说无益,直接上题细说。

2025-05-20 22:53:28 1104

原创 sql,RCE做题复习

输入ip能直接执行ping指令,尝试用管道符执行命令有弹窗发现是js代码,禁用js代码后再次上传成执行命令。

2025-05-16 20:43:07 480

原创 Web刷题

页面是一个登录界面,用万能密码尝试绕过没成功先用dirsearch扫一下网站目录,发现git泄露下载index查看发现乱码dirsearch还扫到其他文件README.md中发现账号密码进去后发现靶机为linux系统,没在根目录下找到flag,但找到了phpinfo.php环境变量中找到flag。

2025-05-15 20:12:02 891

原创 SSTI学习2

之前在搭建flask框架进行测试时,发现flask框架能执行<script>标签,但不能执行<?php>签。但是看源码是能发现php一句被成功解析的,但并不能执行。却能用<script>弹窗原因很简单,因为flask框架是运行在python解释器中的,自然python不能解析php语言。但python能识别html语言是因为我们后台人为的用html语言写的文本,放在浏览器上能被解析,因为超文本语言本质上还是以输出为主,其能在浏览器上正确的显示即可。但<?

2025-05-11 04:09:09 373

原创 文件包含 && 任意文件读取

程序开发人员一般会吧重复使用的函数写道单个文件中,需要使用某个函数时直接调用此文件,无需再次编写,文件调用的过程就是文件包含,所以将包含的文件设置为变量,用来动态调用,但是这种灵活性,导致客户端可以调用一个恶意文件,造成文件包含漏洞。下面的代码通过get获取file的值,并用include包含此文件。php而文件包含除了有include,还能用其他的函数includeinclude()在包含的过程中如果出现错误,只产生警告,并且脚本会继续require。

2025-05-08 21:25:43 1180

原创 SSTI学习

服务器端模板注入。比如python中的flask、php的thinkphp、java的spring等框架一般都采用MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。

2025-05-06 22:12:43 890

原创 格式化字符串漏洞

在c中,printf函数在打印输出变量时通常不是直接输出,而是用一个占位符如%s虽然直接输出也没有太大的问题,但如果用格式化输出,没有给后面的参数就会发生一些小问题比如上述的代码,如果没有给printf参数,它也是能正常执行。但是这时候,占位符上输出的就是一串数字,而这串数字就是某个地址。由于printf也是stdio中的一个库函数,它也遵循栈的调用规则而在调用printf时,printf会将a地址的值放到占位符上。所以,实际上后面的参数并非a的实际值,而是a的地址。

2025-05-04 15:29:07 549

原创 依旧RCE派对

源码中有两层if判断,第一层检查code变量是否被传参,同时过滤一些字符第二层才是关键,它会检查删除后的参数是否等于;,删除的方法是通过正则匹配,匹配形如function(a)的类型,并替换为空字符串那问题就在于,这题不能传入参数这种就需要用到无参数rec,简单说就是在code中不传入参数,但是能通过其他方法获得参数但这样读取到的是个假flag这时候就可以用到参数逃逸的方法,在传入一个参数并用php内置函数获取它这样稍微构造一下就能取到我们需要的参数,在套上eval就相当于一道无过滤的基本rce了。

2025-05-04 00:44:16 743

原创 RCE学习(取反,通配符,参数逃逸)

之前做题没怎么用过取反操作,但现在发现起始还蛮好用的这边看源码会发现过滤了一些特殊字符(关键包括了^不能用异或,$不能用自增,还有两个通配符符号)但这题没有过滤~,导致我们可以用取反的操作再看第二层,过滤了大小写字母,这里就基本能让一些人手足无措了,不知道如何下手。因为没有过滤%,最开始我想直接将system('ls');转为十六进制然后传入,但明显没睡醒,因为传入十六进制数后会自动转为可视字符,还是得取反好用。比如system('ls');

2025-04-29 19:58:30 845

原创 关于最近做pwn题时的小发现

有些时候,超强的ida pro也会拉这里ida显示的偏移量是0x68(104)而实际动调时,查看寄存器的值会发现我们输入的值在0xffffd13c这样偏移量为0xffffd1a8 - 0xffffd13c = 0x6c (108)在算上esp寄存器的值所以真实的偏移量为 0x70(112)所以有时候exp打不通不一定是你的payload问题,可能就是偏移量错了。

2025-04-27 03:21:42 311

原创 Xss—labs

一个对传入参数name没做任何过滤,就直接拼接到源码中用<script>标签构造js代码。

2025-04-22 22:37:07 967

原创 Xss-labs

XSS又叫CSS(Cross Site Script)跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。​ xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。举个例子,以xss-labs第一关为例通过get传参获取用户名,从源代码可以看出传入的参数被直接拼接到了源码里面,没有任何过滤。

2025-04-22 19:36:30 772

原创 CTFshow RCE极限挑战

源码比较简单,post传参,然后将(和.做了替换,也就是payload中不能有这两个玩意儿之前知道反引号能执行系统命令,但直接传入是没有任何回显的是因为这是php语言中的命令,它执行了但没有输出,这个时候就要用echo输出。

2025-04-20 22:00:15 504

原创 RCE小练手

正常情况下是一次一次自增,直到构成POST,但这显然会超过150的payload限制。wp的方法,用数组变量名拼接一个空字符,变成字符串类型 --> $_=$_.''$_=$_['@'=='&'] //'@'=='&'是错误的,返回0。到这里就不会做了,两个超链接都是跳转到正常的网页,源代码也没看到什么。要通过一定的方法,使$_返回Array,一般用$_="$_"所以我们可以拼接成CHr,CH来源于自增,r来源于Array。最后构成$_GET[1](_GET[2])$_=[] //构造名为_的空数组。

2025-04-15 20:49:08 456

原创 RCE漏洞学习

在CTF(Capture The Flag)竞赛中,RCE漏洞指的是这类漏洞允许攻击者通过某种方式在目标系统上执行任意代码,从而完全控制目标系统或获取敏感信息。RCE漏洞通常是非常严重的漏洞,因为它们可以直接导致系统被攻陷。

2025-04-12 22:34:32 1128

原创 文件上传做题记录

直接上传php再试一下phtml用蚁剑连发现连不上那就只要命令执行了。

2025-04-10 22:45:59 411

原创 文件上传漏洞原理学习

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。这种攻击方式是最为直接和有效的,所以我们需要思考的是如何绕过检测和过滤。

2025-04-09 23:25:50 1785 1

原创 sql做题记录

传入单引号引发sql注入报错并且发现字段数为3查回显,可以用联合注入。

2025-04-01 23:04:55 358

原创 sql注入的几种常见方法

对于报错注入其实就是在基本的sql注入上套了个函数壳,主要就是要熟悉格式和payload可见,时间盲注与布尔盲注同样麻烦,难的不是原理,而是过程,所以最好用脚本跑UA头注入用于会对UA头检查的网页,而且通常是利用UA头错误构造报错注入,还需要注意末尾的闭合,因为ua头检查可能在前面。

2025-04-01 20:49:20 1094

原创 SQL注入原理

至此,一道基本的sql注入就完毕了,至于post类与get一样,只用将参数用post传参即可.sql注入的程序查字段-查回显-爆库名-爆表名-爆字段名-爆字段。

2025-03-31 21:03:57 951

原创 PHP语言学习笔记-补充

关于这类变量,可以用一个实例来看声明一个对象类要用到class关键字这里的this是一个特殊变量,相当于一个指针,作用是访问指向的对象的属性比如 $this->color就是访问当前对象(object)的color属性所以 $this->color=$color 就是将函数中传入的参数color赋值给对象中的color属性后续的$herbie=new Car("white")就是创建一个新的Car对象实例,并给该对象传参为"white",用变量herbie存储这个对象。

2025-03-28 23:47:33 290

原创 PHP语言学习笔记

PHP,全称Hypertext Preprocessor(超文本预处理器),可以包含文本,HTML,CSS一起使用。

2025-03-27 22:27:50 899

原创 Ret2libc

got表,即全局变量表它用来存放外部函数地址plt表,即程序链接表用来存放额为代码都知道写好的c源码是不能执行的,因为它还要经过编译,汇编,链接后才能生成可执行文件。而链接方式一般分为静态链接和动态链接两种方式,通过连接器链接。链接简单说就是把代码需要的库导入到内存地址中,把不同的函数链接起来并经行地址和空间的分配,符号绑定和重定位。而静态链接是对于每个独立的函数,都导入一份库。这样如果多个函数都同时用到一个函数库时,就会重复的将这个函数库复制很多次,造成空间的浪费。

2025-03-24 20:35:01 701

原创 Ret2syscall(超详细)

(System Call)是操作系统提供给应用程序的接口,允许应用程序请求操作系统内核执行某些特权操作。由于操作系统内核运行在更高的特权级别(如x86架构中的),普通应用程序(运行在)无法直接访问硬件资源或执行某些敏感操作(如文件读写、进程管理、网络通信等)。因此,应用程序需要通过系统调用来请求内核完成这些操作。我用自己的话说就是设置对应寄存器的值,达到调用系统函数的过程下面是对应的系统调用表Linux X86架构 32 64系统调用表_32位 syscall-优快云博客。

2025-03-23 01:48:00 1306

原创 栈的工作过程

这里也是栈溢出最重要的地方,因为eip指向的是下一个命令执行的地址,这个时候我们溢出并将它覆盖为shellcode或者后门函数地址就可以拿到shell。首先,函数会从main()开始执行,而main中调用了func函数,其中的变量a,b会先行逆向入栈。然后将之前ebp的值压入栈内,并将ebp移动到esp处,形成新的ebp。用汇编语言看,首先会重置栈,然后esp-10h,用于获取栈的基本空间。首先,将call func的下一条指令的地址作为返回地址,并压入栈内。之后esp会再次下移,形成func的栈空间。

2025-03-22 22:55:38 328

原创 ret2shellcode

ret2shellcode,即控制程序执行 shellcode代码。shellcode 指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的 shell。一般来说,shellcode 需要我们自己填充。这其实是另外一种典型的利用方法,即此时我们需要自己去填充一些可执行的代码,然后通过利用,让程序调到shellcode的地址后去执行(这是网上随便复制粘贴的)要我来看就是我们写入的内容能被存储在栈以外的地方,通过恶意构造数据并修改返回地址到恶意数据所在的地址,执行命令并获取权限。

2025-03-22 17:10:39 582

原创 Pwn 之 ret2text

今天在打一道给出后门函数,而且没有任何保护机制的pwn时,发现直接把后门函数地址拼上去打不对,而是执行后门函数中的勾选地址才行,所以总结一下此类题型。

2025-03-20 15:28:44 733

原创 何为栈对齐 Pwn

在平常做题时总是发现直接call后门函数会EOF。后面看wp中提到了栈对齐这个概念,现在就来看看怎么回事例题一个很简单的栈溢出+后门函数题但如果你直接call后门函数的话会直接EOF所以这是为什么呢这里先介绍一个经常出现于程序中搬运浮点数的指令MOVAPSMOVAPS是 x86 汇编语言中的一条指令,用于在 SIMD(单指令多数据)操作中移动数据。具体来说,MOVAPS。

2025-03-20 08:59:09 533

原创 Python实现循环位移原理

这次考核做到的一个逆向题,用到了循环位移是哪一题呢?——《源码?启动!里面有这样的代码当初完全没看懂这里是什么ai之后,<<的意思是左移x位(二进制),如图x<<5就是左移5位比如1000 1110左移5位后1100 000,右侧补0当时我就在想,怎么将他还原为它原来的值就尝试将它位移回去后,将改变的位一一替换为1或0并解出可以显示的字符,然而这种方法计算量又大,还可能出错但我去问ai这个解密脚本怎么写,ai直接给出了位移回去的操作,这让我百思不得其解。

2025-03-15 22:38:57 1011

原创 Pwn调试

这里我用的是gdb中的一个插件,pwndbg具体下载安装教程可以去csdn上面找这个插件与gdb本身比起来更适合做pwn的调试,因为它会自动显示出汇编代码和栈还有寄存器情况。

2025-03-13 22:11:19 771

原创 汇编语言学习笔记

这里梳理一下为什么CPU执行retf时,是先IP后CS栈有一个后进先出的原则,而且空间地址是从高到低增长的,所以出栈时,它便从低到高增长所以会sp+2,而在之前的内容中,我们可以发现,在数据段上,,所以先出来的就是偏移地址,存储在低地址,而后出栈的就是段地址,存储在高地址。

2025-03-11 20:35:44 637

原创 汇编语言学习笔记

数据的处理有两个关键,从之前的学习中也体会到了。

2025-03-09 12:48:02 618

原创 汇编语言学习笔记

1,[bx]是什么呢与[address]类似,比如[0]表示DS段上偏移地址为0的内存单元那这不就是把偏移地址放在寄存器里面了吗?没看出有什么区别继续往下看2,loop是什么loop简单的说就像是python中的for循环,至于怎么用,下面会讲到3,定义描述性性符号()4,约定符号idata表示常量。

2025-03-08 22:03:48 931

原创 汇编语言学习

为什么要学汇编语言?因为最底层,机器能读懂的机器语言晦涩难懂,全是由01构成。而汇编语言是基于机器语言,通过助记符等让我们能更加容易编写语言。它离底层的机器语言最近,而其他高级语言python,java,C,C++等都是在其基础上来的。所以学好机器语言是十分重要的。

2025-03-07 18:36:41 999

原创 汇编语言学习笔记

栈的基本知识栈顶元素总是最后入栈,在出栈时又是最先出来(LIFO——Last in First out)

2025-03-06 22:29:23 917

原创 春季开学考复现

这题的py源码中其实有很多没用到的自定义函数和变量删完后剩下的才是有效的内容这里定义了一个函数redcoredage主要内容就是将传入的字符串先疑惑后位移操作,然后添加到Franxx列表中,最后base64加密返回这里的第一个坑就是base64加密,因为平常没怎么用过,所以可能这里会出错base64库的encode函数输入和输出都是bytes类型,不能是str类型而decode可以是bytes也可也是str类型,所以这一句。

2025-03-03 16:39:26 957

原创 pwn学习笔记之stack

之后caller函数调用结束,并继续调用下一个函数还记得最开始讲的cpu存储访问顺序吗?如果我们可以在一些危险函数get(),或者没有严格限制的read函数输入超过对应地址存储量的字符串,就可以覆盖掉返回地址,在函数调用结束时,返回地址就会被送入eip寄存器中,从而我们能够执行我们想要的动作。系统栈是由高地址往低地址增长的, 而数据的写入(局部变量)是按低地址到高地址的顺序写入. 如果程序没有对输入的字符数量做出限制, 就存在数据溢出当前栈帧以及覆盖返回地址的可能, 从而实现控制程序的执行流.

2025-02-25 22:16:34 933

原创 pwn学习笔记—程序装载与虚拟内存

我们之前加载程序所看到的内存视图并不是直接在物理内存上呈现的,而是在虚拟内存中因为物理内存的一些原因,不便于直接看见,所以操作系统会提供一个虚拟内存以供程序员查看虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存,而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

2025-02-25 20:07:28 302

原创 PWN的学习笔记(前置基础)

pwn简单说就是一次hack可能用到的名词用于攻击的脚本或方案攻击载荷,需要发送的攻击数据调用攻击目标的shell代码。

2025-02-24 21:19:39 440

原创 大作业(登录网站)

在小皮中创建一个数据库然后访问phpmyadmin,这里php版本过高或者过低都会出错,我用的7.3.4然后输入密码访问数据库这里应该要用root账户访问,自己创建的数据库没有权限然后可以通过phpmyadmin创建数据库然后是创建表名然后就可以添加字段了字段添加完成后通过插入加入内容。

2025-02-23 17:22:03 400

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除