码农知识堂 - 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 中国大陆许可协议进行许可。

  • 相关阅读:
    ElasticSearch学习笔记:内容有点多,但很实用(包含安装、使用、安全、部署)
    【新版】系统架构设计师 - 案例分析 - 总览
    链表例题小总结:
    推荐算法——Apriori算法原理
    LeetCode155:最小栈,最简单的中等难度题,时间击败100%,内存也低于官方
    LoRa技术未来发展前景:物联网和边缘计算的引领者
    【RTOS训练营】资源管理和晚课提问
    自制了一个开发团队展示控制器来为成员引流【前端】
    Unity学习 --- 你好,编译器
    2022新版PMP考试有哪些变化?
  • 原文地址:https://www.cnblogs.com/yuanyy/p/18280564
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号