自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 软测4.27复习

为复习软件能力测试而进行复习,整理

2023-04-27 10:00:06 57

原创 攻防世界 dice_game

ida分析一下感觉这个题目似曾相识,翻了翻博客是猜数那道题这是当时那道题的脚本,但是如果一个个输50个数那么就太麻烦了。所以我们引用新的知识,我们知道现在都是动态链接,好多函数在链接前已经存在,所以在python我们调用动态链接库函数的功能的库是ctypes库,当然下载的附件有个libs库我们可以调用ctypes的函数cdll的LoadLibrary函数和猜数几乎一样 所以具体的我就不多说了...

2021-01-19 23:13:18 305

原创 攻防世界pwn200

因为学校放假再加上回家学车,学习进度耽搁一段时间。算了废话少说来看题用ida分析 发现与之前做的level3极其相似但是没有给libc库,所以我们得安装LibcSearcher这个能根据你所给的函数来计算libc的版本,进而得到system和bin_sh的地址这里是准备工作这里是获取pwn200文件中的有用地址这里通过write函数泄露write的真实地址(got表里的地址才是真是地址,通过write函数显示在标准输入上)获得libc的基地址,然后计算system和bin_sh的

2021-01-17 19:55:35 225 1

原创 攻防世界 Mary_Morton

刚开始我们都要ida静态分析一下当为1的时候,发生格式化字符串泄露canary当为2时候,栈溢出到后门函数获得flag先通过格式化字符串泄露计算偏移量发现为第6个参数,然而buf到canary为0x88个字节,0x88/8=17个 17+6=23个说明输入的a到canary为23个参数即canary为%23$p因为有个alarm函数 所以我们写道py里...

2021-01-08 22:28:33 134

原创 攻防世界forgot

