ThinkPHP 6.0.1 漏洞分析(任意文件操作)
漏洞描述2020年1月10日,ThinkPHP团队发布一个补丁更新,修复了一处由不安全的SessionId导致的任意文件操作漏洞。该漏洞允许攻击者在目标环境启用session的条件下创建任意文件以及删除任意文件,在特定情况下还可以getshell。
具体受影响版ThinkPHP6.0.0-6.0.1。
环境准备/tp60/app/middleware.php 文件开启session
去掉se注释session的
12345678910<?php// 全局中间件定义文件return [ // 全局请求缓存 // \think\middleware\CheckRequestCache::class, // 多语言加载 // \think\middleware\LoadLangPack::class, // Session初始化 \think\middleware\SessionInit::class];
tp5/public/index.php 在控制器中加入测试session的代码
1234 ...
Django-数据库操作-未完
Django-数据库操作
在settings.py文件中:
12345678910111213import pymysql # 一定要添加这两行!通过pip install pymysql!pymysql.install_as_MySQLdb()# 修改DATABASES的值DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mysite', 'HOST': '192.168.1.1', 'USER': 'root', 'PASSWORD': 'pwd', 'PORT': '3306', }& ...
Django-笔记-创建
创建项目1django-admin startproject Your_Project_Name
1234567Your_Project_Name/ # 你存放项目的文件夹 manage.py # 命令行工具,可以用来启动Django,等等做很多事 Your_Project_Name/ # 目录是真正的项目文件包裹目录,它的名字是你引用内部文件的包名 __init__.py # 定义包的空文件 settings.py # 项目的主配置文件 urls.py # 路由管理,相当于Flask中自己写的app.route('/'),不过这里统一管理,很方便 wsgi.py # 基于WSGI的web服务器进入点,提供底层的网络通信功能
APP模块添加比如你的项目下有个登陆功能,暂且把这个登陆的模块名叫做login,这个登陆的应用需要你使用命令生成然后进行配置,首先到你创建项目的文件夹下面,使用命令
1python3 manage ...
Python 正则表达式
Python 正则表达式
速查
1234import sysimport rereload(sys)sys.setdefaultencoding('utf-8')
匹配次数
12345678. 匹配任意字符一次* 匹配前面的表达式0/n次+ 匹配前面的表达式1/n次? 匹配前面的表达式0/1次{m} 匹配前面的表达式m次{m,n} 匹配前面的表达式m到n次*? 匹配前面的表达式0次+? 匹配前面的表达式1次
常用语法
12345678910re.S 匹配所有的字符re.I 匹配大小写re.M 多行匹配re.match从头开始匹配re.search全文匹配\d 匹配所有的数字\D 匹配所有的非数字\s 匹配所有的文字\S 匹配所有的非文本[] 字符集合,匹配里面的所有表达式,使用|分开
常用功能创建正则表达式对象
1comp ...
Python执行定时任务
Python执行定时任务python使用内置库和第三方库执行定时任务。
使用 sched 模块sched相当于一个延时处理任务schedule是简单明了的一个第三方定时任务库,需要先pip安装一下一个很好的例子
1234567891011121314151617import scheduleimport time# 定义你要周期运行的函数def job(): print("I'm working...")schedule.every(10).minutes.do(job) # 每隔 10 分钟运行一次 job 函数schedule.every().hour.do(job) # 每隔 1 小时运行一次 job 函数schedule.every().day.at("10:30").do(job) # 每天在 10:30 时间点运行 job 函数schedule.every().monday.do(job) # 每周一 ...
Flash水坑钓鱼
Flash水坑钓鱼
起因
准备
先配置一个马子吧
自解压捆绑文件的利用
上传到服务器
常见用法
起因在网络上看到许多大佬都拿这个钓鱼,而且感觉成功率贼高。未雨绸缪,先测试一下,以后肯定用的到
准备flash官网的钓鱼源码:https://github.com/r00tSe7en/Fake-flash.cn一个服务器一个域名一个马子
先配置一个马子吧
使用常用的CS吧,随便来一个,成功上线
关于免杀,暂时就不了(因为菜)
推荐使用一个好的隐藏方式
自解压捆绑文件的利用捆版木马时碰到一个问题大多捆绑软件本身就会被杀软查杀,所以选择利用winrar实现捆绑。
准备好的木马和flash安装程序
鼠标右键,添加到压缩文件。
点击创建自解压格式压缩文件方法
POP链构造
POP:面向属性编程
基本概念
POP链利用
训练
PHP序列化是什么
serialize() //将一个对象转换成一个字符串unserialize() //将字符串还原成一个对象
序列化:将php值转换为可存储或传输的字符串,目的是防止丢失其结构和数据类型。
反序列化:序列化的逆过程,将字符串再转化成原来的php变量,以便于使用。
简单来说,就是涉及php中的serialize与unserialize两个函数。
通过序列化与反序列化我们可以很方便的在PHP中进行对象的传递。本质上反序列化是没有危害的。但是如果用户对数据可控那就可以利用反序列化构造payload攻击。
铺垫知识示例序列化123456789101112131415161718192021222324<?php class testclass { ...
KNN算法
1、KNN算法概述
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
2、KNN算法介绍
最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。
KNN是通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。