ctf学习记录

buuctf

pwn

test_your_nc

直接交互

rip

栈溢出返回到后门函数,本地实测需要栈平衡

warmup_csaw_2016

还是栈溢出返回到后门函数,需要栈平衡

ciscn_2019_n_1

又是栈溢出返回到后门函数

pwn1_sctf_2016

本地文件无法运行

gdb pwn1_sctf_2016

r

报错

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

ldd pwn1_sctf_2016

linux-gate.so.1 (0xf7efc000)
libstdc++.so.6 => not found
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7ec4000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7ce8000)
/lib/ld-linux.so.2 (0xf7efd000)

sudo apt-get install lib32stdc++6

解决

ida反编译

太复杂直接gdb动态调试

大概是个最多读取31个字符内容的字符串(不包括\x00)到s字符串中,然后将s复制到全局变量v0字符串中,再printf("So, %s\n", s);

没办法覆盖到ebp控制,有v0全局变量

将s指针指向的字符串内容输出

动态调试,格式化字符串的地址

程序没太看懂,但是可以根据函数名判断,replace是把输入的I转化成you,原来只能输入31个字符覆盖不到ebp,乘3以后就足够了

动态调试测试需要先填64个字符才到return address,于是构造payload=21个I+1个A+后门函数地址,进行交互即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值