Python从0到POC编写--基础

什么是EXP、POC、CVE:

在某个漏洞出现的时候,会经常看到 exp啊,poc啊什么鬼的,

那么这些究竟是什么东西??

余弦大大说:

POC 即 Proof Of Concept,观点验证程序。

运行这个程序就可以得到预期的结果,验证了观点。

再简单点,就是测试的代码。。。


EXP 是 exploit(漏洞利用程序),就是利用代码


CVE 即 Common Vulnerabilities & Exposures 公共漏洞和暴露。

简单的说,就是我们熟悉的 漏洞信息库。


输入输出:

啰嗦一堆之后,本节终于要进入Python环节了

Python语法比较简单,这里就不做更多说明了。

首先来了解一下Python的输入输出,

输入这个没啥好讲的,就是直接在控制台上写代码,

输出常用的有两种方式,一种是 表达式语句,另外一种是 print()

images


数据类型:

Python3中有6个标准数据类型:

  1. Number(数字)
  2. String(字符串)
  3. List(列表)
  4. Tuple(元组)
  5. Sets(集合)
  6. Dictionary(字典)

1. Number(数字)

数字类型包括整数、浮点数,

负数 、0 、正数都是整数,

例如:

images


2. String(字符串)

使用 '(单引号) 或者 "(双引号) 括起来的

例如:

"hello world"

images


3. List(列表)

列表是使用方括号括 [] 起来的,

例如:

list2 = [1,2,3,"小明",10.1,[1,2,3]]

一个列表里面可以存在多种类型,比如整型、浮点型、字符串,还可以包含另外一个列表

他们之间使用逗号分隔。

另外,有两个比较常用的函数:

  1. append() 函数是将参数作为一个元素增加到列表的末尾。
  2. extend() 方法则是将参数作为一个列表去扩展列表的末尾。

例如,使用 append() 函数向列表list2末尾增加元素

list2.append(1)  # 向列表list2末尾增加一个整数
list2.append("hello")  # 向列表list2末尾增加一个字符串
list2.append([1,2,3])  # 向列表list2末尾增加一个列表

例如,使用 extend() 函数向列表list2末尾增加元素

list2.extend([1,2,3])

append() 和 extend() 都是向列表末尾增加元素,我们来看看两者的区别

images


列表切片:

与字符串的索引一样,列表索引从0开始。

获取第一个元素:

list2[0]

获取索引值1到5的元素(包含1但是不包含5,前包后不包)

list2[1:5]

获取索引值6后面的全部元素(包含6,前包)

list2[6:]

获取索引值6前面的全部元素(不包含6,后不包)

list2[:6]

获取索引值倒数第2前面的全部元素(包含2)

list2[:-2]

images


列表删除:

删除列表中的元素可以使用 del 函数 或者 指定为空 ,

例如: 删除第一个元素

del list2[0]  # 删除第一个元素

删除索引值 2到5 的元素:

list2[2:5] = []  # 指定为空

删除整个列表:

del list2

或者:

list2 = []

如果我们想要改变某个元素的值,可以这样

list2[0] = 233   # 将第一个元素的值改变为 整数233,如果使用单引号或者双引号就是字符串

4. Tuple(元组)

元组使用 小括号() 来定义,或者使用逗号

例:

tup1 = (1,2,3)

或者:

tup1 = 1,2,3

如果只有一个元素的时候,需要在元素后面添加逗号,否则括号会被当作运算符使用。

images


元祖一旦定义理论上不能进行增删改查,

如果非要修改,可以使用切片的方法,

例如:


tup1 = (1,2,3,4,5,6)
tup1 = tup1[:2] + ("小明",) + tup1[2:]

添加的东西也一定要是元祖,

images


5. Sets(集合)

集合是一个无序的不重复元素序列。

可以使用 set() 或者 花括号{ } 创建集合,

例如:

a = set('abcdefggfedcba')

或者:

b = {1,2,3,4,5,5,4,3,2,1}

images


可以使用 add 和 remove 添加删除集合中的元素

但是集合不支持通过索引值来查找元素

images


6. Dictionary(字典)