我们用ida来看一下int __cdecl main(){ size_t v0; // ebx char v2[32]; // [esp+10h] [ebp-74h] int (*v3)(); // [esp+30h] [ebp-54h] int (*v4)(); // [esp+34h] [ebp-50h] int (*v5)(); // [esp+38h] [ebp-4Ch] int (*v6)(); // [esp+3Ch] [ebp-48h] int (*v7)(..

2021-01-06 18:06:11 112

原创 攻防世界level3

ida分析一下发现这次level3是除了前两个显示最少的,俗话说得好,给得越少,越难。发现没有system,也没有/bin/sh当然这有个溢出点,可是只有溢出点我们下载下来,发现有个libc库我们先巩固一个知识,当调用一个函数时候,会调用plt,然后plt调用got表,如果是动态链接,got表会从libc库里找这个函数。当然我们可以先泄露write函数的got表的地址,然后通过write-system=libc中write函数和system函数的差值找到system函数,同理找到/bi.

2020-12-31 20:34:18 419

原创 攻防世界string

这道题是我在新手区见到的最难的一道题,涉及了格式化字符串,shellcode注入,最难的还是这个过程。繁杂,琐屑。这句是最关键的,创建个内存然后作为指针函数。这里注入shellcode就可以。但是有个前提a[0]=a[1]我们要通过格式化字符串修改a[0]=85使得a[0]=a[1]...

2020-12-30 16:36:52 161

原创 攻防世界新手区cgpwn2

老办法看一下ida静态分析一下发现第一个输入是写在全局变量name里边,第二个gets显然是栈溢出少一个字符串说明少了/bin/sh 这样就有思路了第一个地址是system的plt地址第二个是bss段name的地址 其中p32(0)要平衡栈帧。...

2020-12-28 11:42:50 85

原创 攻防世界 新手区CGfsb

老办法看一下开启了哪些保护然后放在ida静态分析一下大体意思是全局变量pwnme=8时会获得flag但是pwnme这个变量我们无法控制,怎么办呢?其中有个关键的这里如果我们输入%x 它会输出什么?我输入了aaaa 以及12个%xlinux系统会按栈的顺序一一输出内容而aaaa 泄露在第11个参数所以我们先泄露这个pwnme全局变量的位置 然后通过%$n修改这地址的值所以完成...

2020-12-27 21:59:54 121

原创 攻防世界新手区int_overflow

看题目说是个栈溢出问题,下载下来让我们看看它的权限。发现栈不可写,心想不能用shellcode注入用ida来看一下发现有个后门函数,心想这题用栈溢出改变返回地址直接到后门函数这里完成得到flag从这里目前看没有发现溢出的问题这里同理觉得没有溢出的痕迹这里乍一看没有问题,关键的事是这个函数是字符串copy的,意思就是把s覆盖dest上,但是如果s的长度足够长将会导致dest溢出从而导致修改返回地址从而到达后门函数。但是s这个长度被限制了,只有4到8之间的长度才能进行复制,不仔细一.

2020-12-24 14:20:59 153

原创 攻防世界新手区guess_num

老办法稍微看了看 这十个数 你全要猜对才能获得flag,这几乎是不可能的其中关键的gets这里发生栈溢出,(距离为0x20个填充字符加上1)v8可以栈溢出覆盖到seed[0]从而使seed[0]为1,此时srand就是srand(1)为一个固定的序列,这样我们可以提前写出来rand的1-6中10个数(因为rand函数计算机并不是随机的,在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同..

2020-12-22 21:31:39 141

原创 攻防世界新手练习区5,6题

不知道为啥题目变了顺序,之前第二题不算这个格式化字符串的题,现在还没学到格式化字符串,先放放。这个题意思就是个栈溢出问题和上边一样,先分析文件。然后放入64位ida分析这有个后门函数显然是个栈溢出,这个buf离ebp0x80个字节,输入0x88个字符能覆盖到返回地址前,然后跳到后门函数修改返回地址。成功。level2这个题可以说是上题的加强题,这个没有后门函数,不过庆幸的是在ida中shift+F12能查找字符串有/bin/sh plt有system这两个就像.

2020-12-20 21:36:15 139 1

原创 攻防世界第一二三题

这是第一题确实运行就可以获得flag第二题下载文件然后放在虚拟机中,分析file然后放ida 64位分析__int64 __fastcall main(__int64 a1, char **a2, char **a3){ __int64 result; // rax char v4; // [rsp+0h] [rbp-20h] unsigned int v5; // [rsp+8h] [rbp-18h] unsigned __int64 v6; // [rsp+18h..

2020-12-18 10:54:34 173 2

原创 csapp attack lab实验总结

这5个实验都可以说是栈溢出然后修改ret地址而进行的一系列攻击操作。对于前三个可以代码注入的实验来说。1.考虑shellcode的编写地址位置,shellcode写在哪是关键。(1)如果要溢出的栈帧开辟的足够大,那就写在这个要溢出的栈帧中,然后在调用当前栈帧的rsp作为shellcode的地址。(2)如果开辟的栈帧空间较小,那么考虑在上一个栈帧写shellcode 根据jmp rsp(这个rsp是上一个栈帧的rsp)或者根据已知一个buf的地址加偏移量作为shellcode的地址。2.所调用的函数完

2020-12-10 08:57:52 838

原创 csapp attack lab level5

做完了第一个ROP来看看第二个,当然这个显然很难。显然这个和touch3一样,但是无法注入,所以只能用ret来连接gadget,我刚开始看第一个建议很疑惑,为啥要复习movl。直到我从farm这个函数反汇编后所能用到的指令真是少的可怜。如图...

2020-12-09 19:56:31 524

原创 csapp attack lab level4

完成了Part1前三个缓冲区注入代码改变返回地址的实验,现在来看看Part2.因csdn新手,所以上传pdf并不会。直接截图把这里是介绍部分,大致说明了因为两个原因不能进行代码注入而写shellcode,一个是ALSR栈上地址随机化,一个是NX就是栈没有执行的权限。这样怎么攻击呢?有些聪明的人发现了新的攻击方式,简写ROP就是根据retq这条指令(可以理解pop rip)不断跳转所需要的代码段,最后通过多个ret连接成一个完整的攻击代码段。就比如讲义举了个例子void setval_210(un

2020-12-08 20:00:05 442

原创 csapp attack lab level3

稍微看了看别的博客完成了前两个lab,现在来看看第三个。void touch3(char *sval) { vlevel = 3; /* Part of validation protocol */if (hexmatch(cookie, sval)) { printf("Touch3!: You called touch3(\"%s\")\n", sval); validate(3); } else { printf("Misfire: You called touc

2020-12-06 21:29:13 322

原创 csapp attack lab level2

完成了level1,现在来看看level2.这是讲义上touch2函数 void touch2(unsigned val){ vlevel = 2; /* Part of validation protocol */ if (val == cookie) { printf("Touch2!: You called touch2(0x%.8x)\n", val); validate(2);} else { printf("Misfire: You ca

2020-12-06 13:56:11 263

原创 csapp attack lab level1

因为自学pwn 而看了csapp这本书,bomb lab已做完5个,现在挑战以下attack lab实验。level1wget http://csapp.cs.cmu.edu/3e/target1.tartar -xvf target1.tar在ubuntu输入这个代码 下载文件,解压缩。得到如下文件这些文件得结合csapp的讲义来看在level1只用到了ctarget(可注入的目标可执行文件)hex2raw(将16进制数转化为攻击字符,因为有些字符在屏幕上面无法输入,所以输入该字符

2020-12-05 19:29:19 278

空空如也

空空如也

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

TA关注的人

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