自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 unlink(1)

unlink是对双向堆链表进行操作的(largebin和smallbin),它对发生在堆合并之后unlink测试代码如下:#include <stdio.h>#include <stdlib.h>int main(){ void *a = malloc(0x10); void *chunk1 = malloc(0x80); void *b = malloc(0x10); void *chunk2 = malloc(0x80); void *chunk3 = .

2021-11-29 10:45:34 257

原创 ret2dlresolve(4)

ret2dlresolve(4)这次是64位下,开了Partial RELRO保护这次记录自己的解题过程先测试一下传入自己构造的reloc_arg看看程序能不能正常运行elf = ELF('./main64')def debug(): gdb.attach(p) pause()def csu(r12, r13, r14, r15, ret): rbx = 0 rbp = 1 payload = p64(0x400766) payload += p64(1) + p64(rbx

2021-11-15 15:30:05 2320

原创 解题记录(3)

解题记录(3)这道题是一个rop的题目,漏洞利用很简单,但这题有不一样的地方题目如下,没有Canary和PIE保护,因此能够想到的就是栈溢出了main函数如下从main函数中,能够直观的发存在一个栈溢出但是这里能够发现的是只能够溢出0x10字节,也就是只能控制程序的返回地址和基地址再来看看init函数里面的东西seccomp(全称securecomputing mode)是linuxkernel从2.6.23版本开始所支持的一种安全机制。通过seccomp,我们限制程序使用某

2021-11-12 16:35:37 245

原创 解题记录(2)

解题记录(2)题目不难,但也有思考的地方题目如下,保护全开main函数是调用game函数的,所以主要看一下game函数主要有下面两点首先是这一部分,可控的v4,并对数组v5进行写操作,因此这里存在栈溢出,并且能够绕过Canary第二部分如下,打印刚才写入的单元,但只打印6个字节分析函数可利用的就上面介绍的两点,其他的都是打印打印先看看第一个read的使用,一开始想到的是栈溢出,因为能够绕过canary直接修改函数返回值,但马上想到,由于程序保护全开,地址进行了随机化,所以就没办

2021-11-11 15:40:17 235

原创 解题记录(1)

解题记录(1)这到题用到了两个面,一是覆写got表,二是栈溢出查看保护机制程序开了Canary保护,因此可能无法进行栈溢出题目main函数如下main函数实现的功能是,输入1,执行sub_40086C函数,输入0,执行sub_4008BB函数sub_4007C7函数是用来输入的看看sub_40086C函数能够明显看到,这里存在地址写漏洞,可以对任意可写地址进行写操作因此能够想到的是覆写got表继续看sub_4008BB函数该函数是对main函数中的字符数组v5进

2021-11-09 19:11:03 87

原创 ret2dlresolve(3)

ret2dlresolve(3)64位norelro下的ret2dlresolve本来思路是与32的差不多,只不过是寄存器传参,但硬是出了一个意想不到的问题这里我用到了ret2csu来进行程序流的控制def csu(rbx, rbp, r12, r13, r14, r15, ret): payload = p64(loc_6pr) payload += p64(1) + p64(rbx) + p64(rbp) + p64(r12) + p64(r13) + p64(r14) +

2021-10-30 09:53:55 128

原创 ret2dlresolve(2)

ret2dlresolve(2)在ret2dlresolve(1)中,关闭了Partial RELRO保护,因此能够对.dynamic进行修改,从而改变dynamic中dynstr的地址,通过伪造一个dynstr来实现将函数write链接到system函数那么如果打开了Partial RELRO保护,将如何进行代码还是之前的代码,通过如下方式进行编译gcc -fno-stack-protector -m32 -z relro -z lazy -no-pie ../../main.c -o mai

2021-10-25 11:16:48 125

原创 ret2dlresolve学习(1)

ret2dlresolve学习(1)ret2dlresolve主要是利用函数_dl_runtime_resolve来进行这个函数是用来对动态链接函数进行重定位的它最简单的利用就是直接修改重定位表项构造一个存在栈溢出的例子#include <stdio.h>#include <unistd.h>#include <string.h>int vuln(){ char buf[80]; setbuf(stdin, buf); ret

2021-10-22 11:08:58 166

原创 BROP(黑盒pwn)

BROP(黑盒pwn)这题很有意思,通过黑盒的方法来进行溢出攻击,同时这里也用到了__libc_csu_init函数利用的新姿势题目是:brop参考链接:https://wiki.x10sec.org/pwn/linux/user-mode/stackoverflow/x86/medium-rop/#_8做这道题,不要ida,否则没有意义了思路对于黑盒,这道题的目的也很明确,就一个输入就结束了,明显的需要溢出那么第一步就是通过不断测试字符长度来判断溢出点这个实现还是很简单的def ov

2021-10-20 17:54:05 965

原创 ret2csu

ret2csu我认为这道题本身是没有什么实际意义的,但是它教会了我一种新的利用思路这道题虽然明确指出利用函数__libc_csu_init来进行但这个函数本身不是做为攻击者使用而设计的,它是设计出来初始化libc,只是恰好我们能够利用因此,我认为这道题的主要目的是利用现有的汇编片段来实现攻击(与ret2por比较类似)__libc_csu_init在本题里,这个函数的汇编代码如下(可能与你看到的有点不同); void _libc_csu_init(void)public __libc_c

2021-10-19 20:28:40 294

原创 一道堆方向的pwn(堆溢出、堆拼接)

一道堆方向的pwn(堆溢出、堆拼接)这道题是17年0ctf的一道题,从里面还是能学到许多东西的babyheap这里我就直接记录我的做题过程在此之前,查看保护信息,发现保护全开,emmmm Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled代码分析先来看看伪代码main函数就不做

2021-10-18 11:23:43 1902

原创 一道堆方向的pwn(double free & unsorted bins)

一道堆方向的pwn(double free & unsorted bins)做题环境什么是double free在某博客上看到了一道堆的题,博主说是入门的,嗯,那正好适合我,于是我花了一周终于出结果了。。。。。。来看看我都遇到了什么问题做题环境Ubuntu 20.04.3 LTS,这是我在微软商店下载的子系统,也是一切万恶之源的开始题目:Roc826什么是double free希望再次之前,你已经知道什么是堆了。double free就是对一个堆free两次在堆中,free后堆

2021-10-17 12:16:02 757 1

原创 计算机组成原理(笔记)——计算机常见的硬件介绍

计算机硬件介绍运算器存储器控制器适配器和I/O设备总结在这里只对计算机的一些常见的硬件进行简单的介绍,以便于之后的复习运算器能够进行算数运算和逻辑运算的部件,现在一般都在CPU内部,在运算器中,进行的是二进制运算,运算的长度一般是字节的整数倍,也会有半字节1字节(B/b) = 6bit存储器功能:保存和记忆数据以及相关操作步骤,存储形式是二进制数据存储的不仅是数据,还有执行的程序也是存储在存储器中的存储位元:存放一个二进制数的单元,通常是一个触发器或者晶体管存储单元:由多个存储位

2020-08-16 15:18:38 647

原创 计算机组成原理(笔记)——计算机的一些性能指标

计算机的性能指标吞吐量响应时间利用率处理及字长总线宽度存储器容量存储器带宽主频/时钟周期CPU执行时间CPIMIPSFLOPS总结吞吐量表示一台计算机在单位时间内,能够处理的信息量,在本笔记中,指CPU在单位时间内于内存交换的信息量响应时间表示从数据有效的那一刻起,到系统产生相应的时间,如用户点击鼠标,到该鼠标点击生效的时间,就是一个鼠标点击的响应时间利用率指在某时间内系统被使用使用的时间所占的比率在计算机执行某一程序的一段时间内,CPU和内存不是时时刻刻都在使用的,只有执行指令和读取指令时

2020-08-16 14:36:28 851

原创 数据库(笔记)——关系模式的范式

关系模式的范式第一范式第二范式第三范式BC范式总结范式的是作为评判一个数据表的创建是否符号要求的标准第一范式定义:关系模式R中的所有属性都是不可再分的,则R属于第一范式,记作R∈1NF,简称1NF所谓的属性可再分,如,假设有个属性叫身材,而身材可以分为身高、体重等属性缺点:仅仅是属于第一范式的关系模式,在插入、删除、更新数据的时候会存在异常的情况,并且存在大量数据冗余第二范式若R∈1NF,且每个非主属性都是完全依赖于R的主关系键(就是主键),则称R属于第二范式,记作R∈2NF那么

2020-08-15 14:41:38 1301

原创 数据库(笔记)——函数依赖

函数依赖函数依赖的定义函数依赖的逻辑蕴涵逻辑蕴涵闭包函数依赖的推导规则完全函数依赖与部分函数依赖完全函数依赖部分函数依赖传递函数依赖候选键在函数依赖中的定义总结函数依赖的定义定义函数依赖是关系模式中,属性之间的逻辑依赖关系定义如下:设关系R(U,F),U是属性集,F是函数依赖集,令X、Y是U的两个子集对于任意R的一个关系r,X的每一个具体值,Y都有唯一值与之对应则,X决定函数Y,或Y函数依赖于X,记作X→Y(X是自变量,Y是因变量,一个X只能得到一个Y)若X→Y且Y→X,则X↔Y不依

2020-08-15 10:01:01 12838 1

原创 数据库(笔记)——SQL命令操纵数据表数据与视图创建

SQL命令操纵数据数据操纵修改数据数据添加数据删除视图创建创建使用总结在这就不适用实际存在的数据库作为演示,主要便于自己复习语法数据操纵修改数据如下修改单个信息//修改学生小杨的性别为女Update StudentSet s_sex = '女'Where s_name = '小杨'批量修改//将所有学生的成绩都提高5分Update SCSet score = score + 5涉及多表查询的修改//修改年龄大于小杨的所有学生的年龄,将他们的年龄+1Upda

2020-08-14 14:36:53 341

原创 数据库(笔记)——子查询与外连接

子查询与外连接子查询外连接总结下面三个表会用到StudentCourseChoise子查询常见的形式如下//查询与张彬相同性别的学生姓名和性别Select s_name,s_sexFrom StudentWhere s_sex = (Select s_sex From Student Where s_name = '张彬')//外部为父查询,括号内的是子查询//在这一句首-先-执行子查询,寻找到张彬的性别,--然后--执行父查询//当然这个也可以使用自身连

2020-08-14 09:46:54 1279

原创 数据库(笔记)——SQL语句单表与多表查询

SQL语句数据查询SQL语句单表查询简单查询条件查询查询结果统计分组查询查询结果排序多表查询连接查询自身连接总结对于查询这一块,又简单的查询,也会有复杂的查询,作为笔记,涉及不到所有的查寻,因此可能会有的点疏漏了,望提醒!此外,下列主要是介绍SQL语句,所写代码并没有对实际数据库操作,但语句本身是没有错的,在后面的笔记中会补充一个对实际数据库的查询等下面是会用到的表Student表stu_nostu_nastu_agestu_sexCourse表课程号c_no

2020-08-13 17:01:08 1792

原创 数据库(笔记)——定义数据表约束和修改数据表

数据表约束与修改数据表约束的定义约束的类型修改数据表总结在这里只使用SQL语句来进行数据表约束的定义约束的类型NULL/NOT NULL约束分别表示可以为空和不可以为空,语句如下Create Table Stu( stu_no nchar(11) Constraint s_con NOT NULL)[Constraint + 约束名] + 约束类型,其中约束名自己定义,中括号部分可以省略(也就是可以不对约束进行命名,系统会自定义)UNIQUE约束UNIQUE唯一,用于表示

2020-08-13 09:20:23 761

原创 数据库(笔记)——数据库与数据表的创建

数据库与数据表的创建软件操作使用SQL Server建立数据库使用SQL Server建立数据表SQL语句操作使用SQL语句建立数据库使用SQL语句建立数据表删除删除数据表删除数据库数据库和数据表的创建通常有两种方法,一是直接操作软件建立,二是通过SQL语句来创建,接下来我会先用软件的方式建立,在使用SQL语句建立不想看软件操作的可以直接跳过看SQL语句在此之前,我现在桌面建立一个文件夹,用于存放数据库文件软件操作使用SQL Server建立数据库右击数据库,点击新建数据库修改数据库名

2020-08-12 15:58:08 1454

原创 SQL Server 2016详细安装步骤,后附链接

SQL Server 2016安装步骤解压之后得到如下文件先打开JDK安装包右键以管理员身份运行进入安装程序,点击下一步,这里的安装目录自己更改修改完路径后点击下一步,等待安装之后会弹出如下界面同样修改安装路径,将该路径修改到与之前并列下一步开始安装安装完之后,如下,点击关闭接着,回到桌面,右键此电脑打开属性进入后在左边菜单栏点击高级系统设置,进去修改环境变量点击右下角环境变量进入如下界面,并点击下边的新建输入变量名JAVA_HOME,变量值:第一次的安装路

2020-08-12 10:15:30 4359

原创 数据库(笔记)——SQL的基本概念和数据库的结构

SQL基本概念和数据库的结构SQL的基本概念SQL的特点SQL的基本概念基本表一个关系对应一个基本表,它独立存在,不由其它表导出。一个或多个基本表对应一个存储文件视图由一个或多个基本表导出的表,一个虚表。数据库中存放的是视图的定义,不存放视图对应的数据,数据在基本表中视图的作用就像一个函数,是根据用需要将其它基本表中部分信息集中在一起,方便使用而创建的,它起到重复、快捷使用的作用,在三级模式中处于外模式,而基本表既可以是外模式也可以是模式索引对一个基本表数据按照某种属性排序,一个

2020-08-12 09:57:39 496

原创 数据库(笔记)——关系代数以及相关运算

关系代数关系代数及其运算符集合运算符关系运算符总结关系代数及其运算符关系代数是一种抽象的查询语言,通过关系的运算来表达查询关系代数常使用的运算符由如下几类集合运算符:∪(并)、∩(交)、-(差)、×(笛卡尔积)专门的关系运算符:σ(选取)、∏(投影)、∞(连接)、*(自然连接)、÷(除)算术比较符:>、≥、<、≤、=、≠逻辑运算符:∧(与)、∨(或)、¬(非)其中算数比较符的使用就不多说,组要对集合运算符和关系运算符进行学习需要注意的是,∩与∧两中运算符,前者是针对集合的,后者

2020-08-11 15:11:43 4913

原创 数据库(笔记)——候选码、主码、外码以及关系的完整性

关系的码与关系的完整性关系的码1. 候选码2. 主码3. 外码关系的完整性总结关系的码1. 候选码候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键如:学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名)都是候选码候选码需要满足:唯一性:唯一标识一个元组(注意不是说候选码只有一个)最小性:构成候选码的属性个数最少,比如前面的(班级,姓名),再添加一个学号或其他属性就多此一举了2. 主码主码是从候选键中选着一个作为查询、

