Python编程规范
该文章持续更新中…
编码介绍
在无特殊情况下,文件一律使用UTF-8编码,文件头加入#-*-coding:utf-8-*-标识
代码示例
1234#-*-coding:utf-8-*-import xxx...
命名变量命名介绍
在Python编程中对变量进行命名时,单个单词全部小写,多个单词时使用蛇形命名法
蛇形命名法
单词全部小写,每个单词使用下划线进行连接
12guest_username = "user1" # 游客用户名guest_password = "123456" # 游客密码
代码示例
12345678910111213# 规范命名username = "admin"password = "123456"guest_username = "user1" # 游客用户名guest_password = "123456" # 游客密码global_username = "admin" # 全局变量名以globa ...
Python3进阶-装饰器
基本概念语法糖介绍
语法糖是指计算机语言中的某种特殊语法,该语法对语言的功能没有任何影响
语法糖不会增加或减少任何功能,它只是对程序更便捷、易读的一种写法
语法糖可以完全等价地转换为非原本语法糖的代码
代码示例
语法糖在不影响代码功能的情况下对初始代码进行一种更便捷的写法
123456789# 初始代码users = []for i in range(1,10): if i % 2 == 0: users.append(i)print(users)# 结果[2, 4, 6, 8]
123456# 语法糖users = [i for i in range(1,10) if i % 2 == 0]print(users)# 结果[2, 4, 6, 8]
闭包介绍
在内部函数中对外部作用域的变量进行引用,并且一般外部函数的返回值为内部函数,那么内部函数就被称之为闭包,外部函数就被称为闭包生成函数
闭包中不能修改外部函数的局部变量
语法
123456# 在外部函数中定义了一个内部函数,内部函数访问了外部函数的变量,并且外部函数返回值为内部函数def 外部函数(x): ...
Python3基础
该文章持续更新中…
环境声明
系统: Windows10家庭中文版
硬件: 16G内存、8核CPU
Py版本: 3.7.6
编辑器: PyCharm 2021.1(Community Edition)
变量介绍
所谓的变量就是存储数据的一个容器
命名规范
在Python中变量名只能包含字母、数字、下划线
变量名不能以数字开头
不能使用Python中的关键词命名(如: list、for等)
变量名要有意义
尽量使用蛇形命名来定义变量名
示例代码普通命名
123456789# 不规范命名(在项目中不使用,学习中少用)a = "小明" # 姓名b = "男" # 性别c = 13 # 年龄# 规范命名name = "小明" # 姓名sex = "男" # 性别age = 13 # 年龄
蛇形命名
单词全部小写,每个单词使用下划线进行连接
12guest_username = "user1" # 游客用户名guest_password = " ...
Centos7部署FTP服务
环境声明服务器
系统: Centos7.4
IP地址: 192.168.132.111
网卡模式: 桥接模式
软件版本: vsftpd-3.0.2-22 | pam-1.1.8-18 | pam-devel-1.1.8-18
环境部署服务安装1yum install vsftpd -y
常用配置项123456789101112# 允许匿名登录anonymous_enable=YES# 匿名用户根目录anon_root=/var/ftp/pub# 允许匿名用户上传文件anon_upload_enable=YES# 允许匿名用户创建文件夹anon_mkdir_write_enable=YES# 开放匿名用户其他权限(命名名、删除等)anon_other_write_enable=YES# 匿名用户上传的文件的umask值anon_umask=022
1234567891011121314151617181920# 允许本地用户登录ftplocal_enable=YES# 本地用户的ftp根目录local_root=/var/ftp# 将用户权限禁锢在FTP目录内 (不让访问其他目录 ...
Centos7部署远程登录服务
环境声明服务器
系统: Centos7.4
IP地址: 192.168.132.111
网卡模式: 桥接模式
软件版本: openssh-7.4 | telnet-server-0.17-64 | xinetd-2.3.15
客户端
系统: Centos7.4
IP地址: 192.168.132.200
网卡模式: 桥接模式
SSH服务基本配置修改配置文件/etc/ssh/sshd_config,修改完成后重启服务并将防火墙放行即可
123456789101112131415161718# 监听端口Port 22# 监听IPListenAddress IP地址# 是否允许root用户登录PermitRootLogin yes|no# 是否启用口令(密码)登录PasswordAuthentication yes|no# 仅允许指定IP登录AllowUsers IP地址# root用户仅允许指定IP登录AllowUsers root@IP地址
在客户端通过ssh服务登录服务器,如默认端口不为22时可使用-p参数指定端口号
1234# 放行ssh服务firewall-cmd --z ...
Centos7部署Apache服务
环境声明服务器
系统: Centos7.4
IP地址: 192.168.132.111
网卡模式: 桥接模式
软件版本: httpd-2.4.6-67 | openssl-1.0.2 | Bind9.9.4
环境部署服务安装1yum install httpd -y
配置文件
文件路径
文件说明
/etc/httpd/conf/httpd.conf
主配置文件
/etc/httpd/conf.d/
子配置文件目录
/var/www/html/
默认Web根目录
/var/log/httpd/
日志存放目录
常用配置项基本配置12345678910111213141516171819202122# 指定监听端口Listen 端口Listen IP:端口# 指定管理员邮件地址ServerAdmin 邮件地址# 指定服务名(域名)ServerName 域名:端口# 指定主页文件(如index.html)DirectoryIndex 文件1 文件2# 指定子配置文件的目录与后缀IncludeOptional 目录/*.后缀名# 指定运行服务的用户与用户 ...
Centos7部署DNS服务
环境声明主DNS环境
系统: Centos7.4
IP地址: 192.168.132.111
网卡模式: 桥接模式
软件版本: bind-9.9.4-50
辅助DNS环境
系统: Centos7.4
IP地址: 192.168.132.100
网卡模式: 桥接模式
软件版本: bind-9.9.4-50
客户端环境
客户端: Centos6.5
客户端IP: 192.168.132.120
网卡模式: 桥接模式
环境部署服务安装1yum install bind bind-chroot -y
配置文件
文件路径
文件说明
/etc/named.conf
主配置文件
/etc/named.rfc1912.zones
区域文件
/var/name/
用来存放解析文件等
/var/name/named.localhost
本地主机解析库
记录类型
记录类型
作用
A记录
将域名指向一个IPv4地址
CNAME记录
将域名指向另一个域名,实现与被指向域名相同的访问效果
MX记录
将域名指向邮件服务器地址(用于电子邮件服务) ...
Centos7部署DHCP服务
环境声明服务器
系统: Centos7.4
IP地址: 192.168.132.111
网卡模式: 桥接模式
软件版本: DHCP-4.2.5-58
客户端
系统: Centos6.5
网卡模式: 桥接模式
环境部署安装服务1yum install dhcp -y
配置文件
文件路径
文件说明
/etc/dhcp/dhcpd.conf
DHCP配置文件
/usr/share/doc/dhcp*/dhcpd.conf.example
DHCP示例配置文件
地址划分项目要求
DHCP范围: 192.168.132.10~20/24
DHCP网关: 192.168.132.1
DNS地址: 192.168.132.111
服务配置
将dhcp配置示例文件复制为/etc/dhcp/dhcpd.conf(覆盖),修改dhcp配置文件
12cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.confvim /etc/dhcp/dhcpd.conf
123456789ubnet 192 ...
Web安全漏洞合集
该文章持续更新中…
SQL注入介绍
SQL Injection(SQL注入) ,SQL注入是发生在Web程序中数据库层的安全漏洞,主要原因是程序对用户输入的数据的合法性没有判断和处理,导致攻击者可以在Web程序中事先定义好的SQL语句中添加额外的SQL语句(如查询、修改、增加等),实现欺骗数据库从而执行非授权的任意查询。
基础
注入常用套路
盲注常用套路
漏洞复现
DVWA-SQL注入
DVWA-SQL盲注
Pikachu-SQL注入
XSS介绍
XSS-DOM,DOM型XSS指的是通过恶意脚本修改页面的DOM结构,时纯粹发生在客户端的攻击。DOM型XSS攻击中取出和执行的代码由浏览器完成,属于前端JavaScript自身的安全漏洞。
XSS(Reflected) 反射型XSS, 反射型XSS一般需要诱导用户去访问一个包含恶意代码的URL,当受害者点击URL后恶意代码会在直接在受害者的浏览器上执行,一般用于窃取Cookie或钓鱼欺骗等。反射型一般出现在搜索栏、登录口等地方
XSS(Stored) 存储型XSS,存储型XSS也叫持久型XSS,主要将XSS代码提 ...
Git信息泄露复现
复现漏洞前建议先学习一下Git基础再去复现,这样才会理解漏洞利用原理
漏洞介绍漏洞形成
在运行git init命令初始化仓库时会在工作目录下产生一个名为.git的文件夹,该文件夹是Git用来存储代码变更记录等。在没有删除该文件夹时就对代码进行发布,这就导致了.git目录泄露,可以利用该文件夹对源代码进行恢复
漏洞原理
通过泄露的.git文件夹下的文件,还原重建工程源文件
解析.git/index文件,找到工程中所有的文件名、文件sha1
去.git/objects文件夹下下载对应的文件
zlib解压文件,按原始的目录结构写入源代码
GitHack项目介绍
GitHack是一个git泄露测试脚本,可以通过泄露的文件重建还原工程源代码,代码运行在Python2
工作原理
尝试获取packs克隆
尝试历遍所有克隆
尝试从缓存文件index、commit记录中恢复
用法示例下载GitHack
12345# Github下载(较慢)git clone https://github.com/BugScanTeam/GitHack.git# 镜像Github下载(国内加速)git c ...