![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
CTF-PWN-刷题-XMCVE培训课
文章平均质量分 68
CTF-PWN-刷题-XMCVE培训课
「已注销」
“没有人能把你变好,
时间和经历只是陪衬。
支撑你变得越来越好的,是你坚强的意志、修养、品行,以及不断的反思和修正。”
展开
-
习题--pwn3
文章目录pwn31.程序分析2.栈帧设计3.exp编写pwn31.程序分析首先file一下,发现是32位程序:checksec一下,发现pie没开:ldd一下,找到使用的动态链接库:ida分析,发现存在函数vulnerable_function(),可以用来栈溢出题目给出了一个.so文件,那么只需要泄露got表内容,就可以得到system()函数的真实地址。bin_sh字符串也可以到libc里面寻找。发现write()函数在read()函数前被调用,因此可以使用write()将writ原创 2021-09-20 17:32:47 · 1079 阅读 · 0 评论 -
pwn3_x64
文章目录pwn3_x641.程序分析2.栈帧设计3.exp编写pwn3_x641.程序分析file一下,发现是64位程序:checksec一下,发现pie没开:ldd一下,找到需要的动态链接库:ida分析:思路和上一题32位的一样,没啥好分析的64位与32的不同在于传参:当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9因此需要ROP链找到rdi, rsi, rdx。用ROPgadget查看下:发现有现成的pop rdi; ret原创 2021-09-18 23:37:58 · 206 阅读 · 0 评论 -
习题-pwn2
文章目录pwn21.程序分析2.栈帧设计3.exp编写pwn21.程序分析首先file一下,发现是32位程序:checksec一下,发现pie关闭:ida分析程序,发现存在system函数,因此可以到plt内找到system:分析vulnerable_function(),可以得到需要溢出的长度为0x88 + 4 =136+4 = 140,同时存在read(),可以用来溢出[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3YpmnStC-1631942444原创 2021-09-18 13:20:57 · 131 阅读 · 0 评论 -
pwn2_64
文章目录pwn2_641.程序分析2.栈帧设计3.exp编写pwn2_641.程序分析本题和上一题一样,但是是64位的,那么就需要改变传参的方式:当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9那么就需要使用rop先把需要的参数“/bin/sh”传入rdi。2.栈帧设计3.exp编写from pwn import *context(log_level = 'debug', arch = 'amd64', os = 'linux')io原创 2021-09-18 13:20:35 · 106 阅读 · 0 评论 -
习题--pwn1
文章目录pwn11.程序分析2.栈帧设计3.exp编写pwn11.程序分析首先file一下,发现是32位程序:checksec一下,发现栈段可以执行:ida分析,main函数内部调用了vulnerable_function(),可以用来栈溢出:同时发现上面的printh可以用来泄露buf的地址,因此可以将shellcode填上buf处,然后根据泄露的地址再跳回来执行shellcode程序一下,可以查看到泄露的buf地址:gdb调试发现需要淹没的长度为:0xffffd2d8−0xfff原创 2021-09-18 13:03:25 · 139 阅读 · 0 评论 -
习题-pwn0
文章目录pwn01.程序分析2.栈帧设计3.exp编写pwn01.程序分析首先file一下,发现是64位程序:checksec一下,发现没有pieida分析:存在read函数,可以栈溢出利用。同时,发现存在callsystem()函数,可以直接获取shell:这就和ret2text一样了。gdb计算需要覆盖的长度为60。但是因为本机环境是ubuntu20.04,64位程序的system("/bin/sh")需要堆栈平衡因此加上一个ret:0x00000000004005A5原创 2021-09-18 13:02:39 · 171 阅读 · 0 评论 -
fmtstr1
文章目录fmtstr11.程序分析2.exp编写fmtstr11.程序分析file一下:checksec一下:ida分析一下,发现存在printf(&buf),这里有格式化字符串漏洞,可以进行利用发现如果x是4的话,就能够获取到shell,但是在数据段内x的值为3:因此,需要利用格式化字符串利用,将x的值从3修改为4。使用gdb进行调试,在printf处设置断点。输入"%d%d", 当进入printf(&buf)时,查看栈内变量,发现"%d%d"是格式化字符串的第1原创 2021-09-18 13:02:04 · 239 阅读 · 0 评论 -
ret2text
文章目录ret2text1.检查保护机制2.ida分析程序3.exp编写ret2text进程存在危险函数如system(“/bin”)或execv(“/bin/sh”,0,0)的片段,可以直接劫持返回地址到目标函数地址上,从而获取shell。1.检查保护机制首先调用checksec,检查保护机制:发现pie没有开启2.ida分析程序使用ida打开程序ret2text,静态分析:发现main函数中存在函数:vulnerable(),里面有危险函数gets(),可以用来进行栈溢出发现原创 2021-09-18 13:00:52 · 219 阅读 · 0 评论 -
ret2syscall
文章目录ret2syscall1.原理2.构造过程3.expret2syscallret2syscall: 控制程序执行系统调用,获取 shell1.原理系统调用参考博客:https://blog.csdn.net/qq_33948522/article/details/938808122.构造过程使用ida分析程序,发现存在gets()函数,可以用来进行栈溢出:使用shift+F12查看字符串,发现存在"/bin/sh"字符串,位于0x080BE408处:基于rop链构造思路,需原创 2021-09-18 13:00:16 · 268 阅读 · 0 评论 -
ret2shellcode
文章目录ret2shellcode1.保护机制2.ida分析3.exp编写ret2shellcodeshellcode:在栈溢出的攻击技术中通常是要控制函数的返回地址到自己想要的地方执行自己想要执行的代码。ret2shellcode代表返回到shellcode中即控制函数的返回地址到预先设定好的shellcode区域中去执行shellcode代码,这是非常危险的。1.保护机制[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4UzJhYXX-1628871725391原创 2021-08-14 00:22:12 · 164 阅读 · 0 评论 -
ret2libc3
文章目录ret2libc31.程序分析2.栈帧设计3.exp编写ret2libc3当前的ret2libc3:无system,无”\bin\sh“1.程序分析首先file一下,发现是32位程序:checksec一下,发现没有开启pieida分析程序:发现有个See_something()函数可以用来泄露具体给定地址内的信息:main函数内还有个Print_message(),可以用来栈溢出:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKJoX7原创 2021-08-06 20:04:42 · 360 阅读 · 0 评论 -
ret2libc2
文章目录ret2libc21.程序分析2.栈帧构造2.1 第一种构造方式2.2 第二种构造方式3.exp编写ret2libc2当前的ret2libc2:有system,无”\bin\sh“1.程序分析找个题和ret2libc1差不多,区别在于程序里面没有现成的"/bin/sh"字符串。首先checksec一下:file一下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ss8LRj6L-1628251397723)(https://i.loli.net/2原创 2021-08-06 20:03:38 · 175 阅读 · 0 评论 -
ret2libc1
文章目录ret2libc11.简单机制介绍2.程序分析3.exp编写ret2libc11.简单机制介绍ret2libc即控制程序执行libc中的函数,一般是返回至某个plt处或者函数的具体的位置(比如got表项的内容)。一般,我们选择跳转到system("/bin/sh")位置,从而获取shell。当程序调用某个函数时,程序会去plt表内查找,plt表再去got内查找,如果got内存在那么直接返回;如果不存在那么就调用查找函数搜寻需要用到的函数,然后存入got表内。当前的ret2libc1:有sy原创 2021-08-06 20:03:08 · 264 阅读 · 0 评论 -
uaf-lab 10 hacknote
文章目录uaf-lab 10 hacknote1.程序分析2.设计思路3.exp编写uaf-lab 10 hacknote1.程序分析分析程序,发现程序是由几个部分组成:Add note、Delete note、 Print note,另外发现了magic函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycbqU3Az-1628251301262)(https://i.loli.net/2021/07/23/R1mvnwpc4h7sF6f.png)]下面对4个部分原创 2021-08-06 20:01:50 · 180 阅读 · 0 评论