PWN
无
gclome
这个作者很懒,什么都没留下…
展开
-
xctf--新手区--guess_num
writeup老规矩,先checksec下,查看保护机制64位程序,保护机制全开啊,不过不慌,先运行一下大致看看两次输入分别是Your name和 guess number ,其余皆是程序输出,貌似没有得到什么有用的东西。再次借助强大的IDA查看源码:分析源码得知,我们要输入十次随机数产生的值,如果一次错,那就GG,十次全部输入正确,就success!,flag应该就藏在succes...原创 2020-04-20 20:07:20 · 717 阅读 · 1 评论 -
xctf--新手区--level2
writeup:checksec查看保护机制32位程序,开了NX和Partial RELRO顺便运行一下:接着放到IDA里面:在这里可以看见buf长度是0x88,我们可以的输入0x100个字符,我们在这里是可以发生缓冲区溢出可是这里并没有像上一题一样有一个直接调用system("/bin/sh")的函数,所以上题的方法显然走不通。还记得题目描述吗?菜鸡请教大神如何获得flag,大...原创 2020-04-19 17:24:30 · 663 阅读 · 0 评论 -
xctf--新手练习区--level0
writeup:拿到这个文件之后先checksec64位程序,开了NX然后再运行一下:会输出Hello,World,然后是输入,我这里输入了aaaaaaaaaaaaaaaaaa放入IDA里,开始展示的是汇编代码,然后我们F5就可以查看源码,我们先看看main函数里面的:主函数就是一行打印,一行输入,不过有意思的是,buf的长度是0x80,而read函数允许输入0x200,那我们岂...原创 2020-04-19 12:34:59 · 633 阅读 · 0 评论 -
pwn学习--LibcSearcher
以上一篇ret2libc绕过地址随机化的代码为例,一般在我们做题的时候没法查看 libc 的版本之类的,连上服务器后就是程序运行起来的情况,那这时候就需要新的知识来解决了LibcSearcher,可以通过它来找出偏移,此时依旧开启ASLRLibcSearcher安装:git clone https://github.com/lieanu/LibcSearcher.gitcd LibcSea...原创 2020-04-11 20:05:54 · 10761 阅读 · 1 评论 -
pwn学习---ret2libc绕过地址随机化
前情回顾之前的实践中,当我们开启了栈不可执行,但是关闭了地址随机化,我们可以通过找到system“/bin/sh”的地址,然后利用溢出跳转到system“/bin/sh”的地址去执行,当然,这一切都基于关闭了地址随机化,使得 system() 函数在内存中的地址是不会变化的,并且 libc.so 中也包含 “/bin/sh” 这个字符串,这个字符串的地址也是固定的。那么问题来了。。。。。。如...原创 2020-04-10 19:53:03 · 1137 阅读 · 0 评论 -
【转载】Pwn基础:PLT&GOT表以及延迟绑定机制
原文链接:Pwn基础:PLT&GOT表以及延迟绑定机制找了好多篇相关文章,这篇文章说的非常详尽,索性就转载到自己的博客里,以防以后找不到,如有侵权还请作者联系删除。Linux 动态链接关于动态链接与静态链接,可以打个比方就是:如果我的文章引用了别人的一部分文字,在我发布文章的时候把别人的段落复制到我的文章里面就属于静态连接,而给链接让你们自己去找着看就属于动态链接了PLT&...转载 2020-04-01 16:08:00 · 1117 阅读 · 0 评论 -
pwn学习---ropgadget和ret2syscall
ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,攻击者扫描已有的动态链接库和可执行文件,提取出可以利用的指令片段(gadget),这些指令片段均以ret指令结尾,即用ret指令实现指令片段执行流的衔接,从而构建恶意代码。可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。ret2syscall,即控制程序执行系...原创 2020-03-31 17:15:09 · 1438 阅读 · 0 评论 -
peda和pwndbg的切换
在调试时有时候需要不同功能,在gdb下需要安装两个工具pwndbg和peda,可惜这两个不兼容pwndbg在调试堆的数据结构时候很方便peda在查找字符串等功能时方便peda和pwndbg的切换nano /root/.dbginit进入这个文件,注释掉peda就会开启pwndbg,注释掉pwndbg就会开启peda,就实现了两个工具的切换...原创 2020-03-29 19:44:48 · 2676 阅读 · 1 评论 -
pwn学习---借助格式化输出绕过canary保护
0x01 原理简介格式化字符串漏洞是因为c语言中printf的参数个数不是确定的,参数的长度也不是确定的,当printf把我们的输入当作第一个参数直接输出的时候,我们输入若干格式化字符串,会增加与格式化字符串相对应的参数,会泄露出栈中的内容Stack canary保护机制在刚进入函数时,在栈上放置一个标志canary,然后 在函数结束时,判断该标志是否被改变,如果被改变,则表示有攻击行为发生。...原创 2020-03-29 11:36:47 · 472 阅读 · 0 评论 -
pwn学习---attach调试与ret2libc
0x01 attach调试我们将4.c文件编译成41.exe,然后使用python脚本运行C语言程序如下:#include<stdio.h>void exploit(){ system("/bin/sh");}void main(){ char buf[20]; gets(buf); }python代码如下:from pwn im...原创 2020-03-28 19:52:56 · 1230 阅读 · 0 评论 -
pwn学习----定位溢出点位置
0x00 准备工作首先,用于溢出的C语言代码为:#include <stdio.h>void exploit(){ system("/bin/sh");}void func(){ char str[0x20]; read(0,str,0x50);}int main(){ func(); retu...原创 2020-03-28 19:47:24 · 2275 阅读 · 0 评论 -
pwn学习---保护机制
操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,包括DEP、ASLR等。在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了DEP(Linux下对应NX)、ASLR(Linux下对应PIE)等机制,例如存在DEP(NX)的话就不能直接执行栈上的数据,存在ASLR(PIE)的话各个系统调用的地址就是随机化的。解读:Arch: i386-32-little ...原创 2020-03-20 11:38:39 · 2032 阅读 · 0 评论 -
缓冲区溢出举例1
先贴上老师给的一串代码:#include "stdafx.h"#include "string.h"char *shellcode="\x64\x65\x66\x67\x68\x69\x70\x71\x05\x10\x40\x00";void fun1(int a, int b){ printf("fun1 run!para a=%d,b=%d\n",a,b);}void fu...原创 2020-02-18 16:47:11 · 279 阅读 · 0 评论 -
缓冲区溢出举例2
示例如下:#include "stdafx.h"#include "string.h"char *shellcode="\x64\x65\x66\x67\x68\x69\x70\x71\x05\x10\x40\x00";void fun1(int a, int b){ printf("fun1 run!para a=%d,b=%d\n",a,b); char aa[4]={...原创 2020-02-18 15:44:04 · 239 阅读 · 0 评论 -
缓冲区溢出
#include <stdio.h>#include <string.h>void foo(){ printf("哈哈,我是被strcpy缓冲溢出的地方");}//最简单的缓冲溢出例子int main(){char output[8];//char name[] = "adcdefg"; //① 我们希望输入正确的值//char ...原创 2020-02-18 15:43:47 · 182 阅读 · 0 评论 -
【转载】shellcode介绍
原文链接:https://www.cnblogs.com/gg-mm/p/4156241.html缓冲区溢出攻击缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传统的缓冲区溢出攻击方式可能变得不再奏效,相应的介绍缓冲区溢出原理的资料也变得“大众化”起来。其中看雪的《0day安全:软件漏洞分析技术》一书将缓冲区溢出攻击的原理阐述得简...转载 2020-02-10 12:22:08 · 991 阅读 · 0 评论 -
shellcode2--弹出计算器
// 345.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include "windows.h"char shellcode[]="\x66\x81\xEC\x54\x04\x33\xDB\x53\x68\x2E\x65\x78\x65\...原创 2020-02-18 15:44:16 · 2078 阅读 · 0 评论 -
shellcode1--messagebox的应用
// 12345.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include "windows.h"char shellcode[]="\x90\x90\x90\x33\xDB\x53\x68\x64\x63\x62\x61\x68\x...原创 2020-02-23 13:07:32 · 317 阅读 · 0 评论