自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

startr4ck

startr4ck.github.io

  • 博客(11)
  • 收藏
  • 关注

原创 2018 10 24. pwn的学习堆的学习,堆块,堆表的概念,堆当中的操作,什么是双向链表,堆分配函数,fgets函数能造成溢出吗?

堆的学习    堆,动态增长的链表,    申请方式:常用函数申请,通过返回的指针使用,malloc()    释放方式:通过free进行释放    管理方式:需要程序员处理申请和释放    增长方向:内存从低地址向高地址    特点:        杂乱:堆区经过反复的申请,释放操作之后,原本大片连续的空闲区呈现出大小不同且空闲块和占用块交错的区域            给出...

2018-10-24 18:55:01 343

原创 函数调用进栈的问题

函数调用进栈的问题:    调用方式的差异 c语言 参数入栈的顺序:从右到左 恢复栈平衡操作的位置:母函数                   Syscall                ---------                        子函数                   Stdcall                ---------               ...

2018-10-19 23:11:15 459

原创 2018 10 18 pwn的学习0x8 堆分配函数&VA,offest之类的转换

    堆分配函数:    malloc进行分配的    calloc进行分配(calloc在分配之后会自动进行清空)        calloc(0x20)        等同于 ptr=malloc(0x20)               memset(ptr,0x20)               堆溢出的利用策略    寻找危险函数:            输入  ...

2018-10-19 23:01:48 229

原创 2018 10 18 pwn的学习0x7 保护和堆

什么是relro保护?relro 是一种用于加强对 binary 数据段的保护的技术。relro 分为 partial relro 和 full relro设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号,从而减少对GOT(Global Offset Table)攻击。    Partial RELRO        现在gcc 默认编译就是 partial relro(很久...

2018-10-18 23:57:07 501

原创 关于对自己以后要做什么的思考

二进制的路上并不好走,这一条路走下去自己也不知道能不能找到工作所以这几天没有学习pwn,听了学长的经验分享,就算在ctf逆向当中你的pwn技术有多牛逼和你的真正在公司当中也是没有多大关系的 ,ctf只是你的一个展示方面,千万不能以ctf为目标去学习ctf,ctf应该是建立在你学习其他信息安全的基础上进行的很多时候,去寻遇到一个新的提权方式,漏洞溢出的方式,其实在实际当中已经没有多大的意...

2018-10-17 22:52:37 280

原创 2018 10 15 pwn的学习0x6 aslr保护和pie保护

1.getint 是什么getint函数将输入的字符流分解后才能整数,且每次调用得到一个整数。getint需要返回转换得到的整数,并且在到达输入结尾的时候返回文件结束标记2.什么是stdin stdout 怎么进行利用?C去写文件时的操作,File *fp=fopen(),这个fp就是我们向系统申请的stdin,stdout,stderr就是这个fp,不过他是随着计算机系统的开启默认打...

2018-10-15 23:44:22 1453

原创 2018 10 14 pwn的学习0x5 没有缓冲区溢出,但是函数参数可覆盖

同样是一道pwn的入门题目,题目本身不同于覆盖返回地址进行控制程序流,而是通过控制紧紧挨着缓冲区附近的参数进行修改从而达到我们所想要程序的目的。在这里发现我们使用的fgets进行输入,我们利用gdb进去看看 ,在这里发现箭头所指的位置是指的我们的下面的输出函数的内容所以我们要把这个内容所替换,在程序当中发现有这么一段把返回地址覆盖为他的地址就可以了 使用scanf函...

2018-10-14 10:35:48 302

原创 2018 10 13 pwn的学习0x4 没有缓冲区溢出和护网杯的pwn签到题目

今天所遇到的题目都是判断变量放在内存当中 我们可以使用覆盖来对判断变量进行改变 当覆盖到变量之后 就可以实现我们想要的跳转我们要覆盖v5的数值为11.28125 ,点看读进去的buf的地址 和v5的地址 发现相差 是0x20的大小所以直接发送'a'*20+(11.28215za在内存当中的数值)但是如何得到这个数在内存当中的数值呢 我们在汇编代码当中看进去之后看到了数值...

2018-10-13 22:05:58 435

原创 2018 10 12 pwn的学习0x3 32位程序和64位程序的差别(两点),在Linux 寄存器调用函数syscall

在64位程序当中和32的不一样的原因是 但是可以使用的内存地址不能大于0x00007fffffffffff,否则会抛出异常,这就是为什么调试64位程序的时候,我们不能使用字符串进行的原因x64中前六个参数依次保存在RDI, RSI, RDX, RCX, R8和 R9寄存器里syscall调用read  eax 0x3 ebx 0x3                     ecx re...

2018-10-12 23:34:13 1087

原创 2018 10 11 pwn的学习0x2 gets函数和fgets函数 ,新的参数传递方式

还是一一样的没有binsh字符串所以我们需要继续读取字符串到内存当中 在id中寻找函数 发现并没有我们想要的提权函数我们可以尝试着搜索gadgets去寻找我们想要找到的看到有汇编代码  mov dword ptr[edi],ebp和 pop edi ebppop edi ebp后面就跟参数edi 放地址,ebp放数值。就可以将ebp的数值放在edi位置上 直接利...

2018-10-11 23:57:04 1471

原创 2018.10.10 pwn的学习0x1 参数传递

在32位程序当中,函数的传递是通过栈来进行传递。构造shellcode 的方式是 padding+ fake_ebp+p32(system)+p32(返回地址)+p32(system 的参数)在64位程序当中,函数的传递是通过寄存器进行传递。在64位程序当中,参数先是找rdi, rsi, rdx, rcx, r8, r9。构造shellcode的方式是padding+fake_ebp+...

2018-10-11 17:21:03 790

空空如也

空空如也

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

TA关注的人

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