码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • zip-zip(子函数调用)


    • 题目

      监听服务器端口,得到题目如下:

    • 源码解析

      • 主函数

        主函数中是题目界面的逻辑,对应于用户的选择做出相应的操作,其中需要注意的是选项2,解压操作需要获得root权限(uid==0).

      • 选项1,2:文件压缩和解压缩,是常规的文件压缩代码,不做解释。

      • 选项3:buy操作,buy()函数调用了加密函数encrypt();根据具体的实现逻辑,可知使用的是RSA加密算法。其中n=221,e=7,从传入参数和题目中的tips都能得到。如果满足密文的前三个字符的ascii码值为149,108和21,则获得root权限。

      • 题解

        整个解题思路如下。首先选择3,通过加密操作获得root权限。

        获得CDK的脚本如下(RSA解密):

        import gmpy2
        def Decrypt(c,e,p,q):
            L = (p-1)*(q-1)
            d = gmpy2.invert(e, L)
            n = p*q
            crypto = gmpy2.powmod(c, d, n)
            print(chr(crypto))
        if __name__ == "__main__":
            p = 17
            q = 13
            e = 7
            c = 149
            Decrypt(c,e,p,q)
        

        然后选择1,对目标文件flag进行压缩,压缩文件的命名为pwn,即当前正在运行的文件,压缩的同名文件不会影响此次程序的运行,因为程序运行尚未结束,其挂载到了/proc目录下。然而下次运行时,真正运行的文件将会是原来的flag而不是pwn。最后选择3,由于解压操作接收到的文件名的长度只有1,不能正确解压上一步得到的pwn文件(flag),所以需要手动终止程序的运行。此处涉及到一个知识点,即unzip函数和zip函数都是main函数的子函数,利用子函数同栈内存大小相等的特点,在手动结束程序运行时,unzip的局部变量filename正是上次在zip函数中输入的文件名,即pwn。

    Yuanyy:励志成为安全大牛的安全大白

    本文作者:yuanyy

    本文链接:https://www.cnblogs.com/yuanyy/p/18280564

    版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

  • 相关阅读:
    嵌入式项目:智慧农业1---V4L2编程之USB摄像头采集图像
    swoole是怎么提高php系统的性能的
    【Electron】electron-builder打包失败问题记录
    UE4(unreal engine4)地形编辑工具中的无法显示样条线
    keystone和beaengine的编译
    有向无权图的最短路径
    数据结构--线性表
    2022牛客暑期多校训练营7(DF)
    户用储能争斗:华宝新能“稳”、正浩科技“快”、安克创新“急”
    微信小程序日历插件用法-举例为(爸妈搜日历)
  • 原文地址:https://www.cnblogs.com/yuanyy/p/18280564
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号