php特性入门
in_array函数漏洞 如题:(ctfshow web99) .lhcwrriedwbq{zoom: 50%;} 这里rand(1,$i)是在从1到$i之间随机选择一个数输出。 关于in_array函数的机制: 格式:bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ),即首位参数为需查询的数值,第二个参数为目标数组,最后一个参数为是否为严格比较。 这里没有设置$strict即是否为严格比较的值,默认为FALSE,即非严格比较。如输入2.php,根据 PHP 类型转换规则 ,从字符串转换为数值时,'2.php' 会被转换为...
关于文件包含的一些问题辨析
有关文件包含的一些问题辨析1. $file这个变量到底被赋予了什么值 这是一道例题,首先我们知道文件包含的解题中,一些协议至关重要 由超全局变量$_GET或者$_POST得到的值,一般会赋予给一个变量,而这个变量的具体值,取决于这个协议的内容: file://协议 这个协议一般指定文件路径直接打开文件,比如?file=file:///etc/passwd,或者?file=file:///var/www/html/index.php,此时后者就会把index.php文件的值直接赋予给$file变量, php://协议 但是如果我输入的是?file=php://input,那么$php这个变量的值就是php://input。 2.include函数的辨析include函数会根据$file的值来处理内容。如果$file是普通文件路径,它会包含文件内容;如果$file是 PHP 流包装器,它会处理流中的内容。在 CTF 题目中,通过巧妙利用php://协议等流包装器,可以绕过一些限制来获取目标文件(如flag.php)的内容。 3. 关于ctfshow...
langchain的runnables相关学习
处理链(Pipeline)详细解释 它就是一个工具,用于把组件按顺序连接起来,让数据依次通过这些组件的处理,使用管道符|来连接各个部件。 RunnablePassthrough基本介绍 RunnablePassthrough 是 LangChain 里的一个基础组件,它的主要作用是在处理链中传递数据,并且可以给数据添加额外的信息。简单来说,它能让数据原封不动地通过,同时可以在这个过程中对数据进行一些修改或者补充。 RunnablePassthrough.assign 详细解释 功能: RunnablePassthrough.assign 方法的作用是给输入的数据添加新的键值对。在处理链里,它可以用来为后续的组件提供必要的参数。 比如: from langchain_core.runnables import RunnablePassthrough # 创建一个简单的字典作为输入数据 input_data = {"name": "Alice"} # 使用 RunnablePassthrough.assign...
pydantic库学习
字段(Field) 基本定义: 在 pydantic 模型里,字段指的是类中定义的属性,它们代表了数据模型的各个组成部分。每个字段都有特定的数据类型和可能的验证规则。在 CaseStage 类中,以下这些就是定义的字段: 1234preparation_stage : List[str]#preparation就是字段setup_stage : List[str]execution_stage : List[str]post_stage : List[str] 这些字段规定了 CaseStage 实例所应包含的数据结构。例如,preparation_stage 字段要求其值是一个字符串列表,用来存储刷单准备阶段的行为。 原始名称(Original Name) 基本定义: 原始名称即字段在类定义中所使用的名称。在 CaseStage 类里,preparation_stage、setup_stage、execution_stage 和 post_stage...
个人学习感悟
关于python库的学习 在学习的时候是缺什么学什么,不是一口气把库里面的东西走完,包括re这种自带的小库
3.30有关川大ctf交流
基本培养路线介绍 Web方向研究 深度实战研究,并非科研研究。 Web入门 buuctf直接针对wp进行解决 照着题目里面的php问题进行学习 前端语言只用看懂 中期 平时把代码审计作为一个大方向。 入门SRC漏洞,先挖高校漏洞。 有关内网渗透 以上为推荐网站 以及hackthebox 国际赛:ctftime根据权重选择难度。 后期 主要是个人研究工具 WP的来源 PWN资源 ctfwiki PWN相关内容 做题: buuctf Linux使用wsl即可 直接看X86汇编语言 打公开赛的赛题,国际赛 师傅的问题 AWD的Web题一定要快速找到后门,不需要很高的web知识,比较好去稳定排名 在赛场上不好一个个处理靶机。 对框架的定位,快速了解系统框架,得知漏洞点。在github的CMS进行研究。 团队: 两个web一个pwn。 其他问题 不要在配置环境花费太多时间 自己开发工具,实用性是不是会更高? 主要工具用于渗透方向。 国安 运气成分比较大 老师理解就是,对专业要求不是很高。 先了解具体时间。 省厅
关于pwn的思考
基本材料 一、推荐什么教程,哪些书适合由浅入深地入门?个人之前只对web方面的漏洞有很浅的认识,对pwn一无所知 具体基础有: 简单sql注入,命令执行,文件包含,文件上传,代码审计,爆破,且仅限于ctfshow对应类别的前30道。 当前情况是: 暑假会有大型比赛,到时候必须要有拿得出手的水平,时间紧迫。 二、推荐哪个题库 三、推荐哪些比赛比较适合新人练手? 学习路线 个人简单了解了pwn,发现其需要的基础相当多,想向师兄们请教以下问题: Linux如何学习,由于它是一种操作系统,个人认为这种系统是要越用越熟练而非单纯记忆指令,可以如何更好提升linux水平呢,如何应用呢?目前个人尝试在电脑上安装双系统,(拟定为Arch Linux)。 关于汇编学习,需要学习到哪个程度,有没有必要使用类似于图灵完备(Turning Complete)这样的游戏软件从电脑硬件底层开始了解机器语言,进而深入了解汇编语言,目前本人正在使用VS...
c语言标准库及其函数
<stdio.h>scanf()函数概述 scanf是 C 语言中的一个标准库函数,主要用于从标准输入流(一般指键盘)读取格式化的输入数据 ,并将其存储到程序中指定的变量中。 关于scanf()在读取的时候,占位符、后方变量地址、以及输入数据时的格式”一一对应”的规则: 占位符格式scanf 函数的占位符格式用于指定要读取的数据类型,常见的占位符有: %d:用于读取十进制整数,对应的数据类型是 int。 %f:用于读取单精度浮点数,对应的数据类型是 float。 %lf:用于读取双精度浮点数,对应的数据类型是 double。 %c:用于读取单个字符,对应的数据类型是 char。 %s:用于读取字符串(以空白字符分隔),对应的数据类型是字符数组。 %x 或 %X:用于读取十六进制整数,对应的数据类型是 int。 %o:用于读取八进制整数,对应的数据类型是 int。 传递变量地址的格式 在 scanf 函数中,需要传递变量的地址,以便将读取的数据存储到相应的变量中。对于基本数据类型的变量,需要使用取地址运算符 &...
python装饰器
@classmethod基本介绍 @classmethod 是 Python 中的一个装饰器,作用是把一个方法封装成类方法 。 类方法是什么,就是可以直接使用类,无需实例化调用的方法叫做类方法。 比如: class DateUtils: @classmethod def get_time(cls): import datetime return datetime.datetime.now() #类调用 year1 = DateUtils.get_time print(year1) #实例化后调用 date = DateUtils() year2 =n date.get_time print(year2) 123456789101112131415161718192021222324252627282930313233343536373839# @model_validator(mode="")(pydantic库)## 可输入参数:* `before`和`after`* 区别如下: -...
二级通识
循环结构循环队列 例题一 解析: 咱把循环队列想象成一个头尾相连的环形跑道,跑道上有一些位置能放东西。队头指针 front 就像是在跑道上标记从哪儿开始取东西,队尾指针 rear 标记着下一个能放东西的位置。 一般来说,要是队头和队尾都在跑道的最后一个位置(也就是 front = rear = m ,这里 m 是跑道总共能放东西的位置数量 ),那就说明跑道上啥东西都没有,队列是空的。 但要是队头和队尾在同一个位置,可又不是跑道最后那个位置(像这题里 front = rear = 25 ,不是 50 ),这时候队列可能是空的,也可能是摆满东西了。 这题说又成功放进去一个东西,要是队列已经摆满了,就没地方放新东西了,所以就说明之前队列是空的。那放进去一个东西后,队列里自然就只有这 1 个东西啦,答案就是 A 选项。 例题二 关于以上公式: 当front<rear时: 在循环队列里,front 指向队头元素的前一个位置 ,这是一种约定的表示方式。这么设定主要是为了方便处理入队和出队操作时指针的移动逻辑...