[BUUCTF]PWN——[BJDCTF 2nd]secret】的更多相关文章

[BJDCTF 2nd]secret 附件 步骤: 例行检查,64位程序,开启了canary和nx 本地试运行一下,看看程序大概的情况,好像是一个什么游戏 64位ida载入,检索程序里的字符串,发现了flag字样 双击,ctrl+x找到了函数 sub_46A3F(),游戏开始界面,让我们输入名字 sub_40136D()函数太长了,没法f5 看汇编,看到首先调用了sub_46A329函数,在sub_46A329里读入了一个数据,off_46D090-1,然后跟标记处的数据比较,如果正确的话,就跳…
[BJDCTF 2nd]ydsneedgirlfriend2 附件 步骤: 例行检查,64位程序,开启了canary和nx 试运行一下程序,看看大概的情况,经典的堆块的布局 64位ida载入,习惯性的检索程序里的字符串,发现了后门函数,shell_addr=0x400D86 4.找一下4个菜单选项的函数 add dele dele函数存在明显的UAF漏洞,关于UAF漏洞,具体的看这篇文章 https://my.oschina.net/u/4345478/blog/4656767 show 我们首…
[BJDCTF 2nd]r2t4 附件 步骤 例行检查,64位,开启了canary和nx 64位ida载入,检索字符串的时候发现了后面函数,shell_addr=0x400626 main函数 可以溢出0x8字节,但是开启了canary保护,没法利用,输出点存在格式化字符串漏洞,可以利用 查看程序的汇编可以看到,如果程序检查canary不通过,就会去执行___stack_chk_fail, 由于我们已经获取了后门函数的地址,所以我们可以利用格式化字符串漏洞可读可写的特性,将___stack_ch…
[BJDCTF 2nd]test 步骤 根据题目,ssh连接一下靶机 登录成功后,ls看一下当前目录下的文件,根据提示可知,我们没法直接获取flag字符串,但是我们可以读取test的源码, test.c 代码 可以看到这个程序在执行系统调用system的时候设置了过滤,过滤了"n.e.p.b.u.s.h.i.f.l.a.g.|./.$.`.-.<.>.."这些字符 我们去查看一下/usr/bin(存放命令的目录)这个目录里过滤了这些字符后还有那些命令是允许我们使用的 因为一…
[BUUCTF]PWN12--[BJDCTF 2nd]r2t3 题目网址:https://buuoj.cn/challenges#[BJDCTF%202nd]r2t3 步骤: 例行检查,32位,开启了NX保护 nc一下看看程序的大概执行情况 32位ida载入,shift+f12查看程序里的字符串,看到了system函数和 '/bin/sh' 字符串 双击跟进,ctrl+x找到调用改字符串的函数,找到了程序里的一个后门函数,shell_addr=0x804858B 根据nc得到的提示字符串,找到输…
[BUUCTF]PWN15--[BJDCTF 2nd]one_gadget 附件 步骤: 例行检查,64位,保护全开 nc试运行一下程序,看看情况,它一开始给了我们一个地址,然后让我们输入one gadget的地址 64位ida载入,shift+f12查看字符串,根据nc看到的字符串,找到关键函数 题目一开始输出的是printf函数的地址,题目一开始给了libc,知道了它的内存地址,就能够算出程序的偏移量了 print_addr=0x7fbe7e114830 offset=print_addr-…
[BJDCTF 2nd]8086 附件 步骤: 首先查壳儿,无壳,直接上ida,检索字符串,程序里就一个字符串 没法f5反编译出伪代码,大致看了一下汇编,start函数之后调用了sub_10030函数,sub_10030函数是一个死循环 中间那一串感觉应该是什么算法,选中,按c,force,强制转换成汇编查看 大概就是一个字符串与ox1f进行了异或操作,得到了]U[du~|t@{z@wj.}.~q@gjz{z@wzqW~/b字符串 知道了程序的算法,逆向一下写exp str="]U[du~|t@…
[BJDCTF 2nd]guessgame 附件 步骤: 例行查壳儿,64位程序,没有壳儿 64位ida载入,习惯性的检索程序里的字符串,看到了一串类似flag的字符串,拿去提交,成功 BJD{S1mple_ReV3r5e_W1th_0D_0r_IDA}…
因为以前做过一些题目,看见1分题目也不太多了,就想着,抓紧点把1分题都刷一下吧.所以开个帖子记录一下,题目简单的话就只贴exp了. [BJDCTF 2nd]secret 这里有一个输入可以进行溢出,name在bss段,下面有一个变量count 输入完名字会再次输入,会和一些值进行判断,如果能连续判断正确10000次,就可以拿到flag.这里每次判断正确一次,count这个变量会减一. 所以有两种做法: 1.将所有正确的值dump下来,然后写脚本,答完10000次,就拿到flag了. 2.将cou…
[BJDCTF 2nd]文件探测 这两天刷题碰到了一道稍微有难度的题,记录一下,有一些点是未被掌握到的. home.php: <?php setcookie("y1ng", sha1(md5('y1ng')), time() + 3600); setcookie('your_ip_address', md5($_SERVER['REMOTE_ADDR']), time()+3600); if(isset($_GET['file'])){ if (preg_match("…