自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SQLI-labs less2

less2 GET Error based - Intiger basedhttp://127.0.0.1/sqli-labs/Less-2/?id=1' and 1=1http://127.0.0.1/sqli-labs/Less-2/?id=1 and 1=1啊哈 是整形注入(废话标题都已经写了探一探字段数http://127.0.0.1/sqli-labs/Less-2/?id=1 order by 3 --+4就报错了 所以字段数为3然后搞一搞注入点http://127.0.0

2021-07-19 15:45:05 242 2

原创 SQL联合注入详解-结合SQLi-lab less1

SQL注入详解首先看一看能不能注入127.0.0.1/sqli-labs/Less-1/?id=1 order by 3 --+发现输入多少都不报错所以推测应该是字符注入通过以下两句,判断出字段数为3(order by 4报错)127.0.0.1/sqli-labs/Less-1/?id=1' order by 3 --+127.0.0.1/sqli-labs/Less-1/?id=1' order by 4 --+看一下注入点127.0.0.1/sqli-labs/Less-1/?id=

2021-07-09 23:30:24 330

原创 链表表示的两个多位数相加C++实现

链表代表的两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。题目链接:https://leetcode-cn.com/leetbook/read/linked-list/fv6w7/反省一下自己,又贪玩了,没有好好学习,我检讨(法一:思想来源于加法器(好吧我承认就是普普通通的破破烂烂的循规蹈矩的破算法clas

2021-06-17 21:56:24 259

原创 20210610合并有序链表

题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的题目链接:https://leetcode-cn.com/leetbook/read/linked-list/fnzd1/递归法递归法好优美啊,可惜我是个菜比自己写不出来。递归的定义:fun(L1,L2) 合并两个有序链表,返回合并后链表的头结点递归终止条件:L1、L2之间有一个为空或者全部为空递归关系:将L1,L2中较小的那个结点指向函数返回的合并后的结点代码是这个样子:class So

2021-06-10 21:17:36 88

原创 回文链表20210609

题目描述:判断一个链表是否为回文链表方法1:双指针把链表迭代一遍,把每个结点的值放入一个数组,然后用双指针检查数组是否为回文。不检查链表的原因是,定位一个结点,需要用到它的前驱结点C++实现:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * L

2021-06-09 23:34:20 131 3

原创 20210608奇偶链表

/*给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/linked-list/fe0kj/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请

2021-06-08 17:31:52 113

原创 Web安全深度剖析第三章读书笔记

3 信息探测主要收集的信息:服务器的配置信息和网站的信息包括网站注册人 目标网站系统 目标服务器系统 目标网站相关子域名 目标服务器所开放的端口 服务器存放网站等3.1 Goole Hack3.1.1 搜集子域名可以使用site,也可以使用软件查询。但是一般是不准确的,目前没有很好的方法来搜集网站的子域名。3.1.2 搜集Web信息关键字说明site指定域名intext正文中存在关键字的网页intitle标题中存在关键字的网页info一些基本信息

2021-06-06 13:43:57 267 2

原创 20210604去除链表中的特定元素

class Solution {public: ListNode* removeElements(ListNode* head, int val) { ListNode* p = new ListNode(0, head); ListNode* q = p; while (q->next != NULL) { if (q->next->val == val) { q->n

2021-06-06 11:07:14 70

原创 Web安全深度剖析第一、二章读书笔记

Web安全简介1.1 服务器是如何被入侵的攻击者想要对计算机进行渗透,需要一个必要的条件:二者必须能够进行通信。而通信需要端口,端口上运行着服务,因此入侵也是靠端口。过去的荣光在2000至2008年间,常用的攻击方法是直接对目标进行攻击,比如端口扫描、一些服务密码的爆破。后来随着发展,可扫描出的切入点越来越少,新的战场转移到了Web之上。随着发展,如今的Web称为Web应用程序会更加合适。如今的Web功能十分强大,和早期的Web差别十分巨大,用户需要做的仅仅是拥有一个浏览器。Web的四个要

2021-06-03 21:30:44 528 2

原创 20210527翻转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。题目地址:https://leetcode-cn.com/leetbook/read/linked-list/fx61e/法一可以按原始顺序迭代结点,将它们逐个移动到列表的头部class Solution {public: ListNode* reverseList(ListNode* head) { if(head==nullptr||head->next==nullptr){

2021-05-29 12:32:28 84

原创 删除链表倒数第N个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。计算链表长度:首先从头结点开始对链表进行一次遍历,得到链表的长度L。然后从头结点对链表再进行一次遍历,当遍历到L-n+1个结点,它就是要删除的结点class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* fast=head; int length=0; while(f

2021-05-27 15:33:43 120

原创 CSS学习笔记-CSS选择符\CSS伪类\CSS伪元素\CSS特指度

Chapter2 CSS工作原理CSS注释语法:<style> /*注释*/</style>2.1 剖析CSS规则规则实际就是一条完整的CSS指令,声明了要修改的元素和要应用给该元素的样式比如以下规则把文本设成红色p {color:red;}为文档添加样式的三种方法1、行内样式<p style="color:red;font-size:12px">blabla</p>行内样式只影响它所在的标签,会覆盖嵌入样式与链接样式2、嵌入样式

