Python从0到POC编写--基础

什么是EXP、POC、CVE:

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

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

余弦大大说:

POCProof Of Concept,观点验证程序。

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

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


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


CVECommon Vulnerabilities & Exposures 公共漏洞和暴露。

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


输入输出:

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

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

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

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

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


数据类型:

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

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

1. Number(数字)

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

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

例如:


2. String(字符串)

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

例如:

复制代码
"hello world"

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() 都是向列表末尾增加元素,我们来看看两者的区别


列表切片:

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

获取第一个元素:

复制代码
list2[0]

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

复制代码
list2[1:5]

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

复制代码
list2[6:]

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

复制代码
list2[:6]

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

复制代码
list2[:-2]

列表删除:

删除列表中的元素可以使用 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

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


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

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

例如:

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

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


5. Sets(集合)

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

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

例如:

复制代码
a = set('abcdefggfedcba')

或者:

复制代码
b = {1,2,3,4,5,5,4,3,2,1}

可以使用 addremove 添加删除集合中的元素

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


6. Dictionary(字典)

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

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

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

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

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


创建字典

方法1:

复制代码
dict1 = { 'a':123,'b':456,'7':789 }

方法2:

复制代码
dict2 = dict((('a',123),('b',456),('7',789)))

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

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

例如:

复制代码
dict1['a']

流程控制:

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:
    	break
    count +=1 

break:用于结束一个循环

count5 的时候,结束此次循环。


例1:

复制代码
count = 0
while count <= 10 : 
    print("loop ", count)
    if count == 5:
    	continue
    count +=1

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


while else 语句:

例:

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

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

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

相关推荐
水木姚姚2 分钟前
用 python 编写的一个图片自动分类小程序(三)
python·opencv·图片分类·图片识别
赱向远方21 分钟前
【软件推荐——pdf2docx】
python·pdf·开源软件·docx·软件推荐·doc·pdf2docx
helloworld工程师26 分钟前
Java实现PDF加水印功能:技术解析与实践指南
java·开发语言·pdf
厦门辰迈智慧科技有限公司40 分钟前
大中型水闸安全监测系统解决方案
运维·服务器·安全
五花肉村长44 分钟前
Linux-进程信号
linux·运维·服务器·开发语言·网络·c++
观测云1 小时前
整合安全能力:观测云进一步强化数据价值
安全
行止61 小时前
系统安全及应用
linux·运维·安全
2501_914286491 小时前
系统安全及应用
安全·系统安全
天空之城夢主1 小时前
系统安全及应用
安全·系统安全
半青年1 小时前
Qt读取Excel文件的技术实现与最佳实践
c语言·c++·python·qt·c#·excel