GithubHelp home page GithubHelp logo

iot_challenges's Introduction

Iot Challenges

题目摘要格式:

## 类别

No. [赛事] 题目
    - 摘要1
    - 摘要2
    ... 

Httpd

  1. [qwb] gamebox

    • mips64架构,大端续,uClib运行库
    • error_request中向堆缓冲区memcpy拷贝发生错误的参数内容时超长,存在堆溢出
    • uClib下堆利用,类似早期的dlmalloc,fastbin伪造不检查大小
    • 没有__free_hook__malloc_hook,但libc中函数间调用通过got表
    • free函数检查chunk大小和标志位满足特定条件时会调用munmap,可以借此调用systemgetshell
  2. [qwb] xx_easy_server

    • x86架构
    • Location拼接过长,导致整数溢出,栈上越界写
    • 溢出后需要EOF截断输入,不能leak,需要结合已知地址构造rop
    • 单字符拼接文件名,栈迁移调用do_file实现任意文件读
  3. [RWCTF] Game2048

    分析:

    • 使用了协程库,可以并行处理多个HTTP请求
    • 堆的UAF漏洞发生在submit的处理逻辑中,进入submit时会先尝试free之前的comment,但不立刻置NULL
    • 但是在修改同一个用户的comment时,如果前一个请求阻塞在AIO::read,则后一个请求会把同一个comment指针再free一次。然而这不会直接double free,因为这部分内存会被别的结构占住。
    • submit_page里面会输出comment的内容,造成地址泄漏。

    利用:

    • 泄漏出libc地址
    • 请求A:free一个comment然后阻塞在AIO::read
    • 请求B:对同一个用户的comment再次free
    • 继续完成请求A,此时会凑巧在tcache上出现一个loop chain
    • 请求C:尝试修改fd即可指向__free_hook-0x10 (C++对象创建和销毁操作比较多,不当的操作很容易crash,只能慢慢试)
    • 请求D:同样进入AIO::read的逻辑,借助一个合适大小的buffer拿到__free_hook-0x10,写入参数和system地址
    • 当请求D被完成,buffer被free后就可以getshell了
  4. [qwb] qwbhttpd

    分析&利用:

  5. [ByteCTF] Master of HTTPD

    分析&利用:

Protocol

iot_challenges's People

Contributors

yikesoftware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

now4yreal

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.