get_started_3dsctf_2016】的更多相关文章

题外:这道题不是很难,但是却难住了我很久.主要是在IDA中查看反编译出的伪代码时双击了一下gets()函数,结果进入gets函数内部,我当时就懵了,误以为这是一个自定义函数,但是自定义函数应该应该不能与已有的库函数同名啊.虽然有此疑问,我没有深究,而是老老实实分析反汇编出来的伪代码,结果发现函数层层嵌套,根本分析不完.最后我不得以去网上看了别人的题解,发现根本不用管这些.题最后做出来了,但还是不明白为啥会有这么一大串代码. ------------------------------------…
拿到题目,依旧还是老样子,查看程序开启的保护和位数 可以看到程序开启了nx保护是32位程序,于是我们把程序放入ida32编译一下 一打开就能看到非常明显的get_flag这个程序,f5观察伪代码 当a1和a1都等于相应的值后就可以获取到flag,再查看main函数 gets存在明显的栈溢出 我刚开始想的是直接在ret处用 v2 = fopen("flag.txt", "rt")的地址覆盖,后来发现远程链接不能获取到flag,所以只好用别的办法 观察汇编代码可以看到,…
[BUUCTF]PWN11--get_started_3dsctf_2016 题目网址:https://buuoj.cn/challenges#get_started_3dsctf_2016 步骤: 第一个方法,本地打通,要自己创建一个flag.txt 例行检查,32位,开启了nx保护 nc一下,看看程序大概的执行情况 32位ida载入,shift+f12查看程序里的字符串,看到了flag.txt 双击跟进,ctrl+x查看哪个函数调用了它,发现了一个函数,当a1=0x308cd64f,a2=0…
get_started_3dsctf_2016 关键词:ROP链.栈溢出.mprotect()函数 可参考文章(优质): https://www.cnblogs.com/lyxf/p/12113401.html #!python #coding:utf-8 from pwn import * from LibcSearcher import * context.log_level = 'debug' #context.arch = 'i386' elf = ELF('./get_started_…
get_started_3dsctf_2016-Pwn 这个题确实有点坑,在本地能打,在远程就不能打了,于是我就换了另一种方法来做. 确这个题是没有动态链接库,且PIE是关的,所以程序的大部分地址已经定死了,帮了大忙了. 第一个本地能打通的思路(远程打不了) 修改eip跳转到get_flag函即可,可是直接进行跳转到该函数,会存在一个过滤,把该地址给过滤掉了,其实往后退几个指令就行 后面我查了一下国外的资料,他是的方法跟我一样,就是在buuctf里远程打不了. 外国大牛博客:http://www…
[BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希望各位师傅在评论区不吝赐教!非常感谢! [OGeek2019]babyrop /dev/random和/dev/urandom是unix系统提供的产生随机数的设备,先产生一个随机数 输入放到buf里,然后与随机数比较,不等的话程序就结束了,于是将输入的第一个字母弄成'\0',以绕过strncmp 后…
[BUUCTF]PWN14--not_the_same_3dsctf_2016 题目网址:https://buuoj.cn/challenges#not_the_same_3dsctf_2016 步骤: 例行检查,32位,开启了nx保护 nc一下看看程序大概的执行情况,没看出个所以然 32位ida载入,shift+f12查看程序里的字符串,发现flag.txt 双击跟进,ctrl+x找到调用这个字符串的函数,可以看到,这个函数将flag读了出来,存放到了unk_80F91B的位置,我们要想办法将…
温故而知新,可以为师矣.所以花了几天时间重新做了下 buuctf 的 pwn 题,先发下第一页共 32 题的题解.还有如果题解都很详细那么本文就太长了,写起来也浪费时间,所以比较简单的题就直接丢 exp 了,不懂可以去看其他人的题解,难的题我觉得我写的题解应该是挺详细的.截至到发文日期,只要是涉及 libc 的题目的 exp 都是能打通远程的.如有错误评论欢迎指正. test_your_nc 直接 nc 连接即可得到 shell rip 简单的 ret2text ,不过靶机是 ubuntu18…