机器学习笔记
机器学习 小小的俗称一波deeplearning,仅以此文作为笔记,参考课程:
https://www.bilibili.com/video/BV1Pa411X76s?p=66&vd_source=b5a5a804f02900e9715541fac229a727
本文暂不记录任何代码实现,仅记录我对于机器学习过程的直观理解。
0x01 第一课 机器学习入门机器学习分为有监督和无监督学习
有监督学习是输入时就有结果的学习过程
无监督是输入一大堆,让机器自行分类的过程
一、线性回归 输入一大堆数据,通过线性拟合将其趋向整合为一个方程。
输入由x1,x2…xn,y组成的数据集,通过随机初始化w1,w2….wn,使得这一拟合出的直线与样本集的差距尽量小,其差距由代价函数(cost function)量化,如上所示。我们的目标就是不断调整w和b的取值,使得代价函数最小。
注:上图中m为样本数量。
这里提到两个概念,代价函数和损失函数,其中代价函数用 J(w,b) 表示,用于表示整个样本集和当前拟合出曲线的差距。而损失函数 , ...
badusb针对windowsDefender的免杀思路
badusb针对windowsDefender的免杀思路 本实验在windows10版本达成badusb攻击环境的搭建,并达成免杀。
一、cs的基本使用 cs强于msf的关键就在于,msf的攻击程序都默认运行在本机上,攻击者需要在本机上操作,才能达成完整的攻击流程,而这样的要求,对于公网服务器用户是极为不方便的。与之对应的,cs的架构如下:
攻击者团队中的成员可以共享与公网server连接的shell,并通过server控制靶机,这样当攻击者下线后,只要服务器不关闭,shell就一直存在(当然,持久化也能达到同样的效果)。同时,在服务器端需要进行的操作也仅仅是在安装java环境后,开启teamserver服务器,不需要额外的操作。
在服务器端打开后,在客户端启动客户端程序,并与之进行连接即可。这里记录一下优秀的cs下载地址:
https://www.ddosi.org/cobaltstrike-4-5-cracked/
二、免杀思路要达成windows defender免杀,其实有三种思路:
通过设计后门脚本,通过加壳、混淆等方式使得脚本无 ...
shell入门
shell入门教程摘录自菜鸟教程,仅供自行学习加深记忆,请参看:https://www.runoob.com/linux/linux-shell-variable.html
记得写:*#!/bin/bash*
0x01 变量 字母数字下划线,使用赋值语句(不能含有空格):
1your_name="runoob.com"
在使用变量时,可以使用如下方法,效果相等,后者用于字符串拼接场景:
12echo $your_nameecho ${your_name}
使用unset your_name来删除变量。
一、字符串单引号为原样字符串,所有输出均为原样,没有变量和转义。
双引号中可以引入“\”符号作为转义符号,也可以直接插入变量进行拼接。
123456789#使用双引号拼接greeting="hello, "$your_name" !"greeting_1="hello, ${your_name} !"echo $greeting $gr ...
cve-2022-21907分析与复现
cve-2022-21907分析与复现
说实话,我感觉这个漏洞没有exp不是因为没人公开exp,而是这个漏洞压根就是一个拒绝服务漏洞,一个double free还这么苛刻能怎么利用。
还有一件非常重要的事情不是很确定,就是下面复现的这个漏洞到底是cve-2022-21907还是cve-2021-31166呢,似乎互联网上的大部分人都认同cve-2022-21907是一个doublefree的漏洞,其分析也与本文中下文相同,但是方面,极小部分人说这个漏洞应该是一个栈操作的uaf漏洞。其实我个人更偏向后者,也就是实际上下文中复现的漏洞是cve-2021-31166,因为这个漏洞的调用栈和31166都完全一致,同时31166的poc也能在这个漏洞的环境下跑通(那么微软上一个补丁是怎么打的呢,让人费解)。
总的来说,既然cve官方给出的参考链接里,信息也与本文复现结果类似,就暂且认为他是21907吧…
0x01 基本概况 cve-2022-21907为 http.sys 的远程代码执行的漏洞(CVE-2022-21907),攻击者可以在未授权的情况下发出特 ...
常见加密算法逆向特征分析
常见加密算法逆向特征分析 本博文秉持不求甚解的精神,不求理解,只求看出来是什么算法。
此外,本博文在AES、RC4部分有对b站up主:可厉害的土豆 视频的参考,并截取了其中的一些图片,因此本博客并非完全原创。
0x01 仿射加密一、解密脚本先上脚本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293#仿射密码加密与解密实现算法# -*- coding=utf-8 -*-#输入密钥def accept(): k1,k2 = map(int,input('请输入两个密钥(以空格隔开):').split()) while gcd(k1, 26) !=1: k1,k2 = map(int,input('k1和26不互素,请重新输入密钥:' ...
pwn_hctf2016-brop_writeup
pwn_hctf2016-brop_writeup 真能想啊,这rop玩的真是花。
0x01 从源码出发:12345678910111213141516171819202122#include <stdio.h>#include <unistd.h>#include <string.h>int i;int check();int main(void){ setbuf(stdin,NULL); setbuf(stdout,NULL); setbuf(stderr,NULL); //清空标准输入、标准输出、标准错误的缓存内容 puts("WelCome my friend,Do you know password?"); if(!check()){ puts("Do not dump my memory"); }else { puts("No password, no game"); }} ...
pwn_格式化字符串漏洞
pwn_格式化字符串漏洞初步格式化字符串漏洞指的是在类似于:
123char test[100];scanf("%s", test);printf(test);
这样的漏洞其核心就在于,printf函数的错误使用使得攻击者可以输入带有格式化字符串的内容,导致内存的泄露,可能造成任意读,任意写的结果,影响巨大。
0x01 格式化字符串语法基础一、常见语法c语言中常见的格式化输出:
%d - 十进制 - 输出十进制整数
%s - 字符串 - 从内存中读取字符串
%x - 十六进制 - 输出十六进制数
%c - 字符 - 输出字符
%p - 指针 - 指针地址
%n – 把前面打印过的字符长度输出到指定地址
%N$ - 第 N 个参数
二、危险函数容易出现漏洞的函数:
函数
基本介绍
printf
输出到 stdout
fprintf
输出到指定 FILE 流
vprintf
根据参数列表格式化输出到 stdout
vfprintf
根据参数列表格式化输出到指定 FILE 流
sprintf
输出到字符串
snp ...
ROP学习笔记
ROP学习笔记参考,搬运:https://ctf-wiki.org/pwn/linux/user-mode/stackoverflow/x86/仅作个人学习使用!
0x01 基本ROP0、寻找危险函数通过寻找危险函数,我们快速确定程序是否可能有栈溢出,以及有的话,栈溢出的位置在哪里。常见的危险函数如下
输入
gets,直接读取一行,忽略’\x00’
scanf
vscanf
输出
sprintf
字符串
strcpy,字符串复制,遇到’\x00’停止
strcat,字符串拼接,遇到’\x00’停止
bcopy
1、ROPROP(Return Oriented Programming)
基本思想:栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程。
2、每部分思路记录ret2text: 开了nx保护(不可执行),可以寻找系统函数和字符串,覆盖返回地址构造执行;
ret2shellcode: 什么保护都没有,可以使用gdb的vmmap查看权限,发现bss可执行,直接构造shellcode注入 ...
pwn入门之got和plt表
pwn入门之got和plt表 本文摘自:https://linyt.blog.csdn.net/?type=blog CSDN博主「海枫」博客,感谢大佬详细的教程,仅供个人学习使用,请参考原文:
https://blog.csdn.net/linyt/article/details/51635768https://blog.csdn.net/linyt/article/details/51636753https://blog.csdn.net/linyt/article/details/51637832https://linyt.blog.csdn.net/article/details/51893258
0x01 什么是got&plt表
简单的说,调用系统函数时,调用语句并不直接指向glibc,而是指向plt表中该函数的地址,plt表中该函数中记录了一句jmp指令,指令的参数为got表中的值。最后,通过plt表的跳转,跳到glibc的实际位置进行调用。
那么,plt表就是与函数调用相映射的跳板,用于跳到glibc的函数;而跳板需要一个地图,记录gl ...
CVE-2022-0847内核提权漏洞分析复现
CVE-2022-0847内核提权漏洞分析复现
翻译翻译:
A flaw was found in the way the “flags” member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe and push_pipe functions in the Linux kernel and could thus contain stale values. An unprivileged local user could use this flaw to write to pages in the page cache backed by read only files and as such escalate their privileges on the system.
就是有一个pipe结构中,有一个flag成员,他初始化的时候调用了copy_page_to_iter_pipe、push_pipe两个函数,这两个函数有可能不 ...