当索引不好用的时候,我们可以使用字典。

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value),对用冒号(:)分割,

每个对之间用逗号 , 分割,

整个字典包括在花括号 {} 中


创建字典

方法1:

dict1 = { 'a':123,'b':456,'7':789 }

方法2:

dict2 = dict((('a',123),('b',456),('7',789)))

使用方法2的时候,注意键值对是使用逗号,

如果要访问某个元素,我们可以通过键名来查找对应的值,

例如:

dict1['a']

images


流程控制:

if语句:

单向分支:


if 1 < 2:print('窝喜欢')

双向分支:


if 1 < 2:print('窝喜欢你')
else:print('窝还是喜欢你')

多项分支:


if 1 < 2:print('窝喜欢')
elif 2 < 1:print('窝还是喜欢你')
else:print('窝真喜欢你')

巢状分支:

就是条件嵌套。


if 1 < 2:print('窝喜欢')if 2 < 1:print('窝还是喜欢你')
else:print('窝真喜欢你')

while语句:

语法:


while 条件:循环体

例1:


count = 0
while count <= 10 : print("loop ", count)if count == 5:breakcount +=1 

break:用于结束一个循环

当 count 为 5 的时候,结束此次循环。


例1:


count = 0
while count <= 10 : print("loop ", count)if count == 5:continuecount +=1

continue:只是终止本次循环,后面会接着继续循环。


while else 语句:

例:


count = 0
while count <= 5 : print("loop ", count)count +=1
else:print("循环结束啦!!!");

else 作用是指,当 while 循环正常执行完,中间没有被 break 中止的话,就会执行else后面的语句,

如果执行过程中被 break ,就不会执行else的语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/836640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux系统编程】第十七弹---进程理解

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程的基本概念 2、描述进程-PCB 2.1、什么是PCB 2.2、为什么要有PCB 3、task_ struct 3.1、启动进程 3.2、创建进程…

基于微信小程序的预约挂号系统(源码)

博主介绍&#xff1a;✌程序员徐师兄、10年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…

在Android Native层实现Try/Catch异常处理机制

文章目录 一、技术原理二、代码实现2.1 定义结构体保存线程的异常处理信息2.2 实现try/catch语义2.3 检查当前线程的异常处理信息2.4 设置信号处理函数2.5 信号处理和非局部跳转2.5.1 信号处理函数实现2.5.2 跳转回用户空间 2.6 清理异常处理的资源 三、使用示例3.1 示例3.2 如…

页眉如何插入横线

双击激活页眉——菜单栏——格式——边框和底纹——边框——应用于&#xff1a;段落——线型&#xff1a;选双线——预览&#xff1a;”点“下边框——确定。

Ubuntu20.04右键打不开终端

今天用virtualbox安装了ubuntu20.04 问题&#xff1a;右键打开终端&#xff0c;怎么也打开不了&#xff01; 点了也没反应&#xff0c;或者鼠标转小圈圈&#xff0c;然后也没有反应… 解决方法&#xff1a; 1、Ctrl Alt F6 先切换到终端访问界面 mac电脑 Ctrl Alt F6 …

letcode整数反转

整数反转 问题 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 示…

vuerouter声明式导航

声明式导航-跳转传参数 1.查询参数传参 语法&#xff1a;to /path?参数名值 2.对应页面组件接受传来的值 $router.query.参数名 2.动态路由传参 1.配置动态路由 2.配置导航连接 to/path/参数值 3.对应页面组件接收传递过来的值 #route.params.参数名 多个参数传递&…

情感感知OCR:整合深度学习技术提升文字识别系统的情感理解能力

摘要&#xff1a;随着深度学习技术的发展&#xff0c;文字识别&#xff08;OCR&#xff09;系统在识别准确率和速度上取得了长足的进步。然而&#xff0c;在处理文本时&#xff0c;仅仅依靠字符和词语的识别并不足以满足用户对信息的全面理解需求。本文提出了一种新颖的方法&am…

母亲节祝福html源码示例

创建一个完整的HTML页面&#xff0c;我可以为您提供一个简单的HTML模板&#xff0c;其中包含一些示例性的祝福语&#xff0c;并添加一些注释以帮助您理解如何扩展内容。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8&qu…

