自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 V2board 1.6.1 提权漏洞(web缓存投毒)

前端的认证方式后端并没有进行区分,导致前端认证方式和后端认证方式被同一个健全接口所利用,而这个健全接口没有去区分到底是普通用户还是管理员,从而产生了此漏洞。用户自己注册一个账户,通过访问如下这样一个curl来进行获取我们的认证信息(其中邮箱和密码是自己注册时的邮箱和密码)通过burpsuite进行抓包,修改Request请求包中的内容。在gethub中直接拉去docker镜像。拷贝这个认证信息,并替换到如下数据包中。

2023-06-01 19:26:38 1110

原创 文件上传漏洞靶场

我们可以通过一个线程不间断的访问,一个线程不间断的上传,此时肯定会出现在上传未删除的时候,上传的文件被我们访问到。所有过滤的后缀名如下:"php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess";从而实现了文件上传。

2023-05-02 09:56:03 1563

原创 文件上传漏洞 --- php邂逅windows通用上传缺陷

php5.2.17+IIS环境,可以下载phpstuday2018来满足环境的要求。

2023-04-11 23:44:32 701 1

原创 15个awk的经典实战案例

可以取得日志中的时间字符串部分,再将它们的年、月、日、时、分、秒都读取出来,然后放入nktim()构建对应的epoch值。FPAT可以收集正则匹配的结果,并将它们保存在各个字段中。(就像grep匹配成功的部分会加颜色显示,而使用FPAT划分字段,则是将匹配成功的部分保存在字段$1 $2 $3...中)进行划分,然后将uid=xxx保存再数组当中,这是判断重复的依据,然后统计uid出现次数,第一次出现统计,第二次不统计。grep/sed/awk用正则去筛选日志时,如果要精确到小时、分钟、秒,则非常难以实现。

2023-03-26 20:24:33 2321 1

原创 Linux文本三剑客(grep、sed、awk)

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红)。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响源原文件内容。

2023-03-20 19:36:34 2344

原创 原型链污染概念的补充

3、Number对象的constructor属性值是Number方法,通过Number方法构造出的b,与a的属性相同,因为constructor属性,可以返回构造该对象的来源。Function( )构造器可以构建一个Function对象,可以直接调用Function()构造器动态的创建函数。2、Number对象的constructor属性和变量a的constructor属性一样,可见a的原型链的上级和constructor属性是包含关系。1、变量a的原型链的上级是Number对象(a.__proto__)

2023-03-16 18:02:59 386

原创 原型链污染 --- 2022.04ctf

所以我们需要去修改devSettings.root的属性,网上追溯,如果要走到这个流程,必须改使得checkHost( )的值为ture,才能够进入merge方法中,对devSettings对象的值进行修改。JavaScript中,数组的下标可以用字符或是字符串数字来取值,所以在原型链中,我们可以给[ ]对象添加一个名称为1的属性,这样temp再通过下标1取值的时候,实际上取到的是数组中属性为1的值。接下来要做的,就是继续去替换devSettings.root的值了,替换body中的即可。

2023-03-15 22:57:35 580

原创 原型链污染 --- Code-Breaking 2018

我们知道,row,col,data都是可控的,所以我们可以给row传递__proto__,col传递"admintoken",data传递"sunsec"。而我们的usr是一个空对象,此时usr会继承原型链的Object.admintoken,因此usr.admintoken = sunsec。这道题获取flag的条件是传入的querytoken要和user数组本身的admintoken的MD5值相等,且二者都要存在。也就是下面这段代码。data,row,col,都是我们post传入的值,都是可控的。

2023-03-14 15:23:00 128

原创 原型链污染

由于__proto__是任何对象都有的属性,而js里万物皆对象,所以会形成一条__proto__连起来的链条,递归访问__proto__必须最终到头,并且值是null。当js引擎查找对象的属性时,先查找对象本身是否存在该属性,如果不存在,会在原型链上查找,但不会查找自身的prototype。所有类对象在实例化的时候将会拥有prototype中的属性和方法,这个特性被用来实现JavaScript中的继承机制。

2023-03-13 20:34:43 188

原创 svg的深度利用绕过waf

svg的深度利用绕过waf

2023-03-09 18:41:54 473

原创 深入理解浏览器解析机制和XSS向量编码

同样的,如果Unicode转义序列\u000A出现在Java程序的字符串常量中,它同样会被解释为行结束符(换行符),这在字符串常量中是不被允许的 --- 如果需要在字符串常量中表示换行,需要用\n来代替\u000A。同样地,ECMAScript程序中,在字符串常量中出现的Unicode转义序列会被当作字符串常量中的一个Unicode字符,并且不会被解释成有可能结束字符串常量的换行符或者引号。总的来说,四轮解码操作被完成,顺序是HTML,URL,JavaScript和URL。在HTML中,某些字符是预留的。