2021-05-08 10:48:44 256

原创 CSS学习笔记-HTML文档结构

Chapter 1 HTML标记与文档结构每个网页在初始时都是使用HTML来标记内容的,此举的目的是赋予网页含义,操作的对象是用户代理,也就是让你的用户代理读懂你在文档中写的内容。所谓用户代理(user agent),包含浏览器、屏幕阅读器、Web爬虫等,即存在于你和网页之间的一种中继1.1 HTML标记基础对于每个包含内容的元素,根据它所包含的内容是否为文本,有两种标记方式:闭合标签与非闭合标签。HTML元素:从开始标签到结束标签的所有内容1.1.1 文本用闭合标签<标签名 属性

2021-05-08 10:45:30 134

原创 环形链表判断\Floyd判圈算法

问题描述如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。先贴解法:快慢指针,慢指针步进1,快指针步进2,只要快慢指针相遇,就说明存在环。class Solution {public: bool hasCycle(ListNode *head) {

2021-04-21 15:15:26 408

原创 单链表的创建\头插法\尾插法\删除结点\插入结点CPP实现

单链表的CPP实现主要实现了头插法、尾插法、查找、遍历、删除、插入功能。主函数为测试用例#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>#include <cstdlib>#include <vector>using namespace std;//链表结点typedef struct LinkNode { int elem; str

2021-04-21 12:43:09 317

原创 数据结构之链表/单链表/静态链表/循环链表/双向链表

链表单链表每个结点中只含有一个指针域单链表的存储结构:typedef struct LNode{ ElemType data;//数据域 struct LNode *next;//指针域}单链表可以包含头结点,也可以直接在头部装入第一个元素。即,所有的链表都有一个头指针head,head中不装数据项叫做带头结点,带有数据项则称为不带头结点。如果不带头结点,每次头插法时,head都需要进行变化。以下讨论带头结点的单链表头指针指向链表中第一个结点的指针(头结点或者首元结

2021-03-30 21:32:10 395

原创 数据结构的一些基本概念

数据结构基本概念数据结构:数据结构时相互之间存在一种或多种特定关系的数据元素的集合,是数据元素及其相互间关系的数学描述。数据:用于描述事物的符号表示数据元素:数据的基本单位,又称结点、记录、表目数据项:数据的不可分割的最小单位数据对象:性质相同的数据元素的集合数据结构:数据元素及其相互间关系的数学描述数据结构的四种基本结构集合、线性结构、树型结构、图状结构数据结构分为逻辑结构与存储结构存储结构有:顺序存储结构、链接存储结构、索引存储结构、散列存储结构数据类型:一个值的集合和定义在这个

2021-03-30 14:40:43 165

原创 网络复习chapter2_物理层

给自己看的,每日强迫自己打卡物理层2.1 物理层的基本概念物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能的屏蔽掉传输媒体和通信手段的差异。通过这种差异消除,链路层只需考虑本层协议与服务的实现,而不必考虑具体的传输媒体与通信手段(物理层)用于物理层的协议也常称为物理层规程。2.4 信道复用技术2.4.1 时分复用TDM、频分复用FDM、统计时分复用频分复用的所有用户在同样的时间内占用不同的带宽(频率带宽)资源。时分复用是将时间

2021-03-27 11:54:49 104

原创 数据结构之线性表/顺序存储/C++代码实现

线性表线性表有两种存储方式:连续存储与链接存储。先更线性存储,连接存储待更。线性表是由n个元素组成的有序序列。连续存储线性表的元素存储在一个表中,表的大小是固定的,大于或等于要表示的线性表的最大长度。线性表的结点:struct ListNode{ Elemtype elem;//线性表存储的数据类型}线性表:struct List{ Elemtype* node;//连续存储的首位置 int length;//当前存储的数据个数 int listsize;//当前表的剩余容量}

2021-03-25 13:21:39 440

原创 c++动态内存分配/new/malloc/realloc/calloc

C++动态内存分配realloc()` 函数用来重新分配内存空间,其原型为:void* realloc (void* ptr, size_t size);ptr 为需要重新分配的内存空间指针,size 为新的内存空间的大小。newbase = (ElemType *)realloc(L.elem,(L.listsize+num)*sizeof(ElemType));分配内存空间:void* malloc (size_t size);calloc() 函数用来动态地分配内存空间并初始化为 0,其

2021-03-25 13:08:03 637

原创 计算机网络学习笔记1-网络概述

1 概述计算机网络是由若干结点和连接这些结点的链路组成的。网络中的结点可以是计算机、集线器、交换机或者路由器等。网络之间通过路由器连接称为一个更大的网络,称为互联网。网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起,与网络相连的计算机常称为主机。internet是一个通用名词,泛指有多个计算机网络互相连接而成的计算机网络。Internet是一个专用名词,指全球最大的、最开放的、由众多网络相互连接而成的特定互联网,采用TCP/IP协议族作为通信的规则,前身是美国的ARPANET

2021-03-23 17:36:28 239

原创 python删除列表元素的几种方法/del/pop/remove/clear/

del/pop/remove/clear/del删除引用,而不是删除数据var_1=var_2=var_3=1del var1,var2#再次使用var_1 var_2会报错var_1=1var_2=var_1del var_1#var_1引用1被删除,var_2仍然引用1,数据并没有被删除#删除类中的引用class test: var_1=var_2=1del test.var_1#删除字典元素dicto={'tip_1':1,'tip_2':2}del dicto

2021-03-23 13:35:52 320

原创 210322_汉明重量

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。API大师:将数字转换为二进制字符串,统计字符1出现的次数class Solution: def hammingWeight(self,n: int) -> int: return bin(n).count('1')位运算注意到,n&1可以判断n的最后一位是否为1,每次判断完最后一位后,丢弃最后一位,继续判定即可,直至遍历到第一位。丢弃最后一位需要用到移

2021-03-22 23:04:38 262

原创 Access联合注入实战/Cookie注入/简单WAF绕过

Access联合注入实战/Cookie注入/简单WAF绕过首先来说一下Access与MySQL在语法上存在的小差别。1、在MySQL中,使用select1,2,3语句配合联合注入,但是在Access中,select语句背后必须跟着表名,此方法不再适用2、在MySQL中,使用limit语句将union后的查询结果放在前面显示,但是在Access中,越晚查询的结果反而越排在前面,无需使用limit进行特殊处理。靶场地址:靶场注意,在cookie注入中,用+代替空格判断注入点打开新闻后,界面如下:

2021-03-20 15:12:43 698

原创 MySQl联合注入实战

MySQl联合注入一个真.入门级的MySQl联合注入靶场地址:靶场目标:拿到管理员账号密码1、寻找注入点点击查看新闻,注意URL的变化可以发现有了一个查询值id=1.于是,开始我们的第一步,探测注入点。把?之后的数据改为:id = 1 and 1=2刷新页面之后长这个样子:2、判断字段数,以用来进行联合注入借助order by来进行探测,经过探测,可以得知查询的字段数为2因此,union查询的字段数也应该为23、判断回显点使用这个语句来判断回显点union select

2021-03-19 22:58:16 355

原创 SQL_les0/基础知识/联合注入常用语句与相关技巧

SQL注入一种针对数据库的攻击方式危害:数据被破坏、数据被篡改原理:攻击者通过构造不同的SQL语句来实现对数据库的操作常见数据库OracleSQL ServerDB2PostgreSQLMySQLAccess使用SQL语句对关系型数据库进行操作系统库:information_schemaschemat表:存放所有的库名(字段名为SCHEMA_NAME)tables:存放表的信息,TABLE_NAME字段存放表名,TABLE_SCHEMA存放表所属的库名columns:存放字段的

2021-03-18 23:43:25 315

原创 双指针滑动窗口刷题笔记C++版本

双指针刷题笔记文章目录双指针刷题笔记双指针的思想滑动窗口移除数组中的零移除数组中的重复元素反转字符串中的单词反转字符串数组拆分两数之和(有序数组)移除元素最大连续1的个数长度最小的子数组本文是力扣刷题笔记总结,题目地址见https://leetcode-cn.com/leetbook/read/array-and-string内容为最后两章本文内容包含:1、双指针的思想2、滑动窗口3、实例一 移动数组中的零4、实例二 移除数组中的重复元素5、实例三 反转字符串中的单词6、实例四 反转字符

2021-03-17 21:55:18 306

原创 Vue生命周期函数

<script> var vm=new Vue({ el:'#root', data:{ title:'hello' }, selfX:0, selfFoo:()=>{ console.log(0) } beforeCreate()//最早的一个钩子,实例初始化事件与LifeCycle后进行,可以访问this,但不可以访问data,可访问d

2021-03-16 09:02:56 50

原创 vue语法基础入门附项目代码

el挂载点el:"挂载对象"ID选择器<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>标签选择器</title> </head> <body> <div id="app"> {{ message }} </d

2021-03-15 22:48:07 133

原创 最长回文子串的寻找C++实现附代码

最长回文子串的寻找C++实现附代码思路一依次穷举所有子串。比如对于字符串 abcdefg依次穷举第一趟a ab abc abcd abcde abcdef abcdefd第二趟b bc bcd bcde bcdef bcdefg依此类推判断一个字符串是否为回文:int main() { int flag = 1; string s = "a";//测试字符串 if (s.length() == 0) { prin

2021-03-11 20:16:15 1988

原创 对角线遍历矩阵C++实现附代码

题目描述:给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]原题链接: https://leetcode-cn.com/leetbook/read/array-and-string/cuxq3/法1假设矩阵为M*N首先对空矩阵以及只有一行或一列的矩阵进行处理。对于一般矩阵,可以确定

2021-03-10 20:49:52 1486

原创 UDP并发服务器(客户端多次交互)c++实现多线程套接字

UDP并发服务器(客户端多次交互)程序采用多线程实现对于UDP并发,如果客户单次交互,那么为每一个客户新建套接字,响应后关闭套接字即可。但如果是多次交互,服务器不仅需要为每个客户建立套接字,还要为客户绑定新的端口,使客户在新的端口与服务器交互,这就要求客户需要直到服务器绑定的新端口信息。在下述程序中,客户首先向服务器发送一字节的激活包,服务器收到激活包后为客户绑定新的套接字,并回射ECHO:<激活包内容>,客户从这个回射中得知(通过recvfrom的参数)新的端口号,在新端口上同服务器进

2020-11-28 18:12:48 3042

原创 c++变量和基本类型(c++ primer学习笔记)

1.1 基本内置类型基本数据类型:空类型(arithmetic type)、算术类型(void)1.1.1 算术类型算术类型分为两类 : 整型、浮点型类型含义最小尺寸bool布尔类型未定义char字符8wchar_t宽字符16char16_tUnicode字符16char32_t同上32short短整型16int整形16long长整型32long long同上64float单精度浮雕数

2020-10-09 20:29:26 149

原创 ch3_3经典进程的同步问题

经典进程的同步问题1、进程互斥:指的是一个进程正在使用某个系统资源,另外一个想使用该资源的进程就必须等待,而不能同时使用。2、进程同步:指的是两个或者多个进程为了合作完成同一个任务,在执行速度或某个确定的时许点上必须相互协调,即一个进程的执行必须依赖另一个进程。多个继承之间使用阻塞和唤醒消息进行通信应用一:生产者和消费者问题1、记录型信号量[参考博客]https://blog.csdn.net/fuzhongmin05/article/details/54616344问题描述:若干进程通过有限

2020-09-30 08:33:37 430

原创 汇编-转移指令

转移指令可以修改IP,或者同时修改cs、ip的指令统称转移指令offset取得标号的偏移地址注意是偏移地址(段地址为cs)jmp依据位移进行转移jmp short 标号 段内短转移,对ip修改范围是 -128 ~ 127cpu在执行jmp指令的时候并不需要转移的目的地址,而是包含转移的位移(把IP向前或者向后移动)转移的目的地址在指令中的jmp指令jmp far ptr 标号 远转移(段间转移)转移地址在寄存器中jmp 16位regip = 寄存器值转移地址在内存

2020-09-27 22:10:05 236

原创 汇编--数据处理的两个基本问题

第八章 数据处理的两个基本问题处理的数据在什么地方要处理的数据有多长8.1 bx,si,di,bp只有这四个寄存器可以用来进行寄存器间接寻址 :[寄存器],其中,bp随机访问,没有规则四个寄存器可以单个出现,亦可以以以下组合出现:bx与si、di,bp与si、dibp默认段地址在ss中指令要处理的数据有多长1、由寄存器名指明2、由x ptr给出mov word ptr ds:[0],1move byte ptr ds:[0],13、由指令给出push只进行字操作寻址方式的综合应用

2020-09-27 22:09:36 248

原创 汇编--更灵活的定位内存地址

更灵活的定位内存地址and ;按位与or ;按位或以字符形式给出数据db 'unix' = db 75h,6eh,49h,58h大小写转换:第5位置0,变大写,第5位置1,变小写用[bx+idata]进行数组处理assume cs:codesg,ds:datasgdatasg segment db 'BsSic' db 'MinIX'datasg endscodesg segmentstart: mov ax,datasg mov ds,ax mov bx,0

2020-09-27 22:07:57 66

原创 8086汇编--包含多个段的程序

包含多个段的程序把数据存在代码段中assume cs:codecode segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h start: mov bx,0 mov ax,0 mov cx,8 s: add ax,cs:[bx] add bx,2 loop s mov ax,4c00h int

2020-09-27 22:07:21 221

原创 汇编-[BX]与loop

[bx]与loop指令寄存器间接寻址,见笔记文件夹下的chapter25.2 Loop指令loop 标号cx=cx-1cx==0//stop;计算2^12,2^12=(2)*2*2*2*2*2*2*2*2*2*2*2assume cs:codecode segment: mov ax,2 mov cx,11s: add ax,ax loop s;若loop在前,循环10次,每次执行loop时,cx=cx-1,并判断cx是否为0 mov ax,4c00h int 21h

2020-09-27 22:06:25 142

原创 8086汇编(2)--参考王爽书籍

chapter2 寻址方式1 汇编语言的语句类型8086可分为三种类型2 汇编语言的语句格式格式 :[标识符] 操作项 操作数 [;注释]标识符:可缺省,表示本条语句的符号地址。指令语句使用的是标号,后紧跟::lable1:操作项:指令助记符或者伪指令符,说明具体操作操作数:操作对象,可以是立即数、存储单元、寄存器注释:以;开始3 寻址方式汇编指令 : | 操作码 | 操作数 |3.1.1 立即数寻址方式操作数通过指令直接给出,有8位和16位mov al,5mov ax,12

2020-09-27 21:53:23 166

空空如也

空空如也

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

TA关注的人

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