![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pwn
文章平均质量分 86
沫忆末忆
这个作者很懒,什么都没留下…
展开
-
[BJDCTF 2nd]r2t4
先查看一下程序的保护,是一个64位的程序,开启了堆栈不可执行保护和原创 2021-01-06 21:23:29 · 279 阅读 · 0 评论 -
两题看栈迁移
文章目录栈迁移[Black Watch 入群题]PWN栈迁移栈迁移的题目一般有一个特点,就是可以产生栈溢出,但是溢出的长度太短导致无法写完整的payload,而实质就是只能控制ebp的情况下去控制住eip从而控制程序的执行流以 32 位程序举例,在使用 call 这个命令,进入一个函数的时候,程序会进行一系列栈操作:push eip+4; push ebp; mov ebp,esp; 来保护现场,避免执行完函数后堆栈不平衡以及找不到之前的入口地址。执行完函数后会进行一系列操作来还原现场 lea原创 2021-01-05 20:40:51 · 566 阅读 · 0 评论 -
ez_pz_hackover_2016
首先查看一下题目的保护,发现保护基本没开,可以栈执行和栈溢出用IDA打开程序,关键点在chall函数,首先会打印出s缓冲区的地址,然后接收一个大小不超过1023字节的输入到s缓冲区,然后将缓冲区里换行符后面的内容全部置为0,最后将缓冲区内容与"crashme"这个字符串作比较,如果相同就会进入到vuln函数于是,我们进入到vuln函数分析一下,就是将第一个参数长度n的内容复制到dest缓冲区那利用方式就呼之欲出了,由于输入到s缓冲区的内容长度不够,无法实现溢出,但是只要进入到vuln函数就可以把原创 2021-01-02 21:22:43 · 1314 阅读 · 0 评论 -
ciscn_2019_s_3
首先拿到程序先查看一下程序类型是一个x86-64的ELF文件,查看一下保护,只开启了堆栈不可执行保护用IDA分析一下该程序main函数直接进入到vuln函数,这里利用了系统调用,64位的系统调用的传参方式为首先将系统调用号 传入 rax,然后将参数 从左到右 依次存入 rdi,rsi,rdx寄存器中,返回值存在rax寄存器vuln函数执行了read(0,buf,0x400),又执行了write(1,buf,0x30)。看一下buf的位置,发现距离rbp只有0x10大小,存在栈溢出这里的栈原创 2020-12-29 22:17:10 · 2150 阅读 · 4 评论 -
ret2shellcode
shellcode的含义:在栈溢出的攻击技术中通常是要控制函数的返回地址到自己想要的地方执行自己想要执行的代码。ret2shellcode代表返回到shellcode中即控制函数的返回地址到预先设定好的shellcode区域中去执行shellcode代码,这是非常危险的。这里学习一下shellcode的利用方式,用ret2shellcode作为例题先用checksec查看一下保护,可以看到,没有开启任何保护机制,且是一个32位的程序使用IDA分析程序,只发现了主函数,并没有发现后门函数get原创 2020-12-18 21:15:31 · 4618 阅读 · 3 评论 -
get_started_3dsctf_2016
先进入到题目环境里,程序接收用户输入,然后返回一串字符checksec查看一下保护,只开启了NX,堆栈不可执行保护用IDA分析程序,这一段程序很简短,gets函数存在溢出发现了一个名为get_flag的函数通过这个函数传入参数,且满足条件(a1 == 814536271 && a2 == 425138641)即可读取到flag思路就是main函数溢出到返回地址的时候直接溢出到if条件判断里面,即使栈空间被破坏了,但是无所谓,已经输出flag了这里可以用本地调试判断偏移量原创 2020-12-17 22:30:11 · 1326 阅读 · 4 评论 -
[BJDCTF 2nd]r2t3 (整型溢出)
进入到题目环境,程序接收一个输入,测试之后,发现输入任何值的返回都是Oops,u name is too long!checksec查看一下程序保护,只开启了NX那就用IDA分析一下程序,将输入读取到buf的内存当中,又作为name_check函数的参数进入到name_check函数里,存在一个判断,如果参数的长度大于3且小于等于8,则将s的值复制到dest的内存空间里。分析之后,当通过条件判断之后,变量dest可以造成栈溢出这里也存在整数溢出,v3的类型为unsigned __int8是一原创 2020-12-16 17:58:42 · 172 阅读 · 0 评论 -
[第五空间2019 决赛]PWN5 (格式化输出漏洞)
连接到环境,首先测试一下具体有哪些功能,是一个登录程序checksec查看一下保护,开启了NX和Canary用IDA分析程序首先生成一个随机值,然后获取我们的输入读取到buf内存空间,再将buf内存空间的值输出,继而接收一个输入读取到nptr内存,如果nptr的整型与随机值相等则获取到权限分析之后,并未发现有溢出,不过存在格式化输出漏洞,参考文章只需改写掉随机值,然后输入该值即可通过条件判断,改写掉栈上的值,需要知道此时的偏移是多少,可以本地调试也可以远程测试%x是吧数据以16进制输出原创 2020-12-15 21:19:13 · 424 阅读 · 0 评论 -
[OGeek2019]babyrop(ret2libc)
题目给出了一个动态链接文件,是ubantu16的系统,先进入到题目环境里,可以直接进行输入,无回显,先checksec文件查看一下保护IDE分析一下程序先看主函数,读取了随机数,读到了buf的内存空间里,然后将这个随机数传入到sub_804871F的函数里进入到sub_804871F函数首先,发现函数中有个字符串的比较,如果字符串不相同,则会直接退出程序,而s是main函数中的buf(随机数),所以要想办法直接绕过这个比较,所以v1必须等于0。v1 = strlen(buf),strlen这个原创 2020-12-14 23:11:47 · 318 阅读 · 0 评论 -
ciscn_2019_c_1(类型:ret2libc)
和之前做的题目不太一样,这是一道Return2libc的题目,有很多问题还是不太懂,这里做一个记录。首先进入到题目环境里面,看看程序大概功能,这样方便了解程序。有三个功能选项,只有选项1才有具体的作用,会对输入进行加密,加密输出之后继续返回到程序用IDA分析程序checksec查看一下,开启了NX先看到主函数,汇编代码的大致意思也就是选项处输入1就可以进入到encrypt函数,下面给出主函数伪代码,输入的是v4,如果v4=1 调用encrypt函数进入到encrypt分析这里发现了ge原创 2020-12-13 12:41:25 · 315 阅读 · 0 评论 -
buu rip
连接上题目环境后,发现可以输入字符,然后得到返回[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传用IDA分析程序,发现主函数和一个名为fun的子函数先看main函数的汇编代码和伪代码get很明显没有限制输入,那么就存在溢出的漏洞,在字符串表中又发现了/bin/sh的字符,在fun函数中用了system函数进入到/bin/sh,那么就可以通过将fun函数的地址覆盖到返回地址就可以实现溢出获得系统权限双击s查看输入点在栈的位置,发现只需存入15个字节即可劫持函数返回地址,因此原创 2020-12-10 21:14:36 · 1973 阅读 · 4 评论 -
通过bof初识栈溢出
pwnable.kr中的bof也可以算是学习栈溢出的"hello world"题目给出了程序下载地址和c的代码,并且给了程序的一个监听口,通过该端口即可连接到题目的环境先分析一下C的代码#include <stdio.h>#include <string.h>#include <stdlib.h>void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflo原创 2020-12-09 00:17:40 · 209 阅读 · 0 评论