- 博客(72)
- 收藏
- 关注
原创 python19-if和match的美
如果第二个表达式满足条件,则执行 elif 后面的语句块(打印香蕉),如果第二个表达式为假,就跳过第二个语句块,进行第三个表达式的执行(例如判断 food 是否为 orange)。,其流 程图如下所示。在编写程序过程中,如果需要动态匹配部分数据,比如一个元组中的部分值,此时可以通过绑定变量的方式,提供一个字面值和变量的混合匹配模式,字面值用来精确匹配,变量用来模糊匹配。如果三个表达式满足条件,则执行 elif 后面的语句块(打印橘子),如果三个表达式为假,就跳过第三个语句块,执行 else 后面的语句块。
2025-03-04 21:44:00
903
原创 python17-集合
集合是一种数据类型,用于存储多个元素,并确保元素的唯一性。集合中的元素是无序的,不可通过索引或切片进行访问。集合的主要特点是元素不重复,相同的元素在集合中只会出现一次。我们可以使用大括号 {} 或 set() 函数来定义和创建集合。集合提供了各种集合运算,如并集(两个集合中的所有元素)、交集(两个集合中共有的元素)、差集(第一个集合中存在而第二个集合中不存在的元素)等操作。
2025-03-02 15:49:37
577
原创 python16-字典
Python 中使用花括号,保存key-value形式表示字典。key-value中的 key 必须是一个可哈希的对象,可以使用 hash() 函数来判断数据是否可哈希。简单理解在一次程序运行结束前,无论该数据什么时候执行 hash() 函数,都能得到一个唯一确定的值。一般情况下,不可变对象数据,都可以得到一个哈希值。所以,理论上,Pyhton 中的不可变对象数据都可以做为 key 使用。但是,为了方便使用,大多数情况下,都会使用字符串类型数据做为key使用。
2025-02-09 17:04:48
911
原创 python15-列表
列表是 Python 中最常用的数据类型之一。它是一种有序、可变,异构的数据集合,可以存储多个不同类型的元素。Python 中使用中括号定义列表。l1 = [] # 创建一个空列表l2 = [1, 2, 3, "hello", True] # 创建一个包含多个元素的列表由于列表具有可变性,所以空列表的定义是被允许且有意义的。可能通过列表的构造方法定义列表。当使用构造方法定义列表时,参数只能是可迭代的对象,构造方法会将参数中的元素构造成为列表的元素。可以理解为将可迭代的对象强制类型转换为列表。
2025-02-09 15:39:24
880
原创 python14-元组
元组使用小括号 () 来定义,将元组中的元素括在小括号中。元组中的元素通过逗号 , 进行分隔,每个元素都可以是不同的数据类型。使用小括号 () 来创建一个空元组。如果没有任何元素需要添加到元组中,空元组没有任何实际意义。定义元组时,逗号是必须的,即使元组只包含一个元素,也需要在元素后面加上逗号,以区分它是一个元组而不是其他数据类型。t2 = (1, )t3 = ()可以通过元组的构造方法定义元组。
2025-02-09 15:08:01
868
原创 python13-字符串格式化
字符串格式化是一种将变量或值插入到字符串中的过程,以创建具有动态内容的字符串。在 Python 中,我们可以使用format()方法和f-string(格式化字符串字面值)来进行字符串格式化。format()方法format() 方法是一种传统的字符串格式化方法。它使用占位符 {} 来表示要插入的变量或值,并通过传递参数来替换这些占位符。基本用法age = 25# 输出:My name is Alice, and I am 25 years old.
2025-02-09 13:20:30
759
原创 掌握FastAPI不是梦
fastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,专为在 Python 中构建 RESTful API 而设计。在Web开发中,路由是指将HTTP请求映射到相应的处理函数(也称为视图函数或控制器)的过程。总结:路由可理解为url路径,api端点可以可理解为路由路径+路由参数使用 JSONResponse 自定义响应头访问 http://127.0.0.1:8000/items/42/ ,浏览器F12抓包就可以查看到自定义的响应头。
2025-01-20 21:05:09
1020
1
原创 解锁速度之门:Redis
它被广泛应用于缓存、实时分析、消息队列、会话管理等场景。该说不说,我还是那句话,提升的过程往往是需要坚持下去的,愿你我都遇到自己的浪漫。:将每次写操作追加到日志文件中,数据恢复更细粒度。:普通字符串,可以存储文本或二进制数据。:存储唯一值集合,如用户 ID、标签等。:存储对象数据,如用户信息、商品属性等。:简单的键值对存储,如计数器或缓存。:无序集合,支持交集、并集等操作。:日志流,适合消息队列或数据记录。:任务队列、消息列表、时间序列等。:键值对集合,适合存储对象数据。:链表,可以用作队列或栈。
2025-01-20 20:49:21
801
原创 Python11
字符串可以通过使用单引号或双引号或三引号来定义,用于表示文本信息,如姓名、消息等。#使用单引号定义字符串:#使用双引号定义字符串:#使用三引号定义字符串"""转义字符转义字符在字符串中用于表示一些特殊字符或序列,以及插入难以直接输入的字符。常见的转义字符包括:\n表示换行符,\t表示制表符,"表示双引号,’表示单引号,\表示反斜杠。通过使用转义字符,可以在字符串中插入特殊字符或表示这些无法直接输入的内容。
2025-01-19 17:21:03
788
原创 Python10
函数是一段可重复使用的代码块,它执行特定的任务并返回一个结果。在编程中,函数用于将一段代码逻辑封装起来,以便在需要时可以方便地调用。函数的主要目的是提高代码的重用性和可维护性。函数名:函数名用于标识函数,以便在代码中调用它时使用。参数:参数是函数在执行时所需的数据。函数体:函数体是函数的实际代码逻辑,由若干语句组成。返回值:返回值是函数体代码执行过后的运行结果。虽然系统预先定义好了大量的内置函数,但这些函数,还不能满足实际的开发需求,所以程序中允许根据实际需求自定义函数。
2025-01-16 21:55:25
907
原创 Python8-写一些小作业
虽然很基础,但是呢,咱先从基础做起,后面在慢慢进阶即可,最近一直在学jmeter,安全测试方面倒是有所松动,明天写一篇安全笔记吧。
2024-12-24 22:09:43
468
原创 泷羽sec学习打卡-powershell的灵魂
PowerShell 是微软开发的一个命令行界面(CLI)和脚本语言,用于自动化和配置管理任务。它最初是为 Windows 系统设计的,但后来也支持 Linux 和 macOS 系统。PowerShell 提供了一个强大的命令行环境,允许用户执行各种系统管理任务,如管理文件系统、注册表、服务、进程等。重点它是跨平台的,什么意思呢?也就是说在任何平台它都是最好的shell。都可以进行使用,无论是linux还是macos中也是可以直接使用的。
2024-12-19 21:37:22
970
原创 Python7-数据结构
堆:堆是一种特殊的树形数据结构,其中每个节点的值都大于或等于其子节点的值(最大堆)或小于或等于其子节点的值(最小堆)。python实战示例,咱就是这些都是一些基础东西,但是再离谱的业务逻辑也是由这些基础函数和方法构成的,所以需要代码加深下理解。它存储元素的序列,每个元素都有一个索引,索引是元素在数组中的位置。链表:链表中的每个元素称为节点,每个节点包含数据和一个指向下一个节点的指针。例如,访问数组的某个元素。每个节点的值大于或等于其左子树中的所有节点的值,小于或等于其右子树中的所有节点的值。
2024-12-18 22:23:10
851
原创 泷羽sec学习打卡-wireshark1-抓包分析流量
Wireshark 是一个网络协议分析器,它允许用户捕获和分析网络上的数据包。它是一个开源工具,广泛用于网络故障排除、分析、软件和通信协议的开发。
2024-12-15 20:05:09
890
原创 泷羽sec学习打卡-brupsuite8伪造IP和爬虫审计
伪造指定IP:这个功能允许用户在Burp Suite的Repeater模块中输入一个特定的IP地址,并将其添加到请求头中,以伪装成该IP地址。这里面最好的就是通过插件自动伪造ip,但是毕竟有些许局限,最真实最好用的依然是通过代理链路伪造ip,比如搭建三级代理,也就说本地代理,云服务器代理。虽然我们可以伪造ip进行请求,但是呢,一般服务器只会响应连接的ip,所以其实伪造ip基本比较少用,实现伪造ip的方式多种多样。下面都是一些常见和常用的请求头,当然请求头也是可以后端也是可以自定义的。
2024-12-15 19:39:24
1154
原创 泷羽sec学习打卡-brupsuite7搭建IP炮台
这里因为用的zmap扫描的ip,其实很多zmap扫描的地址都是不能访问国内的网站的哈,都懂,除非指定地区,那么扫描的ip就大部分应该可以通过py脚本检测。总之,思路就是zmap获取一些ip,使用两次py或者多个脚本进行多次筛选,最终获得可以用的ip字典(也就是IP代理池了),但是这个有局限性,真正的代理池是不端发生ip代理变化且全自动化获取的哈。筛选有效和无效的ip。验证之后形成第⼀代理池,但是⽤到⽬标⽹站还是会有许多其他的状态码,不能访问的错误,所以我们针对⽬标指定⽹站再进⾏筛选。
2024-12-15 18:17:56
1095
原创 泷羽sec学习打卡-brupsuite6暴力破解与验证码识别绕过
开始attack,可以通过length进行判断是否是正确的,一般成功的响应内容的字节是不同,其次可以通过观察response判断是否成功,成功的响应内容一般在响应体中所有表现,这里我不再多讲,懂得都懂,但是还句话,实战就到这里,这个后台没啥好说的了,是否进去,学过都懂,这里我不再多说,只是说实战很多东西,只能实践后自己知道,无法分享。把你下载的pikchu文件解压到www目录下。成功识别验证码图片中的验证码数字,当然ddddocr的工具不止这些,对于滑动的验证码也是可以识别的,识别率80%
2024-12-13 12:51:36
1016
原创 Python6-数据类型之欣赏列表
深拷贝:创建一个新的对象,并且递归复制原始对象中的所有元素。这意味着在拷贝中对任何元素的修改都不会影响到原始对象。print(original) # 输出: [1, 2, [3, 4]]#这里就会发现没有影响原来的original列表,会生成独立的新的列表print(deep_copied) # 输出: [1, 2, [3, 4, 5]]浅拷贝:创建一个新的对象,但它包含对原始对象中元素的引用。如果原始对象中的元素是可变的,那么在拷贝中修改这些元素会影响到原始对象。
2024-12-11 18:15:49
1033
原创 Python5-线性表之顺序表和链表
链表头插法是一种在链表头部添加新节点的方法。在链表中,头插法特别适用于需要频繁在列表前端插入数据的场景,因为它可以快速地将新元素插入到链表的头部,而不需要遍历整个链表来找到插入点。头插法的基本步骤:创建新节点:首先,你需要创建一个新的节点,这个节点将包含你想要添加到链表中的值。设置新节点的下一个指针:新节点的 next 指针应该指向当前链表的头节点。更新头节点:将链表的头节点更新为新创建的节点。头插法的优点:速度快:头插法的插入操作非常快,因为它不需要遍历链表,只需要常数时间(O(1))。
2024-12-11 13:14:14
936
原创 泷羽sec学习打卡-brupsuite5
4、打开brupsuite,选择拦截请求,点击浏览器进行操作发包,抓取成功可以利用brupsuite进行各种操作,web渗透测试其实就是对找接口之间存在的漏洞,也就是前端传参以及后端返回响应,前后端有没有都做相应的限制,只是说brupsuite可以有帮助作用,实际中需要挨着挨着测试才能找到漏洞的,一个点一个攻击面。2、pc端安装证书、安装雷电模拟器,抓包,无论是模拟器还是真实物理机,其本质都是抓接口,所以如果是测试物理机使用的bug,可以安装证书到物理机,如果只是对接口进行测试,模拟器即可。
2024-12-10 22:27:10
1689
原创 Python4-分支与循环
会打印0和2,因为当i等于1时,pass语句什么也不做,所以只有i不等于1时才会执行print语句。这段代码会打印1到9之间的所有奇数,因为当i为偶数时,continue语句会跳过当前迭代。这段代码会打印1到4的数字,然后退出循环,因为当i等于5时,break语句会终止循环。打印1到9之间的所有奇数,因为当i为偶数时,continue语句会跳过当前迭代。在打印数字1到4后退出循环,因为当i等于5时,break语句会立即终止循环。pass # 这是一个无限循环,什么也不做。使用 break 退出循环。
2024-12-10 17:36:41
364
原创 Python3-内置函数和数值处理
注意点:type()很常用,因为python不会强制定义变量的类型,只能通过type查看数据的类型,以此为判断依据,后续判断类型。实场景中,会遇到很多小数,进度四舍五入,去掉小数的情况,也就是数值转换,为了避免损失精度。列表,一个有序的元素集合,可以包含任何类型的元素,如[1, ‘a’, 3.14]。<< 为左移位,>> 为右移位,& 为按位与,^ 为按位异或,| 为按位或。元组,一个有序的元素集合,不可变,如(1, ‘a’, 3.14)。将函数应用于可迭代对象的每个元素,并返回一个包含结果的迭代器。
2024-12-10 14:24:10
834
原创 Python-计算机中的码制以及基础运算符(用于分析内存)
码制这个东西了解即可,如果大家有一天可以接触到内存溢出并且需要实时监控二进制时,你已经是一个大佬了,可以分析任何软件的性能做出优化等,其实很多库自带检查内存,比去找某个变量对的进程值快的多,记住:用轮子往往比造轮子简单且有效,但创造往往更有价值和意义。定义:反码用于表示有符号数的一种方式,正数的反码与其原码相同,负数的反码是其原码除符号位外,其他各位取反(0变1,1变0)。定义:补码是目前最常用的有符号数表示方式,正数的补码与其原码相同,负数的补码是在其反码的基础上加1。=, ==):从左到右执行。
2024-12-09 22:35:35
1077
原创 泷羽sec学习打卡-brupsuite4
基于HTTP协议,使用标准的HTTP方法(GET, POST, PUT, DELETE等)。无状态,每个请求包含所有必要的信息。易于理解和使用,适合于Web应用之间的数据交换。基于XML的协议,用于交换结构化信息。通常用于企业级应用,支持复杂的事务处理。需要更多的带宽和处理能力。
2024-12-09 21:47:10
1623
原创 泷羽sec学习打卡-brupsuite3
Decoder模块是BurpSuite中的一个重要组成部分,它专注于对原始数据进行各种编码格式和散列的转换,无论是URL编码、Base64编码,还是常见的Hash散列(如SHA-256、MD5等),Decoder都能轻松应对。
2024-12-08 20:43:08
683
原创 Python-分析内存进制转换
十六进制(Hexadecimal):基数为16,使用数字0到9和字母A到F(其中A代表10,B代表11,以此类推,直到F代表15)。这里目前这个阶段咱就当了解就行,比较能够分析内存都是性能测试相关的东西了,都是后续要学习的,咱知道有这些特殊值就行,计算机网络中也是有这些特殊的值,比如广播地址,主机地址,子网掩码,网关等等。这些特殊的十六进制数在计算机科学和编程中经常出现,因为它们代表了某些重要的数值,如颜色代码、内存地址、最大值等。在十六进制中,有一些特殊的数,它们在转换为十进制时具有特定的值。
2024-12-08 19:27:09
1186
原创 Python-标识符、隐式转换和显式转换
但不会将浮点数转换为复数,也不会将较小的数值类型转换为较大的数值类型(例如,int 到 float)。类型严格性:在静态语言中,一旦变量被赋予了特定的类型,通常就不能被赋予其他类型的值,除非进行显式的类型转换。类型灵活性:在动态语言中,同一个变量可以在程序的不同部分被赋予不同类型的值,而不需要显式地声明类型转换。int(x):将 x 转换为整数类型。灵活性较低:代码的灵活性不如动态语言,处理不同类型的数据时可能需要更多的类型转换。str(x):将 x 转换为字符串类型。
2024-12-08 17:24:40
730
原创 泷羽sec学习打卡-brupsuite1
什么是brupsuite?brupsuite有哪些功能模块?如何安装brupsuite呢?如何设置 Burp suite中的字体?如何解决brupsuit中文乱码问题Scanner模块使用(扫描与漏洞检测)1、可以使用scanner模块进行自动扫描Target模块使用(攻击负载)site mapsite map 过滤器使用Scope模块Proxy模块(拦截HTTP/HTTPS流量)Proxy模块功能介绍如何拦截响应包Intruder模块 (自定义自动化攻击)Sniper type(当一把狙击手)
2024-12-07 16:50:44
1040
原创 泷羽sec学习打卡-brupsuite2
好啦,相信大家应该都学会怎么破解brupsuite专业版了吧,下期介绍brupsuite基本使用和模块,这个工具很强大噢,对于web应用程序可以说是web渗透中的主力工具,也是用的最多的工具之一。新建个java_home变量,指定jdk安装的路径,注意不要加入bin,其次新建classpath变量,加入一系列的路径。系统变量path中新建相对路径,方便再任何路径下找到java运行的环境,注意jdk11后jre自带,无需手动安装。这个可以在官网下载,也可以使用自带注册机的安装包,网络资源很多,学会信息收集。
2024-12-07 11:44:42
731
原创 泷羽sec学习打卡-shell命令9
ls >> /dev/null 这个命令的作用是执行 ls 命令,列出当前目录下的文件和文件夹,然后将输出追加到 /dev/null 中。由于 /dev/null 是一个特殊的设备文件,任何写入其中的数据都会被丢弃,因此这个命令实际上不会显示任何输出,也不会保存任何数据。ls -l < dirs.txt 会读取 dirs.txt 文件中列出的目录路径,并对每个路径执行 ls -l 命令,显示每个目录下的文件和文件夹的详细信息。shell完结,这些都是shell的基础,实际中shell是非常强大的。
2024-12-05 22:24:27
722
原创 泷羽sec学习打卡-shell命令8
声明学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负关于shell的那些事儿-shell6until循环(直到为止)case语句func函数定义实践是检验真理的唯一标准别问,问就是去学python自动化测试去了,但哥们还是对安全感兴趣一些,但是,咱先学会儿自动化,后续自己写一些py工具还是挺方便的,好啦,大家,言归正换,万丈高楼平地起,咱还在地底,继续加油until循环(直到为止
2024-12-05 21:05:28
705
原创 泷羽sec学习打卡-shell命令7
i++)):这是一个 for 循环的开始,使用了 C 语言风格的语法。for i in seq 1 100:这是一个 for 循环的开始,for 循环是 Bash 中的一种控制结构,用于重复执行一系列命令。如果结果为零,let 返回 1(失败)。while(($i
2024-12-04 21:56:12
834
原创 泷羽sec学习打卡-shell命令6
then:这是一个 elif(else if)条件语句,用于检查变量 a 的值是否大于变量 b 的值。then:这是一个 if 条件语句,用于检查变量 a 的值是否等于变量 b 的值。echo “a=b”:如果 a 等于 b,那么执行 echo 命令输出字符串 “a=b”。echo “a>b”:如果 a 大于 b,那么执行 echo 命令输出字符串 “a>b”。echo “a
2024-12-03 22:15:21
1080
原创 泷羽sec学习打卡-shell命令5
只需要满足其中一个就可以返回true,两个都不满足就返回flase。兄弟们,信息实战还是有趣的噢,信息收集挖洞哈。新增参数 -z(检查字符串的长度是否为零)则输入true,不满足则返回flase。-n(检查字符串的长度是否不为零)此时,我们在插入不相等符号实时看。改一下str2 为Hello。返回flase则长度不为零。
2024-12-01 22:18:55
508
原创 泷羽sec学习打卡-shell命令4
注意点:这里的[] 可以换成空格 shell中脚本和python类似,都是利用缩进格式,继续信息收集实战,shell玩玩有意义。-p “请输入您的姓名:”:在命令行上显示提示信息“请输入您的姓名:”,提示用户输入他们的姓名。-n 3:这个选项指定 read 命令只读取用户输入的前3个字符,不论用户实际输入了多少字符。-t 10:表示如果用户在10秒内没有输入任何内容,read 命令将超时并结束。和大多数的编程语言一样,选择,循环,顺序。==:字符串匹配模式(等同于 =)=:不等于(用于字符串比较)
2024-11-28 21:40:57
860
原创 泷羽sec学习打卡-shell命令3
KaTeX parse error: Expected 'EOF', got '#' at position 7: @的区别,¥#̲代表参数的个数,查看命令执行状态的,如果显示为0,那么命令就是正常执行,其他数字就是出错的,$$用来查看脚本当前进程ID。shell编程在数据运算的时候比较麻烦,python中数学运行简单。如果用除法有两种方法,一个是/取整数整除,一个是%取余数。是将每个字符串当作独立的字符串显示,着也是。假设我们加入第二个,第三个参数,修改脚本。*就是将参数当作统一的字符串显示出来,而。
2024-11-27 22:54:29
532
原创 泷羽sec学习打卡-shell命令2
bashrc 文件是位于用户主目录(通常是 /home/your_username)下的一个隐藏文件,它用于存储用户的 Bash shell 个性化设置,包括环境变量、命令别名、函数定义等。ls命令是英文“list”的缩写,用于列出目录内容,显示指定目录下的所有文件和子目录。上期分享了变量的定义都是一些临时变量,实际中临时变量用的少,只有全局变量和永久变量才是yyds。这样,当你在命令行输入一个命令时,系统会先在 /root 目录下找这个命令。这里的命令对应的变量和脚本是哪些呢?
2024-11-27 21:17:37
1031
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人