2023-03-07 20:42:09 383

原创 XSS Payload在浏览器的各种解码问题

因此,在""和“”的内容中不会创建标签,就不会有脚本能够执行。经过HTML解码后为"",返回的结果是:The javascript will not execute and the character entities will not be decoded either.在 : 前面经过HTML解码后为"javascript",后面经过urlcode解码之后为"alert(2)",返回的结果是:The javascript will execute.

2023-03-07 19:28:45 653

原创 xss靶场绕过

首先尝试在标签中的name属性传递参数来观察,看哪个标签的有数据显示,看到的t_sort出现数据,但是仔细观察会发现,我们传递的" onclick=alert(1) type="text"参数中,双引号没有和前面的双引号发生闭合,因此我们需要找其他方式,使用火狐的hackbar插件,对t_ref属性进行传参,发现参数可以显示出来,因此再次尝试" onclick=alert(1) type="text",结果不出意料,实现弹窗。

2023-03-06 21:16:07 1434 2

原创 nginx负载均衡下的webshell上传

因为我们是反向代理的负载均衡,就存在上传文件出现一台后端服务器上有我们上传的文件,另一台服务器上没有我们上传的文件,出现的结果就是,一旦一台服务器上没有,那么在请求轮到这台服务器的时候,就会报出404的错误,从而影响使用,这也就是一会出现正常,一会出现错误的原因。当我们上传一个较大的文件时,由于AntSword上传文件时,采用的是分片上传方式,把一个文件分成了多次HTTP请求发送给目标,造成文件的一部分内容在A这台服务器上,另一部分文件在B这台服务器上,从而使得较大的工具或者文件无法打开或者使用。

2023-02-14 00:22:40 512

原创 nginx_host绕过

创建ca文件存放证书密钥文件生成私钥以及证书的请求文件最终生成crt证书文件。

2023-02-10 01:48:03 1677

原创 nginx的高可用---Keepalived

10、由于安装keepalived时,是自定义的安装位置,因此需要拷贝一些文件在系统目录中。9、由于安装keepalived时,是自定义的安装位置,因此需要拷贝一些文件在系统目录中。12、只有当主设备宕机后,从设备才能启用,此时主设备已经宕机,检测VIP是否生效。3、进入解压后的keepalived目录并构建环境,然后进行编译安装。4、进入解压后的keepalived目录并构建环境,然后进行编译安装。6、编辑从机的keepalived.conf核心配置文件,如下。一、centos安装keepalived。

2023-02-06 21:26:25 1467

原创 HTTPS、SSH共享端口的--工具SSLH

安装 SSLH 时,将提示你是要将 sslh 作为从 inetd 运行的服务,还是作为独立服务器运行。另一方面,如果有很多连接,sslh 应作为独立服务器运行,以避免为每个传入连接生成新进程。–ssl 127.0.0.1:443:将 HTTPS/SSL 流量路由到本地的 443 端口。–listen 0.0.0.0:443:SSLH 监听于所有可用接口的 443 端口。然后,向下滚动一点并修改以下行以允许 SSLH 在所有可用接口上侦听端口 443。–user sslh:要求在这个特定的用户身份下运行。

2023-02-02 19:52:44 1117

原创 iptables端口复用_远程操控

目的:如果发现SYN包的来源IP处于jack列表中,将直接转到HTTP_SSH_PORT链上进行处理,有效时间为3600秒。缺点:如果目标在内网,有可能无法直接 ping 到它,原因可能存在对方使用防火墙将ping直接关闭。目的:如果接受到一个长为1139的ICMP包,则将来源IP添加到为jack的列表中。目的:如果收到一个长为1140的ICMP包,则将来源IP从jack列表中去掉。此时使用80端口进行远程连接,实现了80端口在22端口的复用,且成功连接。此时使用80端口,进行远程连接将无法连接成功。

2023-02-02 16:31:13 295

原创 HTTPS头部的Referer字段

Referer请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用Referer 请求头识别访问来源,可能会以此统计分析、日志记录以及缓存优化等。注。

2023-01-09 20:30:51 1094

原创 XMLHttpRequest对象

对象发出 HTTP 请求,得到服务器返回的数据后,再进行处理。现在,服务器返回的都是 JSON 格式的数据,XML 格式已经过时了,但是 AJAX 这个名字已经成了一个通用名词,字面含义已经消失了。AJAX(Asynchronous JavaScript and XML )的缩写,指的是通过JavaScript的异步通信,从服务器获取XML文档中提前去数据,在更新当前网页的对应部分,再。用户在浏览器地址栏键入一个地址,或者通过网页表单向服务器提交内容,这时浏览器会向服务器发出HTTP请求。

