
ctf
Y0ng.
这个作者很懒,什么都没留下…
展开
-
pwn -- pwnable.kr -- simple-login---学习stack pivot
在看关于pwn的书时学到了 栈帧劫持stack pivot 利用这个例题练习一下。基本思想:stack pivot利用到的gadget是在函数退出时需要的两条指令:leave(mov esp,ebp;pop ebp);ret;。这两条指令基本都会有。可以利用这两条指令,通过栈溢出的方式,实现可以完全控制栈。stack pivot实现的基本方法(我的理解通过栈溢出的方式将 我们之后要实现的完全可控的栈的地址写到EBP的地方写入之后 ,程序第一次leave;ret;,将写入的地址赋给esp。原创 2021-12-24 12:23:52 · 389 阅读 · 0 评论 -
攻防世界 pwn--实时数据检测
32位程序保护都没有开直接拖进ida分析int locker(){ int result; // eax char s[520]; // [esp+0h] [ebp-208h] BYREF fgets(s, 512, stdin); imagemagic(s); // 含printf函数,有格式化字符串漏洞 if ( key == 0x2223322 ) // key在bs原创 2021-11-30 15:32:22 · 349 阅读 · 0 评论 -
攻防世界 pwn--pwn-100
一、checksec一下开启了NX二、 file一下,查看文件属性64位文件三、执行让用户不断输入四、拖进ida里分析看反汇编代码主要代码:数组v1的大小是0x40,后面利用的read函数的size是0xC8,有栈溢出漏洞五、在ida里没有找到可以利用的system("bin/sh)和system("cat flag")六、原程序中没有调用system函数,在GOT和PLT表中没有随system函数的记录,只能从libc中寻找system函数有puts和read函数,可以利用原创 2021-11-28 14:20:44 · 3485 阅读 · 0 评论 -
攻防世界pwn--Mary_Morton
攻防世界pwn–Mary_Mortonfile 一下,查看文件属性checksec一下,查看保护措施开了canary,在调用函数的时候会在栈上设置一个标志,标志的位置:EIPEBPcanary logol···栈的其他内容开了NX,栈不可执行。运行一下ida查看其反汇编代码在ida里看到有system函数:地址:0x4008DAgdb调试,查看格式化字符串参数的位置第六个位置查看有关栈溢出的函数:可以利用的栈溢出的buf的位置:rbp原创 2021-11-16 22:05:42 · 2302 阅读 · 0 评论 -
攻防世界 pwn string
存在格式化字符串漏洞漏洞点:写入shellcode的点 :判断*a1是否等于a1[1],*a1 = 68,a1[1] = 85。下面有一个read函数,将输入存放在v1,再下面有一个通过函数指针进行强制类型转换,将刚才的输入转换成一个函数,最后执行。exp:from pwn import *#p = process("./string")p = remote("111.200.241.244",'52204')p.recvuntil("secret[0] is ")addr =原创 2021-10-25 10:57:02 · 237 阅读 · 0 评论 -
攻防世界reverse高手进阶 ----- gametime
gfsj ----- gametime昨天做了一道攻防世界的题key和这个gametime,都是动态调试的题。key还稍微简单一些,gametime稍微费点时间,记录一下。昨天晚上可能是没进入做题的状态(疯狂为自己找借口),动态调试的时候稍微有点难受,就没有做出来,今天早上改完计网的题做了二十分钟就出来了。还是要专注一点呐!废话不多说,看题。先运行一下题目给的程序大致就是遇到s就按空格,遇到x按x,遇到m按m,前面都还按的挺顺畅的,后面就快了,反应不过来,按错了就直接退出。甚至玩通关了之后出现了原创 2020-10-19 16:56:43 · 934 阅读 · 0 评论 -
攻防世界逆向练习
elrond32两个重要函数:sub_8048414() \ sub_8048538()sub_8048414:看main函数里,sub_8048414()的返回值需要是非零的数if才能成立,所以这个函数的第二个参数需要是2、8或者是大于9的数a = 0while((7*(a+1)%11) >=0 and (7*(a+1)%11) <=9): # 暂时先把2和8放进去。看print出来的数 print (a) a = 7*(a+1)%11print原创 2020-09-23 16:12:08 · 355 阅读 · 0 评论 -
攻防世界逆向练习--babyxor
babyxordword_435DC0=[102, 109, 99, 100, 127, 55, 53, 48, 48, 107, 58, 60, 59, 32 ]dword_435DF8=[55, 111, 56, 98, 54, 124, 55, 51, 52, 118, 51, 98, 100, 122]dword_435E30=[26,0,0,81,5,17,84,86,85,89,29,9,93,18,0,0]sub_40108C()化成代码:a1 = unk_435DC0ch原创 2020-09-23 14:58:22 · 476 阅读 · 0 评论 -
强网杯 2020 侧防
时隔一个多月重看侧防题main函数点了几个函数之后发现sub_12F0()函数是加密函数分析一下代码:v4 = 0do{ a1[v4] = (a1[v4] ^ QWBlogs[v4%7]) +65 // 对a1做处理 v4++;}while(v4<len(a1)-1);for(i = 0;i<v2;i +=4) //将a1分组,四个为1组(这里假设每一组都是a1{ v7 = a1[3]; // 将a1[3]赋值给v7原创 2020-09-15 21:36:15 · 300 阅读 · 0 评论 -
网安国赛-2020-ciscn-reverse-z3
z3题目名即为z3,可猜测是用z3解方程z3库的安装:借鉴简书中的一篇文章: z3安装与学习.此文章中没有准确提到linux下z3库安装的方法,自己尝试了一下做了一个小结:1.前提:Python的版本是2.x2.不能用pip install z33.采用源码安装下载链接:源码下载4.下载对应版本时查看自己的虚拟机是64位还是32位:sudo uname –m若是64位则显示x86_64。确认好之后下载对应的源码5.之后按照上面那篇文章的步骤安装就ok了那就开始做题吧。文件拖入i原创 2020-08-22 16:23:28 · 582 阅读 · 0 评论 -
网鼎杯2020-reverse---signal
reverse signal第一次接触虚拟机逆向,还不太清楚虚拟机逆向的原理等等,如有错误,请指正。拖进ida查看伪代码:main函数:qmemcpy 给v4赋值,赋值内容是unk_403040函数,再看这个函数的内容:是这一大段数据再看vm_operad函数:这个函数里用到了403040函数,为了方便,将这个函数称作a1函数。vm_operad函数里都是witch-case函数因为v10,v9.。。太难辨认了,把它们分别改成了i、j、k、m、n看case语句:case1:赋值,原创 2020-05-17 20:05:53 · 1134 阅读 · 0 评论