plaidctf-2016 Pwn试题小结

回顾了一下今年plaidctf Pwn部分的题目,感觉还是蛮有意思的,值得研究一下。

1.unix_time_formatter-76

最简单的一道题,考点是UAF。说是UAF但是其实根本就不算是真正的UAF利用,无非就是对释放的内存块进行同大小的占位。因为程序中会把内存块的内容作为system函数的参数,所以只要重新占位并写入/bin/sh就可以了,这道题还是相当简单的。

2.butterfly-150

这道题比较有趣。详细的看了一下。

int __cdecl main(int argc, const char **argv, const char **envp)
{
  setbuf(_bss_start, 0LL);
  puts("THOU ART GOD, WHITHER CASTEST THY COSMIC RAY?");
  if ( fgets(&buf, 50, stdin) )
  {
    v4 = strtol(&buf, 0LL, 0);
    v5 = v4;
    v6 = v4 >> 3;
    bianhuan = (v4 >> 3) & 0xFFFFFFFFFFFFF000LL;
    if ( mprotect((void *)bianhuan, 4096uLL, 7) )
    {
      perror("mprotect1");
    }
    else
    {
      v3 = 1;
      *(_BYTE *)v6 ^= 1 << (v5 & 7);
      if ( mprotect((void *)bianhuan, 0x1000uLL, 5) )
      {
        perror("mprotect2");
      }
      else
      {
        puts("WAS IT WORTH IT???");
        v3 = 0;
      }
    }
  }
 }

这道题的所有代码就只有这么多,并不存在我们通常认识的漏洞,此题的考点是位翻转的利用

buf是栈上空间,简单的来说就是获取一个整数,然后把这个数作为地址去做一个位运算。有趣的是在位运算之前对地址增加w权限,运算之后又关闭w权限。
由这个权限变化我首先想到的就是对指令进行写操作,因为一般来说没有写权限的地址太少了,题目特意给了写权限就是让我们去写指令。其中对EIP的劫持也很有趣,需要对opcode有比较深入的了解。

具体的利用步骤参见:http://r0p.club/2016/butterfly/

时间: 2024-12-23 09:46:24

plaidctf-2016 Pwn试题小结的相关文章

西邮Linux兴趣小组2016免试题

持续更新ING!才到第四关,欢迎探讨! 4月伊始,西邮Linux小组为五月纳新进入了前期宣传阶段,免试题一放出,引来各个热爱技术的同学热情挑战. 免试题入门可从西邮Linux小组官网中戳入,或直接点西邮Linux小组2016免试题进入. 本想着从百度进入免试题入口,却意外发现2013年曾有外校学生写过13年的免试题攻略,对小组免试题考察风格有了初步的了解.详见西邮Linux小组2013免试题 第一关 首页如图所示,看见START,就立刻戳了进去. 进去后是一张背景图片,中间写着2006的年份(西

Linux 兴趣小组2016免试题 第四关揭秘

Linux 兴趣小组2016免试题 点这里 首先贴出第四关链接Linux 兴趣小组2016免试题 第四关 第四关: 进入网址我们看到的是4张扑克牌K,这是什么意思? 要我斗地主?好了,还是乖乖的先查看源码吧. 但是什么也没有发现啊.没办法,将四张照片都下载下来看看,可是左看右看还是一张图片啊,该不会在图片内容中隐藏着什么吧?那怎样查看图片内容呢? 找个十六进制编辑器吧! 这些其实都可以,大家自己选择由于我在Linux操作系统下熟悉了hexedit,就下载了一个hexedit来分析.没办法,一张一

2016国赛小结

与信息安全比赛结缘始于2013年. 2013年山东省没有举行省赛选拔,我们直接报名参加了国赛,仓促应战,只得了24名,三等奖. 2014年未举办国赛,下半年参加了省赛选拔,第4名,二等奖.前5名可以参加新一轮集训和选拔,我们因故弃权. 2015年访学一年,未参加比赛. 2016年上半年,没想到竟意外地被选为了国赛裁判. 通过这次裁判经历得以一窥比赛全貌,收获颇丰.总体而言,在比赛过程中应注意以下几点: 一进场时最易慌乱,这时一定要稳住.比赛中一定要仔细听裁判说什么,有不懂的一定要及时问,不可自己

css面试试题小结

行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效.告知浏览器的解析器用什么文档标准解析这个文档.DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现.link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用:而@import是CSS提供的,只能用于加载CSS.link写在html页面中,@import写在CSS页面中页面被加载的时,link会同

ZCTF2015 pwn试题分析

ZCTF的pwn赛题分析, PWN100 这道题与SCTF的pwn100玩法是一样的,区别在于这个要过前面的几个限制条件.不能触发exit(0).否则就不能实现溢出了. 依然是触发canary来leak出内存中的flag. note1 这次ZCTF的题是以一个系列出的,以下三个题都是同一个程序. 首先看了一下程序的大概流程,这个是记事本程序. 1.New note\n2.Show notes list\n3.Edit note\n4.Delete note\n5.Quit\noption--->

RCTF2015 pwn试题分析

pwn200 漏洞给的很明显,先是读到了main的局部数组中,然后在子函数中向子函数的局部数组栈里复制. 总体思路是leak system的地址,然后再向一个固定地址写入/bin/sh,最后执行system函数 leak使用pwn库的DynELF实现,整体使用rop链. 1 //ida伪代码 2 int __fastcall echo(__int64 a1) 3 { 4 char s2[16]; // [sp+10h] [bp-10h]@2 5 6 for ( i = 0; *(_BYTE *)

2019.3.13今日面试题小结

第?章 基础?试题1.如果主机的内存是512MB,那么交换分区通常设置为多少?较合适??般建议设置为1-2倍的物理内存的??.根据服务器实际负载.运?情况.以及未来可能应?来综合考虑swap 分区的??:4GB 或者以下内存的系统 2GB 起4GB 到 16GB 4GB 起16GB 到 64GB 8GB 起64GB 到 256GB 16GB 起 2.linux有很多发?版,除了redhat.centos.suse,还有哪些?https://upload.wikimedia.org/wikiped

2016.10.28小结

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> <head> <met

12.19.2016 下半年技术小结

下半年课蛮重的,加上心思比较野,在学习新东西上对自己比较失望 课业: ASP.NET MVC开发:MyStore购物网站 和 SSLS 图书馆管理网站(由于用的mac,只能在学校电脑写.NET,真的蛋疼) 前端:加深jquery和bootstrap的理解和运用 汇编语言:从无到有 有空闲想看看react.js