2023-01-09 17:00:58 335

原创 HTTPS协议的原理 --- RSA密钥协商算法

一般 WITH 单词前面有两个单词,第一个单词是约定密钥交换的算法,第二个单词是约定证书的验证算法比如上面的密码套件的意思就是:由于 WITH 单词只有一个 RSA,则说明握手时密钥交换算法和签名算法都是使用 RSA;握手后的通信使用 AES 对称算法,密钥长度 128 位,分组模式是 GCM;摘要算法 SHA256 用于消息认证和产生随机数。

2023-01-02 20:00:18 1363

原创 安全-js的bind方法

方法每运行一次,就返回一个新函数,这会产生一些问题。比如,监听事件的时候,不能写成下面这样。回调函数是 JavaScript 最常用的模式之一,但是一个常见的错误是,将包含。还有一种情况比较隐蔽,就是某些数组方法可以接受一个函数当作参数。这样会导致无法取消绑定,所以下面的代码是无效的。方法,可以改写一些 JavaScript 原生方法的使用形式,以数组的。里面,按照指定的开始位置和结束位置,切分出另一个数组。还可以接受更多的参数,将这些参数绑定原函数的参数。的对象,下面是一个更清晰的例子。

2022-11-22 21:16:09 606

原创 安全-js的apply方法

方法的参数都是对象,但是返回结果都是数组,这就起到了将对象转成数组的目的。从上面代码可以看到,这个方法起作用的前提是,被处理的对象必须有。方法)不仅绑定函数执行时所在的对象,还会立即执行函数,因此不得不把绑定语句写在一个函数体内。第二个参数则是一个数组,该数组的所有成员依次作为参数,传入原函数。唯一的区别就是,它接收一个数组作为函数执行时的参数,使用格式如下。因此,遍历内部元素的时候,会得到不同的结果。前面的按钮点击事件的例子,可以改写如下。方法,就可以返回数组的最大元素。方法中,必须以数组形式添加。

2022-11-22 21:07:55 524

原创 安全-js的call方法

