Python武器库
第一章 Python 基础
前言
以Python为主,渗透测试课程中Python编程的利用。
1.为什么学Python(渗透+应急)
- 网络扫描脚本
- 自定义漏洞开发
- 密码破解脚本
- WEB应用测试(SQL注入等)
- 流量包嗅探
- 社工等
- 配置管理自动化
- 安全自动化
- 密码管理
- 安全监控等
- 身份验证授权等
2.Python特点
- 跨平台(Windows、Linux、Mac等具有编译环境的系统下都可以执行)
- 解释型(在程序运行的时候就对程序进行解释运行,无编译)
- 脚本语言(类似于一个剧本,导演了一个序列事件的发生,简化重复性任务或流程,并可以在计算机上运行,而无需人工干预)
- 动态语言(在运行时可以改变变量类型、hansh)
- 默认UTF-8编码
3.初次尝试
VIM:文本编辑器
更少的干扰、命令行界面(可以直接在vim上面写脚本)
配置VIM
1.创建文件夹:Python_code
2.创建.vimrc的文件
在界面上配置好如下代码::wq保存退出
set nocompatible
set number
set nowrap
set showmatch
set scrolloff=3
set encoding=utf-8
set fenc=utf-8
set mouse=a
set hlsearch
syntax on
au BufNewFile,BufRead *.py
set tabstop=4
set softtabstop=4
set shiftwidth=4
set textwidth=79
set expandtab
set autoindent
set fileformat=unix
hello world
- 创建hello.py文件:vim hello.py
- 编写代码:
- 运行代码:python hello.py或者./hello.py(文件非可执行文件,需要给文件增加权限 )
print('hello world')
圆的面积
#!:hashbang或者shebang,指示应用哪个解释器处理文件
4.变量
数据类型与变量
None:空对象
bool:True 1 和 False 0、空
保留字:关键字;keyword(先import;keyword.kwlist)
内置函数:函数库
变量:要更好的处理数据,需要变量代表或者引用某个值。python是弱变量,不需要声明数据类型。python解释器会自动判断,或者type()函数也可以。
驼峰命名、下划线命名
5.空行和缩进
空行:方便阅读和代码维护;非语法
缩进:相同缩进距离是同一代码块;语法
单行代码;太长了用 \ 断行
6.字符串
单引号、双引号、\(去除引号标识字符串的作用,转义字符)
字符串的属性和方法
属性没括号,方法有括号
count(): 统计字符串某个字符的个数
split():切割函数,将字符串切割成列表。默认按空格
strip():默认删除字符串首尾的字符
upper() lower():大小写转换
__len()__和len():求长度
7.运算符
算数运算符(回去看数学课本)
比较运算符:== 和= 一定要分清楚
==:比较对象是否相等;
=:赋值!!!
赋值运算符:
+= -= /= *=等
逻辑运算符:
and or not
成员运算符:
in:在指定的序列中找到值
not in:找不到值
身份运算符:
is: 判断两个标识符是不是引用一个对象
is not
8.判断与循环
判断
if……else
循环
for循环 常用语遍历
while循环
break关键字:满足条件终止循环
continue关键字:满足条件跳过此次循环
9.命令行参数
-H help url 等
10.模块
__name__和__main__
通过python运行,__name__的值是__main__
通过包的方式运行,__name__的值是文件名
引入模块的方式
import XXXXX 引入整个包
from XXX import XXX 引入包中的某个模块
from XXX import XXX as X 模块别称
模块的搜索路径
11.包
模块的组合成了包,python具有大量的包,提供了包管理工具 pip
pip常用命令:
12.列表
列表是一种有序的集合
13.元组
元组tuple是不能改变的列表
14.集合
集合set是无序不重复的列表。
定义
集合的运算
15.字典
dict是无序键值对集合。{key:value},key值必须是唯一的,才能从字典中使用key获得对应的value值。
16.数据类型转换
17.函数
同一程序多次重复使用代码。函数有参数和返回值,在函数内部对参数进行处理,并把处理结果返回给调用者。
定义
返回值
调用
18.函数的作用域
局部变量
全局变量
19.函数参数
必选参数
位置参数,可按照顺序进行传参或者参数名传参
默认参数 
可变参数
数量不固定,可以改变
关键字参数
允许传入0个或者多个带参数名的参数
20.文件处理
使数据持久化和获取配置的主要方式。
I/O
input
open/close
对文件的打开和关闭
读取文件内容
写入文件
json序列化
字典变成文件就是序列化的过程
csv文件读取
21.异常处理
总结
以上就是要讲的内容,本文仅仅简单介绍了python的基础内容,而得基础者得天下,基础扎实更方便后续学习。