Paul C's Blog

To be funny,to grow up!

0%

CTF培训讲座

Arnalog置乱:设置一个行列式值为1的矩阵,用它的高次幂×原来的图像。

Rust

Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。
Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。

CISCN

初赛

普通CTF

半决赛:

BuilldIt出题

  • Web/Bin二选一实现
  • 根据checker要求实现功能
  • 提供Docker(把Linux系统切成几瓣,启动速度极快,和开了进程一样)file进行编译和运行
  • 希望解题率?20%
  • 控制难度
    实例
    基于消息队列实现rpc(远程过程调用)服务
  • 同一个进程内调用
  • IPC机制
  • 基于网络

  • 留出的漏洞

    • 协议解析错误(各种老软件可以去找找它的漏洞,整数溢出/格式化字符串etc.
    • 计算错误
    • 条件进程,UID泄露?纯粹的栈溢出和堆溢出现实中几乎不常见
  • 发给主办方:题目源码,二进制,环境搭建

    • 环境搭建
      • Docker
      • Docker-compose
      • Xinetd
    一些命令
    • mkdir dev/null
    • makenod 建立设备
    • 把输入从std::cout和TCP流之间的转换,常用socket
    • 也可以用xinetd搭建服务

    提问:4字节的sql注入,如何执行一个4字节以上的命令或者拿到shell

    先想一下<4字节的命令,然后重定向指定文件,*重建文件

    提问:temp文件下任意读写,环境变量

    elf指定一个动态链接器目录,去该目录下的动态链接器(ld),加载链接;
    这个过程中有一个环境变量:LD_PRELOAD,用LD_PRELOAD指向我写入temp的二进制文件。hook php的start等函数,抢先注册符号。

  • 绕过php方法:

    • mail函数(新建一个进程)
    • error_log(发邮件发给我)

      BuildIt出题阶段总结

  • 开发能力
  • 代码量
  • 藏洞
    1
    2
    idx=(idx+step)%size //整数溢出漏洞,负数%正数还是负数
    a[idx]=x

    攻防赛介绍

    5分钟—15分钟一轮

    惨:被人攻破还宕机

  • 题目多为虚拟机和大型逆向

    二进制部分,过去的出题目标就是让人做不出来;但是还能过审题

    更多的考察修补

强网杯

刘彦斌(ACM更多的是密码学,数学,算法方面),对于CTF帮助极大
Bin:

  • Csapp(深入理解计算机系统)
  • 程序员的自我修养—链接、装载和库
    Web:
    • Web前端(jss,nodejs)
    • Web后端

基础->实践->基础(抽象代数,离散,线代,体系结构)

看代码!!!(足够多/更熟练)

  • 课上课下两步走(学长用了两年,国际前10)

    读项目方法?

  • 文档+代码+调试
  • 最好的方法,碰到了CTF题

靠猜做的题可以完全不用做

战队沟通

  • 微信备选
  • Slack首选
  • 共享文档(关键,同步进度)

    -石墨,Google文档

    如何参赛

    人员分配&&题目选择
    跟榜~
    题目分配~(中等题目比较简单)