的动态切换,固然为 JavaScript 创造了巨大的灵活性,但也使得编程变得困难和模糊。的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数。方法的参数是一个原始值,那么这个原始值会自动转成对应的包装对象,然后传入。对象继承的方法,如果这个方法一旦被覆盖,就不会得到正确结果。所要指向的那个对象,后面的参数则是函数调用时所需的参数。方法的参数,应该是一个对象。关键字,如果指向全局对象,返回结果为。方法的一个应用是调用对象的原生方法。,不是对象,会被自动转成包装对象(

2022-11-22 21:02:00 409

原创 安全-js的this关键字使用

this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。前一章已经提到,this可以用在构造函数之中,表示实例对象。除此之外,this还可以用在别的场合。但不管是什么场合,this都有一个共同点:它总是返回一个对象。简单说,this就是属性或方法“当前”所在的对象。上面代码中,this就代表property属性当前所在的对象。下面是一个实际的例子。上面代码中,this.name表示name属性所在的那个对象。由于this.name是在describe。

2022-11-22 20:57:16 88

原创 安全-反射性xss基础注入

题目中明确说明不能出现以下关键字(script|document|cookie|eval|setTimeout|alert),因此就将这些字符串进行拼接,在javascript中拼接字符串可以直接使用+,但是在url地址栏中,+会被url转义为空格,因此需要将+进行urlcode编码。其他原因与上次的题目相同。2、下面代码是通过正则表达式,将get上传的参数进行了过滤,将" ( ", " ) ", " & ", " \\ ", " < ", " > ", " ' "这些符号进行了替换,替换结果为空。

2022-11-08 21:09:26 327

原创 安全-反射性xss基础注入

2、下面代码是通过正则表达式,将get上传到的参数进行了过滤,将" ( ", " ) ", " & ", " \\ ", " < ", " > ", " ' "这些符号进行了替换,替换结果为空。因此()被过滤掉了。onerror是javascript的函数遵循的javascript的语法,在javascript的语法当中,符号是不能进行编码的,因此%28和%29是无法解码的,因此无法弹窗。想通过对()进行urlcode编码的方式绕过正则表达式的过滤,实现弹窗,不使用其他编码是因为都被正则表达式过滤掉了。

2022-11-08 19:47:42 1320

原创 MySQL索引以及视图

【代码】MySQL索引以及视图。

2022-10-26 17:45:41 1216

原创 MySQL docker安装及测试

docker run -di --name=m1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=docker001 mysql:5.7 #创建mysql容器。(docker下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/)systemctl start docker #启动docker。(1)开启docker容器。

2022-10-24 17:05:44 1326

原创 MySQL多表查询

【代码】MySQL多表查询。

2022-10-24 16:33:35 17340 20

原创 MySQL单表查询

【代码】MySQL单表查询。

2022-10-24 15:38:41 2190

原创 数据库基础一

【代码】数据库基础一。

2022-10-19 19:49:46 1398

原创 Liunx下MySQL的安装

sftp [email protected] #Linux主机的IP地址,执行后输入密码即可登录。systemctl start mysqld #启动mysql数据库。然后切换到需要上传文件所在的文件夹,通过put命令上传文件。mysql -uroot -p #执行后输入第五步得到的密码。set password=password('密码');(3)从Windows上上传以下文件,并依次安装。(6)更新mysql数据库目录的属主属组。(2)安装mysql所需要的工具包。put (文件名称)

2022-10-17 17:44:36 392

原创 MySQL的安装

第一阶段-----人工管理阶段:在20世纪50年代中期以前,这个阶段如果要使用和进行数据计算,需要程序开发人员自己设计程序,没有相应的软件系统负责数据管理工作。应用程序中不仅要规定数据逻辑结构,还要设计物理结构,包括存储结构、存取方法、输入方式等。程序员负担非常重,非程序员无法使用计算机系统。第二阶段-----文件系统阶段:这个时期大约从20世纪50年代后期到60年代中期,这个阶段里数据组织成独立的数据文件,按文件名访问,按记录进行存取的方式进行数据管理,由文件系统提供文件打开、关闭、读写和存取。

2022-10-17 17:43:04 671

原创 XSS绕过案例---使用<svg>或者<tabindex>

在script标签内的JS执行完毕以后,DOM树才会构建完成,接着才会加载后面的内容,然后发现加载内容出错才会触发error事件。我们先一步步调试查看值的情况,通过断点调试,我们发现src作为第一个属性进入后被删除了,剩下的属性onerror仅一位,但是循环次数大于字符串个数时就不能删除了属性了。但是却发现src=1的属性被删除了,οnerrοr=alert(1)属性却还保留着,这是为什么呢?我们发现在a数组下,我们仅取出来了3个值,在预期中我们应该取出6个值,这就是应该边循环边删除的原因造成的。...

2022-08-05 12:43:05 277

原创 XSS的基础以及一些编码问题

跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息,本文将介绍XSS的两种类型,反射型跨站脚本攻击、DOM型和存储型跨站脚本攻击的示例和基本原理;

2022-08-02 13:38:39 474

原创 Python基础

整型,整数例如2、float浮点型,小数例如3、complex复数例如4、bool布尔真或者假TureorFalse(一般是用于逻辑判断)5、None空类型什么都没有,但也是一种类型(当一个类型不能确定时,用空类型)6、bytes字节(计算机底层的一种存储方式)7、str(string)字符串python中没有字符的概念例如a,abc=>字符串8、tuple元组(数组一样的结构)形式特点。...

2022-07-27 14:35:42 347

原创 正则表达式

匹配任意单个字符,不能匹配空行[]匹配指定范围内的任意单个字符[^]取反[alnum]或[0-9a-zA-Z][alpha]或[a-zA-Z][upper]或[A-Z][lower]或[a-z][blank]空白字符(空格和制表符)[space]水平和垂直的空白字符(比[blank]包含的范围广)[cntrl]不可打印的控制字符(退格、删除、警铃...)[digit]十进制数字或[0-9][xdigit。...

2022-07-26 14:00:40 1410

原创 binlog的使用以及iptables防止nmap扫描

接着执行一次刷新日志索引操作,重新开始新的binlog日志记录文件。按理说mysql-bin.000002这个文件不会再有后续写入了,因为便于我们分析原因及查找ops节点,以后所有数据库操作都会写入到下一个日志文件。删除dropdatabaesxiaoyu这条命令。分析binlog文件中,是哪个命令语句出了问题。上配置这些命令可以有效阻止nmap扫描。备份最后新建成的binlog文件。开启binlog日志功能。查看member表数据。...

2022-07-17 15:46:28 426

原创 MySQL的严格模式修改以及一些字符串之间的区别

在mysql 5.7中,默认使用的是严格模式,这个有的时候会太严格,带来问题,比如:mysql> CREATE TABLE `events_t` (-> `id` int(11) NOT NULL AUTO_INCREMENT,-> `event_date` datetime NOT NULL,-> `profile_id` int(11) DEFAULT NULL,-> PRIMARY KEY (`id`),-> KEY `event_date` (`event_date`),-> KEY `profil

2022-07-14 12:39:36 470

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除