Redis五大基本数据类型介绍及其使用场景

文章目录 1 String&#xff08;字符串&#xff09;应用场景 2 List&#xff08;列表&#xff09;应用场景 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合&#xff09;应用场景 5 hash&#xff08;哈希&#xff09;应用场景 Redis 是一个开源&#xff0c;…

彩信群发推广:四大革新优势,引领营销新时代!

在数字化营销日益盛行的今天&#xff0c;短信群发已成为我们生活中不可或缺的一部分。然而&#xff0c;您是否想过&#xff0c;除了传统的文本短信&#xff0c;还有一种更为丰富、更具吸引力的推广方式——彩信群发推广&#xff1f;彩信不仅融合了图片、文字、音频、动画和视频…

【漏洞复现】泛微OA E-Cology ln.FileDownload文件读取漏洞

漏洞描述&#xff1a; 泛微OA E-Cology是一款面向中大型组织的数字化办公产品&#xff0c;它基于全新的设计理念和管理思想&#xff0c;旨在为中大型组织创建一个全新的高效协同办公环境。泛微OA E-Cology ln.FileDownload存在任意文件读取漏洞&#xff0c;允许未经授权的用户…

轨迹规划 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 纯追踪算法原理推导2 自适应纯追踪算法(APP)3 规范化纯追踪算法(RPP)4 仿真实现4.1 ROS C仿真4.2 Python仿真4.3 Matlab仿真 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划…

快速配置 Nginx 来实现 GPT 流式传输

目录 1. Nginx 参考配置2. Nginx 核心参数3. 其他参数 场景&#xff1a;代理 ChatGPT、代理各种 GPT 工具套壳等。 1. Nginx 参考配置 支持 GPT 流式访问的配置如下&#xff0c;请根据实际需求适当取舍即可&#xff1a; server {listen 80;server_name chat.test.com; # 绑…

如何推动物联网的未来?——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网作为连接物理世界和数字世界的桥梁&#xff0c;正逐渐改变着我们的生活和工作方式。在工业领域&#xff0c;物联网技术的应用不仅提高了生产效率&#xff0c;还实现了对设备的智能化管理和维护。而工业网关作为物联网的重要组成部分…

js通过时间对JSON中的数据进行排序

需求 现在需要通过每一个数据段的date字段对数组的整体数据进行排序&#xff01; 元数据如下&#xff1a; var data [{"filename": "123","date": "2024-05-10 19:53:57","stand": "GB-14","filter":…

java数据保留几位小数的问题

String.format()&#xff1a; 这个方法在格式化输出时非常常用&#xff0c;可以方便地控制小数位数&#xff0c;并且语法简洁易懂。它不仅可以用于格式化浮点数和双精度数&#xff0c;还可以用于格式化其他数据类型&#xff0c;如整数、字符串等。 示例代码&#xff1a; BigD…

仪器校准中,CNAS对报告的认可评审要求有哪些?

CNAS扩项时&#xff0c;常常会有关于对报告认可的相关要求&#xff0c;而这些要求往往有明确规范&#xff0c;那么在仪器校准中&#xff0c;CNAS对报告的认可评审要求有哪些&#xff1f; 现场评审时&#xff0c;评审组应关注抽查报告&#xff0c;评审组将现场随机抽取报告&…

thinkphp5实现多数据库连接

思路&#xff1a; 创建第二个数据库连接&#xff0c;然后在使用第二个数据的时候&#xff0c;切换连接 首先到config配置文件下创建连接 //数据库配置2,配置第二个数据库db_config2 > [// 数据库类型type > mysql,// 服务器地址hostname > 127.0.0.1,// 数据库名data…

程序员之虚拟形象课程录制

如果你实在是不想真人出镜&#xff0c;试试虚拟形象吧&#xff01; 虚拟形象类课程片段的制作 虚拟形象的原理 现在&#xff0c;我们来探讨一下虚拟形象类课程片段的制作。虚拟形象在形式上与真人出镜相似&#xff0c;但它采用卡通形象代替真人&#xff0c;更具趣味性&#x…