2020-08-11 10:52:13 28681 4

原创 数据库(笔记)——关系模型及其形式化定义

关系模型及其相关概念关系的形式化定义1. 域2. 笛卡尔积3. 关系关系的性质关系模式关系数据库与关系数据库模式总结关系的形式化定义1. 域一组具有相同数据类型的值的集合,也叫值域域中包含的值的个数称为基数域的概念与数学中的值域差不多,只不过取值不在局限于数字,比如性别的域就是Dsex = {男,女}2. 笛卡尔积定义如下给定一组域:D1,D2,······,Dn(每个域中可以有相同元素,可以完全不同,也可以完全相同),他们的笛卡尔积为D1×D2×······×Dn = {(d1,d

2020-08-11 09:43:56 1470

原创 数据库(笔记)——三个世界与数据模型

三个世界现实世界信息世界计算机世界从数据模型角度看三个世界E-R图总结现实世界现实世界也就是客观存在的世界,这一概念在数据库中指的是对某一事物的描述,描述其各方面特征以及是否与其他事物存在联系信息世界信息世界是对客观事物的抽象描述,是对现实世界经过分析、归纳和抽象得到的信息,这样的信息具有一定的格式。信息世界中存在以下概念:实体:指现实世界中一个客观存在的事物属性:实体的某一特征属性型:指属性名属性值:某一属性名的一个具体值实体集:同一类型实体的集合,比如所有学生是一个实

2020-08-10 15:58:47 7059

原创 数据库(笔记)——数据库的体系结构

数据库的体系结构数据库系统的内部体系结构数据库系统模式三级模式结构二级映像三级模式二级映像的好处数据库系统的外部体系结构单用户结构主从式结构分布式结构客户机/服务器结构(C/S)浏览器/服务器结构(B/S)数据库系统的内部体系结构数据库系统模式数据模型的型:是对数据的结构的和属性的说明数据模型的值:该数据的一个具体的值模式:是对数据库中全体数据的逻辑结构和特征的描述,通常是不会改变的(只涉及“型”的描述)与模式对应的一个就是实例(或数据),他描述的是模型某时刻下的值三级模式结构外模式:

2020-08-09 17:07:58 2263

原创 数据库(笔记)——数据库系统组成

数据库系统组成标题数据库系统(DataBase System,DBS)组成硬件系统数据库数据库用户软件系统总结标题数据库系统(DataBase System,DBS)数据库系统是以计算机硬件为工具,把数据组织成数据库形式并对其进行存储、管理、处理和维护数据的高效能的信息处理系统。组成由计算机硬件系统、数据库、软件系统(包含操作系统、应用程序开发工具、数据库应用系统、数据库管理系统(DBMS))和数据库用户组成硬件系统存储和运行数据库的硬件设备包含CPU、内存、大容量的存储设备、输入输出设

2020-08-09 15:11:03 424

sql创建数据库、表,插入数据,查询数据.rar

包括创建数据库,创建数据表代码,插入的数据的代码,以及sql查询数据的多种代码,通过这些代码能够对sql命令进行熟悉,在文件中的sql查询代码中是由题目构成,并不是唯一解。

2020-08-14

sql语句基本语法操纵实际数据库.rar

主要是对实际的数据库使用sql命令来对sql命令进行更深的了解,数据库需要自己建立,数据表需要导入Excel表,文件中有,使用SQL Server操纵

2020-08-14

空空如也

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

TA关注的人

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