- 博客(268)
- 资源 (1)
- 收藏
- 关注
原创 机器学习(课堂笔记)Day06:PCA与梯度上升法
0x00 PCA 主成分分析法主成分分析法时一个非监督的机器学习算法,主要用于数据降维,通过降维,可以发现更便于人类理解的特征。例如,下图有两种降维的方案:扔掉特征一或者扔掉特征二:右侧的降维方案更好,因为点和点之间的差距更大,区分度跟高,有没有更好的方案呢?如果拟合出一个直线,将所有数据点都映射到该直线上如何找到这个让样本间间距最大的轴?如何定义样本间间距?使用方差:第一步,移动坐标轴,让所有的样本 在每个维度的均值归零,称为demean将方差公
2023-03-17 23:07:40 924
原创 SSRF漏洞总结
0x00 什么是SSRF?服务端请求伪造(SSRF)是指攻击者能够从易受攻击的web应用程序发送精心设计的请求,对其他网站进行攻击(利用一个可发起网络请求的服务当做跳板来攻击其他服务)例如:我在http://localhost:8888/pentest/ssrf/index.php有这样一个存在SSRF漏洞的index.php。即我得到了一个使用curl发起网络请求然后返回客户端并且我可以...
2021-02-14 03:20:09 1369
原创 PHP代码/命令执行漏洞总结
由于没有针对代码中可执行的特殊函数入口做过滤,导致用户可以提交恶意语句,并交由服务器端执行。代码/命令注入攻击中Web服务器没有过滤类似system(),eval(),exec()等函数的传入参数是该漏洞攻击成功的最主要原因。代码注入相关函数:1.mixed eval(string code_str)eval() 把字符串作为PHP代码执行code_str是PHP代码字符串2.bool assert ( mixed $assertion [, string $description
2021-02-04 23:42:38 2415
原创 sql注入万能密码总结
select * from admin where username='' and password =''第一种: 当你已知管理员账号名为admin时可以直接尝试 admin' #select * from admin where username='admin' #'and password=''一些事实:mysql在处理弱类型的时候,比如说非数字开头的字符串和数字相加,字符串会被认为是0证明:非数字开头的字符串和0是相等的数字开头的字符串:也就说:selec
2021-01-30 23:57:17 3716
原创 desc相关注入
{DESCRIBE | DESC} table_name [col_name|wlid]DESCRIBE 提供有关一个表的列信息 col_name 可以是一个 列名或是一个包含 SQL 通配符字符 “%” 和 “_” 的字符 串。desc 表名之后跟列名desc 表名 之后 跟一个不存在的列名:例题:通过目录扫描发现了该站点的一个源文件index.php~因为index.php~ 没有被nginx解析 所以可以看到源代码:mysql中反引号的作用:比如你想要.
2021-01-30 22:45:12 865
原创 order by注入
0x00 一些事实order by 2 并不等于 order by (1+1) 或者order by 1+1order by x+y 或者order by (x+y) 的结果与不加order by的结果是相同的位运算符order by的语法再研究:使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:ORDER BY {列名 [ASC|DESC]} [,...n]ORDER BY 语句默认按照升序对记录进行排序。例如:or
2021-01-29 19:09:56 501
原创 报错注入 与 绕过sql注入检测机制的一点思路
相关的sql函数说明:rand() 用于产生一个0到1之间的随机数floor() 向下取整floor(rand()) 得到的值永远为0floor(rand()*2) 得到的值可能为1可能为0select floor(rand()*2) from 有很多数据的表名有多少条数据就生成多少个0或者1,并且重复执行这句话,结果无法复现但是如果给rand()传入一个随机数种子,比如0,反复执行结果是可以复现,生成的是比较固定的伪随机数:011011001110select co
2021-01-28 11:06:15 569
原创 基于约束条件的SQL注入
0x00 一些事实:(1)select 语句 条件查询时会自动脱去 条件之后的空格。所以查询username=“admin” 与查询username="admin ",得到的结果是一样的(MySQL 和MariaDB都是这样)(2)如果在数据库层面,username字段没有设置为unique,只是通过后端代码效验username 是否数据库中已有的username冲突,以下这种攻击就有可能成功:insert into user (use...
2021-01-27 18:24:21 294
原创 Python3 实现一个简单的反弹shell工具
Server.pyfrom socket import *from time import ctimefrom threading import Threadfrom subprocess import Popen,PIPEHOST = ""PROT = 23335BUFSIZE = 1024ADDR = (HOST, PROT)def send(worker_socket,data): worker_socket.send(data)def worker(worke
2021-01-15 01:23:01 635
原创 python实现一个简单的c段扫描器
0x00 一个简单c段扫描工具import threadingimport timeimport subprocessdef ping(ip): # subprocess.Popen() 创建子进程 # ping -c 2 指定ping的次数 count为2 # 指定bash -c是因为linux中可能有很多shell,bash -c 是为了保证命令使用 bash shell 来执行。c for choose # check = subprocess.Pope
2021-01-14 23:13:11 892
原创 Go语言学习笔记:goroutine、channel
0x00 goroutinego语言协程 coroutine 的实现方式:使用go关键字注意线程切换是操作系统负责实现的,而协程调度是应用程序自己负责调度的协程是非抢占式的多任务处理,由协程主动交出控制权而线程则是抢占式的多任务处理,由操作系统控制线程的运行、就绪、阻塞,只要分给线程的时间片到了,不论线程的任务是否处理完,操作系统都可以直接将运行态的线程添加到就绪队列中正是因为协程是非抢占式的,所以协程切换时需要保存的上下文信息相比于线程更少一个线程中可以开多个协程并发执行pa
2021-01-10 10:35:23 497
原创 广度遍历算法:用go语言实现走迷宫
大体思路:迷宫在逻辑上就是一个四叉树,广度优先算法走迷宫,就是用广度优先算法遍历四叉树即先把1步能走到的点遍历一下,看看这些点种有没有终点,然后把两步能走到的点遍历一下...问题关键其实是确保访问顺序,如何确保顺序呢?因为由很多个点要依次访问,所以我们必须用一个队列或者用一个栈来存放这些待访问的点如果用队列(先进先出)来依次访问这些点,就是广度优先算法,如果用栈(先进后出)来依次访问这些点,就是深度优先算法即从起始点(0步点)得到所有1步能走到的点,然后把所有1步能走到的点入队列
2021-01-06 21:49:16 241
微机原理(学习笔记):第7章 经典接口及定时器
13周上:http://newesxidian.chaoxing.com/live/viewNewCourseLive1?liveId=104929690x00 预备知识输出接口:*上图是一个简化的图,其实一般情况下输出接口不是直接接CPU的,而是接在8259中断控制器上,然后由8259中断控制器统一处理这些中断信号,向CPU发起INTR输出接口向CPU发起中断请求,8086CPU收到中断请求后,运行对应的中断例程,将数据通过低8位数据线写入到输出接口中。OBF状态信号线:输..
2021-01-05 11:10:05 961
原创 微机原理(学习笔记):第6章输入输出技术(车向泉版)
考纲:第10周周四上:http://newesxidian.chaoxing.com/live/viewNewCourseLive1?liveId=10492963程序查询IO方式:无条件传送方式:有一些外设不需要查询它是否忙,直接对它读写,例如:开关、发光二极管、继电器如何读开关的状态呢?设置一个三态门,当我们给三态门加一个有效信号的时候,三态门就将开关的状态输出出来(防止总线竞争)这个有效信号如何生成呢?可以用一个接口地址译码电路 来生成一个信号。也就是说
2021-01-04 15:02:43 1178
原创 QT学习笔记Day04:菜单栏、工具栏、状态栏、图像显示
QMainWindow:0x00 菜单栏:主要用于QMainWindow,QWidget,QDialog也可用QMenuBar 菜单栏,不可缺少QMenu 菜单,文本显示,不处理菜单操作QAction 用来执行菜单动作效果:代码:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMessageBox>MainWindow::MainWindow(QWidget *parent)..
2020-12-23 21:11:20 524
原创 QT学习笔记Day03 文件对话框、颜色对话框、字体对话框、消息对话框、自定义消息对话框、进度条对话框、QToolBox
0x01 文件对话框效果:主要代码://选择文件对话框 //父窗口,标题,从哪个目录开始选文件,设定可以选择的文件 //返回值:选择的文件的绝对路径 QString fileName = QFileDialog::getOpenFileName(this,"选择一个文件","/Users/mac","c++ file (*.cpp);;c file (*.c);;head file(*.h);;all file (*.*)");//另存为文件对话框QStr
2020-12-20 19:21:06 488
原创 Qt学习笔记Day01:Qt入门
0x00 Qt的组成1.Qt编译器 编译C C++代码 集成了gcc g++2.Qt creator 集成编辑器3.资源编译器 rcc4.UI编译器 UIC一个简单的Qt程序Qt Widgets Application 基于窗口的应用程序Qt Console Application 控制台应用程序.pro项目文件,用来规定当前项目的类型、使用什么库、包含的源文件、包含的头文件、搜索目录,一旦.pro文件修改了,就需要重新执行qmake(qmake用来生成makefile文件)
2020-12-17 20:26:36 390
原创 win32:静态库、动态库的编写和使用
目录0x01 静态库0x02 动态库库:功能的提供,只是提供功能,并不是一个程序可执行程序的生成:.exe 可执行程序(windows下) .obj 目标程序(linux下) 将多个obj程序链接在一起就是一个exe预处理:头文件引入、预处理指令的执行 预编译 编译 :语法检查、程序优化、一个.cpp 编译生成一个 .obj 文件(机器语言) 链接:将多个obj链接为一个.exe程序 (也就是将多个cpp合成一个exe程序)如何使用第三方库:第三方库的cpp文件已经安装到了我
2020-12-16 15:56:14 485
原创 win32网络编程(学习笔记):多客户端简单聊天室,实现简易FTP,UDP套接字编程、TCP的11状态
0x00 多客户端简单聊天室思路:主线程循环不断接受客户端连接:创建一个全局数组来保存每次连接主套接字产生的从套接字(为什么要全局数组,为了线程之间通信) 循环调用accept函数接受客户端的连接每个客户端连接上成功后,创建一个线程来负责和这个客户端通信客户端发送给服务器的数据,服务器接受后需要转发给当前连接上服务器的所有客户端客户端需要有两个线程:一个线程循环不断接受用户输入,并发送给服务器 另一个线程循环不断接受服务器发来的数据并显示代码:服务器代码:// Se
2020-12-15 16:24:05 641
原创 win32网络编程(学习笔记):简单的TCP 客户端、TCP服务端
0x01 网络编程的基础1.网络架构:五层网络架构应用层:应用程序传输层:四层交换机 光猫网络层:路由器 三层交换机数据链路层:网桥(淘汰)二层交换机 网卡(一半是物理层)物理层:中继器 集线器七层网络架构:应用层 功能:文件传输 email ftp文件服务器,虚拟终端 协议:ftp tftp http smtp telnet 表示层 功能:数据格...
2020-12-14 20:09:44 1016
原创 LinuxDay01 文件&进程基础
0x01 文件1.文件的基本操作1.1文件描述符号C中对应文件的是 文件指针C++中对应文件的是文件流对象windows 中对应文件的是 文件句柄Linux 文件描述符号(一个整数) 对应 文件标准输入输出设备 在linux上也是文件,他们的文件描述符号分别为0,1,2标准输入设备:0标准输出设备:1标准错误输出设备:2Linux上打开任何一个文件,都会得到一个文件描述符号,如果成功打开,则文件描述符号为正数如果打开失败,则为负数1.2文件操作的函数o
2020-12-14 00:57:50 273
原创 算法与数据结构(Go语言版本)学习笔记Day02: 数组栈、数组队列,链式栈,链式队列,用栈实现深度遍历,用队列实现广度遍历
0x00 递归实现文件夹的遍历思路:写一个读取文件夹的函数:用一个函数读取文件中的所有文件和文件夹,然后遍历所有文件和文件夹,如果是文件,就存起来,如果是文件夹,就再次调用该函数。func GetAll(path string, files []string) ([]string, error) { read, err := ioutil.ReadDir(path) //读取文件夹 if err != nil { return files, errors.New("文件夹不可读取")
2020-12-12 10:21:45 360
原创 日志清除(学习笔记)Day02 Windows入侵日志清除、Linux入侵日志清除、mysql入侵日志清除
0x01 手动清除中间件日志Apache日志:Apache\logsNginx日志:nginx\logs0x02 Windows 入侵日志清除日志对于系统安全的作用是显而易见的,无论是网路管理员还是黑客都非常重视日志,一个有经验的管理员往往能够迅速通过日志了解到系统的安全效能,而一个聪明的黑客往往会在入侵成功后迅速清除掉对自己不利的日志。Windows7的日志文件通常有应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志等等。日志文件通常有某项效劳在后台维护,除了.
2020-12-08 19:52:56 564
原创 日志清除(学习笔记)Day01:IIS日志清除(使用 AIO 与 CleanIISLog)
入侵者在攻击过程或者在被控制计算机上执行的一些操作"痕迹"都会或多或少留在系统中,例如通过SQL注入时,如果Web服务器设置了日志记录,则该日志记录文件将会记录入侵的IP地址、时间、操作等信息,通过这些信息可以进行追踪、判断以及还原攻击过程,是入侵者留下的入侵证据,在网络攻防中习惯称为消除痕迹,也有人称之为"擦屁屁"。AIO是ALLInOne的缩写,它是幻影的多种工具整合,拥有MT的功能,同时还有一些其它功能。AIO中的一个比较实用的功能是使用"AIO-CleanLog"命令来清除系统中的所有日志...
2020-12-08 16:39:38 2059
原创 统计学复习笔记Day01:描述统计
0x00 统计学概述例如:你想要在北京买房,但是你不知道北京房价将来大概在多少,这时你需要预测北京的房价。要预测北京的房价就需要收集北京所有房子的价格信息,显然是难以做到并且具有成本的(你可能需要花钱去买)除此之外,海量的数据是难以理解和交流的这时,就需要对所有房子的价格信息进行抽样和特征提取最后对我们挑选出来的样本 和 特征 进行分析,比方说:我们预测出 不久的将来北京的房价会达到500万。除了预测得出一个确切的值以外,我们还可以预测得出一个区间:比如北京的房价在400万到600万,并给出
2020-12-07 17:04:23 2094
原创 算法与数据结构(Go语言版本)学习笔记Day01:数组、迭代器、栈、用栈+循环模拟递归
0x00 golang 实现数组结构/* * @Author: your name * @Date: 2020-12-05 18:14:16 * @LastEditTime: 2020-12-05 22:35:10 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /learngo/数据结构/ArrayList/ArrayList.go */package
2020-12-07 15:54:06 355
原创 安全牛任务074 web渗透:skipfish
目录0x00 基本使用0x01 身份认证0x00 基本使用skipfish是Google用C语言编写的实验性的主动web安全评估工具skipfish -o test http://1.1.1.1-o 指定将扫描结果放在什么目录下 扫描过程中按Ctrl C 退出,按空格键 查看当前正在扫描的内容skipfish -o 文件夹名 @url.txt 扫描url.txt中的所有url-I 只检查包含'string' 的urlskipfish -o dvwa -I /d.
2020-12-02 15:31:28 278
原创 安全牛任务072 web渗透:扫描工具 nikto
0x00 Httrack将目标网站克隆到本地,减少与目标系统的交互httrack0x01 扫描工具扫描是一定要做的,只是做的方式不同。#niktoperl语言开发的开源web安全扫描器搜索存在安全隐患的文件、服务器配置漏洞web扫描工具的基本原理:写一个字典,然后去请求字典中所有的页面,然后检查服务器返回的响应报文,200存在,404不存在。以前的扫描器只看返回的响应码,但是有些厂商不遵守RFC标准,页面不存在也给你返回一个200,所以,后来扫描工具即便是返回200也会
2020-12-02 11:52:18 321
原创 机器学习(课堂笔记)Day07:多项式回归
0x00 什么是多项式回归线性回归假设数据之间存在线性关系那么当数据之间不存在线性关系时,应该用什么来拟合数据呢? 多项式回归从x的角度来看 y=ax^2 +bx +c 是一个多项式回归但是如果将x^2 看成一个特征 ,x看成另一个特征,那么 y=ax^2 +bx +c 仍旧是一个线性回归编程实现:0x01 scikit-learn中的多项式回归...
2020-12-01 10:54:50 367
原创 Pandas学习笔记Day01:Pandas 数据读取,Pandas数据结构,数据查询
目录0x00 Pandas 数据读取0x01 Pandas 数据结构#产生Series对象的方法#DataFrame0x02 Pandas 数据查询0x00 Pandas 数据读取Pandas需要先读取 表格类型的数据,然后进行分析使用pd.read_csv 可以读取:csv 逗号分隔的文件tsv tab分隔的文件txt 分隔符符随意使用pd.read_excel 可以读取:excel 微软 xls 或者xlsx文件使用pd.read_sql读取 my
2020-11-25 14:52:39 589
原创 机器学习(课堂笔记)Day05:梯度下降法
0x00 什么是梯度下降法梯度下降法不是一个机器学习算法,是一种基于搜索的最优化方法作用:求损失函数的最小值梯度上升法:求效用函数的最大值任取一点,如果该点的导数不为0,那么说明该点一定不是极值点换一个角度理解导数:下图中导数为负值,说明J增大的方向是x轴的负方向,即 J(θ+ dJ/dθ) > J(θ)那么,J(θ-η *dJ/dθ) < J(θ) ,即该点的x值减去该点的导数值 必然是向着函数值减小的方向移动的。至于移动的幅度多大,由η 来决定。η
2020-11-16 10:38:55 798
原创 机器学习(课堂笔记)Day04:线性回归法
0x00 简单的线性回归解决回归问题 思想简单,实现容易 是许多强大的非线性模型的基础 结果具有很好的可解释性 蕴含机器学习中的很多重要思想思路:样本特征 和 样本标记 之间存在线性关系注意:分类问题中,横轴和纵轴都是样本特征,而在回归问题中,纵轴是样本标记,横轴是样本特征因为在回归问题中,样本特征并不是离散的,而是连续的数值,所以不能用不同颜色来表示,只能用一个坐标轴来表示这便是一类机器学习算法的基本思路:所谓建模的过程,其实就是找到一个模型最
2020-11-13 12:27:58 900 4
原创 Go语言学习笔记:第九章 测试与性能调优
0x00 测试Debugging Sucks ,Testing Rocks!传统测试:传统测试的缺点:1.测试数据和测试逻辑混在一起2.出错信息不明确3.一旦一个数据出错测试全部结束表格驱动测试:优点:分离了测试数据和测试逻辑明确的出错信息可以部分失败go语言的语法更容易去实践表格驱动测试...
2020-11-10 22:02:45 269
原创 机器学习(课堂笔记)Day03:kNN算法、分类准确度、超参数、网格搜索、数据归一化
0x00 KNN (k近邻算法)思想:两个样本如果足够相似(该相似性用特征空间中的样本之间的距离来描述)的话,他们就有可能属于同一个类别。因为只看一个样本不够靠谱,所以我们 看和 新样本最近的 k个样本,k个样本中 那种样本最多,我们就认为新样本属于那种类别例如:假设k=3 ,即我们只看和新样本距离最近的3个样本,他们都是蓝色,那么我们推测新样本也很有可能是蓝色比如又来了一个新样本,距离它最近的三个样本,红色:蓝色 = 2:1,红色胜出,所以我们推测新样本很有可能是红色
2020-11-09 14:12:39 850
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人