
pwn
文章平均质量分 67
Flying_Fatty
这个作者很懒,什么都没留下…
展开
-
pwnable.kr
从头开始学习ctf-pwn原创 2016-04-22 23:37:51 · 681 阅读 · 0 评论 -
RCTF 2015 welpwn [ROP] [x64通用gadgets]
先checksec一下:漏洞点其实蛮好找的:程序里也没几个函数main函数中read了一个字符串,然后当成参数传递给了echo函数在echo中的函数的接收buffer长度仅仅为0x10,而且是一个一个字符赋值的,栈缓冲区溢出漏洞,0x10 + 0x8 = 0x18个填充控制了ESP之后,程序开启了NX,一定想到的是ROP这里的基础知识是:http:/...原创 2019-01-26 23:12:26 · 828 阅读 · 0 评论 -
RCTF 2015 welpwn [ROP] [x64通用gadgets] [简单写法]
https://blog.youkuaiyun.com/u011987514/article/details/70232881按照自己习惯,代码重写一下:#!/usr/bin/env python# coding=utf-8from pwn import *io = process("./welpwn")#gadgetsp4r = 0x40089Cpr = 0x4008A3mai...转载 2019-01-26 23:27:22 · 400 阅读 · 0 评论 -
hackme pwn echo [format string]
题目名称就已经是很明显的提示了!echo ~ 提示:格式化字符串从IDA中看main:即可看到printf(&s)!漏洞原理部分:http://www.cnblogs.com/Ox9A82/p/5429099.html漏洞刷题提升:https://www.anquanke.com/post/id/85785https://www.anquanke.com/pos...原创 2019-01-31 22:28:07 · 505 阅读 · 0 评论 -
湖湘杯 pwn200(pwne) [format string]
网上随便找一下能够找到二进制文件和libc,这里就不贴了~在函数80485CD处有上图所示的printf漏洞checksec发现,32位程序,和hackme的echo不同的是,开了Canary和NX所以思路还是一样,先要泄露偏移值#!/usr/bin/env python# coding=utf-8from pwn import *context.log_lev...原创 2019-01-31 23:19:06 · 423 阅读 · 0 评论 -
hackme pwn rop [ROPgadget]
IDA找漏洞点很快 所以,栈溢出的偏移值为:0xC + 0x4 = 0x10因为开了NX,所以需要ROP~剩下的就是工具:ROPgadget --binary rop --ropchain原创 2019-02-01 13:17:49 · 578 阅读 · 0 评论 -
hackme pwn toomuch2 [buffer overflow + ROPx86]
checksec一下,发现啥保护也没有,不需要再找libc的版本了这里的漏洞点在toomuch1中说过了在toooomuch函数中,覆盖0x18+4个值,即可达到溢出效果下一步目标是:将"/bin/sh"写入bss段中,然后执行system函数即可类似x64平台,在x86中也有相似的通用gadgetsexp1:利用gets+system:#!/usr/bi...原创 2019-01-27 17:59:31 · 399 阅读 · 0 评论 -
hackme pwn rop2 [syscall + rop]
先checksec一下:有个大概思路:rop过NXmain中和overflow函数里都有syscall函数,如下:观察到这里有缓冲区溢出!"A" * 0xC!先来学习syscall函数:syscall(int arg1, ……),为可变参数的函数,第一个参数为系统调用号,用以下命令查询:cat -n /usr/include/x86_64-linux-gnu/...原创 2019-02-05 23:12:45 · 564 阅读 · 0 评论 -
jarvisoj pwn smashes (2015 32c3-ctf hackme) [Stack Smash]
题目链接:https://www.jarvisoj.com/challenges题目bin文件来源:github - ctfswriteup - 2015 - 32c3ctf - pwn - hackme 分析过程:开启了NX与Canary程序流程:输入名字之后,即可输入一个地址去覆盖flag~这里涉及的知识点是:Stack Smash当程序开启了Can...原创 2019-02-07 23:36:40 · 608 阅读 · 0 评论 -
hackme pwn smash-the-stack [stack smash]
根据提示:stderr!和32C3的readme一样,原理看上篇,这里贴两个exp#! /usr/bin/env python# coding=utf-8from pwn import *#io = process('./smash-the-stack')io = remote('hackme.inndy.tw', 7717)argv_addr = 0xffffcfa4buf...原创 2019-02-07 23:42:56 · 355 阅读 · 0 评论 -
jarvisoj pwn XMAN系列
目录level0level1level2level2_x64level3Level3_x64level0题目明显提示:buf的长度是0x80,可以直接覆盖掉return address到callsystem函数level1漏洞是一样的,难度加大:没有system函数地址,需要泄露;没有"/bin/sh",需要用read函数写入bss段看...原创 2019-02-09 14:47:10 · 441 阅读 · 0 评论 -
三个白帽 pwnme - k0 [fmtstr] - [Hijack RetAddr]
程序运行起来功能很简单:输入用户名密码、输出用户名密码、退出运行起来发现:这里可能会有个缓冲区溢出的漏洞,在输入用户名时可以超过20个,超过的部分成了密码进一步测试发现,该程序存在fmtstr漏洞在程序4008A6处提供了system("/bin/sh"),所以我们的思路是,劫持某个函数返回地址到这儿即可先来计算偏移:在这里下断Breakpoi...原创 2019-02-27 19:55:47 · 1177 阅读 · 2 评论 -
X-CTF Quals 2016 - b0verfl0w [Stack Pivoting]
学习资料:https://ctf-wiki.github.io/ctf-wiki/pwn/linux/stackoverflow/fancy-rop/#stack-pivoting为什么要使用?(1)栈溢出时,覆盖后剩下的栈空间不够写exp、ROP等溢出利用(2)开启了PIE,栈地址不固定,没法利用要求:可以控制EIP或ESP的至少一个,利用gadgets:pop esp...原创 2019-02-13 15:06:09 · 1105 阅读 · 0 评论 -
2018 - 安恒杯 - babypie [stack partial overwrite]
明显的是缓冲区溢出呀,read函数可以多读64位程序,开启了NX和PIE,且程序里有了system("/bin/sh")目标:控制RIP到A3E函数即可~首先,要处理canary的问题~然后,覆盖返回地址~partial overwrite:在开启了PIE后,无论高位地址如何变化,低位地址是不变的,意味着有概率“撞到”正确的地址exp如下:#!/usr/bin/e...原创 2019-02-13 22:36:51 · 1420 阅读 · 0 评论 -
2015-CSAW-contacts [fmtstr in heap]
先尝试着找到漏洞点:fmtstr在新建联系人时,如果在Description项中输入格式化字符串,在存在相应漏洞点然后对应到:先Create,再Display,并定位到相关函数程序开启了NX和Canary,来单步调试一下看看在漏洞点处发生了什么Breakpoint 1, 0x08048c22 in ?? ()gdb-peda$ stack 200000| 0xff...原创 2019-03-05 23:05:46 · 1296 阅读 · 1 评论 -
hackme pwn toomuch1 - buffer overflow
一开始看到这个漏洞还是蛮明显的~这里s的长度只有0x18个字节,然后用的是gets和strcpy来输入和传递,意味着没有长度限制与安全检查,所以可以直接缓冲区溢出来覆盖函数返回地址返回地址在ebp + 4,这里是ebp - 18中间的填充值也就好算了~和homework一样,这里有现成的函数重用代码如下:#!/usr/bin/env python# coding=utf...原创 2019-01-23 23:12:49 · 346 阅读 · 0 评论 -
hackme pwn toomuch1 - 二分法解题
分析函数流程:首先是密码正确性判断,然后是玩游戏~第一关:43210典型的二分法猜数字:0~100的区间,有8次机会!2^8=256>100,次数足够了第一次猜50,大了就说明数字在0~49中,则猜25;小了就说明数字在51~99中,则猜75;最后得到结果,即得到fake_flag(fake_flag是这个题的第一关)截图如下:这里运气比较好,...原创 2019-01-23 23:07:24 · 281 阅读 · 0 评论 -
hackme pwn homework
根据提示:Index out bound, Return Address根据源码:void run_program(){ int arr[10], i, v, act; …… while(1) { …… switch(act) { case 0: return; ...原创 2019-01-23 22:39:02 · 398 阅读 · 0 评论 -
pwn专用虚拟机的简单工具配置
pwn选手的基本配置信息原创 2016-08-02 11:26:53 · 3739 阅读 · 0 评论 -
格式化字符串漏洞泄露StackCanary
2017陕西省的pwn_box这个题作为调试的程序,gdb作为工具先来熟悉原理,推荐几个pdf学习懂原理吧:Format String Exploitation-Tutorial By Saif El-ShereiExploiting Format String Vulnerabilities scut/team teso看完这几个会对原理有深刻认识,然后如何操作呢?戳我原创 2017-04-26 17:19:24 · 3106 阅读 · 0 评论 -
缓冲区溢出漏洞
这个也是很常见的一个漏洞,原理是在没有栈保护的时候(或者有Canary的值然后被我们泄露出来之后),我们可以覆盖掉栈帧的返回地址,然后控制函数流程,从而达到提权的目的。以2017陕西省的比赛赛题pwn_box为例进行调试缓冲区溢出一般发生在字符串的读取,因为没有做边界上的检查,会导致读取的字符数量可能大于程序中申请的数量,导致栈溢出截图中可以看到,Password的地方有个原创 2017-04-27 01:16:06 · 5637 阅读 · 0 评论 -
2017广东红帽杯pwn1_writeup:简单ROP
先来正能量一波:作为一个一直没入门pwn的小菜鸟,这一段时间一直被学弟按在地上摩擦很不爽很不爽~~~~~~~~------------------------------------------------------------------------------------先给出几个学习链接:一步一步ROP:x86一步一步ROP:x64论文:Return-O原创 2017-05-09 17:15:27 · 4198 阅读 · 2 评论 -
2017陕西赛pwn_box_Writeup
题目链接:BIN的Magical_Box格式化字符串泄露Canary和libc地址缓冲区溢出提权from pwn import *Local = Falseif Local: io = process('./pwn_box') libc = ELF('/lib/i386-linux-gnu/libc.so.6') elf = ELF('原创 2017-04-27 11:35:33 · 674 阅读 · 0 评论 -
[Toddler's Bottle]-[leg]
真心好久没有开新题了,没有忘记pwn这个事情的先说说这个题的重点在哪儿重点在于两个地方:A:这个是一个汇编题,与熟悉的X86的汇编语句不一样,很明显需要去查询其他汇编语言的相关知识,考验自学能力B:关键代码在main中:key1()+key2()+key3()) == keykey是输入的一个值,key1(),key2(),key3()都是汇编函数中的返回的固定值,原创 2016-07-25 21:16:36 · 501 阅读 · 0 评论 -
[Toddler's Bottle]-[bof]
linux下的所谓的简单的缓冲区溢出的题这是题目链接中给的bof.c源代码#include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // smash me! if(key == 0xcafebabe)原创 2016-05-04 12:32:04 · 797 阅读 · 0 评论 -
[Toddler's Bottle]-collision
慢慢来学习linux原创 2016-04-23 18:01:16 · 599 阅读 · 0 评论 -
[Toddler's Bottle]-[flag]
这个7分的题其实很脑洞方法很简单:拖入IDA中查找字符串看到什么熟悉的东西了吗?对,upx肯定是upx加壳处理过的那么呢,需要百度一发找工具呗,linux下的upx加壳脱壳工具就这个:sudo apt-get install upx在terminal下输入upx查找使用方法脱壳命令是-dupx -d flag就可以把文件脱壳原创 2016-05-10 20:57:23 · 849 阅读 · 0 评论 -
[pwnable.kr] input
网上最全的题解在这:input题解知识点细节看上面那个题解就好了,非常详细细节问题折腾好久,来学习一下:如何把input文件放上去?有两种方法:A:WinSCP,注意tmp文件我们没有足够权限,只有把文件放进去的权限,拖进去了就好B:用scp命令,推荐个学习博客:scp命令学习注意哦,修改端口是大写scp -P 2222 inputpwn.c input@p原创 2016-08-03 18:21:59 · 2739 阅读 · 3 评论 -
[Toddler's Bottle]-[fd]
很简单的学习linux的好玩的东西原创 2016-04-22 23:49:55 · 566 阅读 · 0 评论 -
pwnable.kr - passcode
pwnable.kr passcode原创 2017-10-12 13:05:03 · 561 阅读 · 0 评论 -
看雪wifi万能钥匙CTF年中赛 第四题 writeup
这个题和这次秋季赛的第四题很类似,都是利用的堆的unlink来溢出,然后system(“/bin/sh”)来提权的所以打算先学习这个,然后再去自己做秋季赛第四题官方writeup和题目下载链接主要是看了这篇writeup:double free解法double free,就是free两次(废话)先来分析程序流程,再来说double free是个什么原原创 2017-11-26 11:14:22 · 1453 阅读 · 0 评论 -
看雪wifi万能钥匙CTF年中赛 第四题 writeup(2)
看雪CTF原创 2018-01-04 11:27:34 · 677 阅读 · 0 评论 -
hackme pwn onepunch
做的题太少了,不知道应该把这种题目如何归类int __cdecl main(int argc, const char **argv, const char **envp){ …… v5 = __isoc99_scanf("%llx %d", &v6, &v4); if ( v5 != 2 ) return 0; *v6 = v4; …… ...原创 2019-03-14 23:59:11 · 524 阅读 · 0 评论