码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Bugku刷题记录(四)


    目录

    你喜欢下棋吗

    小山丘的秘密 

    黄道十二官

    简单的rsa


    你喜欢下棋吗

    给了个加密的压缩包以及解压密码,解压密码里头提示下棋,故猜测是棋盘加密,回顾下棋盘密码(Polybius):

    加密表:
    12345
    1abcde
    2fghi,jk
    3lmnop
    4qrstu
    5vwxyz

     加密示例:23 15 31 31 34 ==》hello

    利用在线工具解的密码:

    得到:

    一开始以为是二进制,转字符串却得不到什么东西,再看到提示5bit的编码,搜搜看,了解到新的密码:博多密码,学习 ,利用在线网站解出flag:

    改成小写即可,注意那个看起来像o的其实是0。

    小山丘的秘密 

     

    山丘的英语hill,对应希尔密码,一般规则是A=0,B=1......,但这里说A=1,那么Z对应就是0,棋盘上的就是密钥了,利用在线工具解出:

    黄道十二官

     

    1. %..@*>@?==%88%5
    2. .@%#@@90-7$^=*@
    3. 17.(>()1@##-$40
    4. ~.*6?#%#8#=75+1
    5. (*@*1%#>;0@5)%?
    6. %*^=)&>=1%.+7&#
    7. 8681(+8*@@(.@@@
    8. #*=#$3*#%.#%%.3
    9. .*+7.7+@===+)61

    第一部分,第一个字符H,随后再向下移动一格,在向左移动两个,得到第二个字符+,以此类推。

    1. %%>%;.@3*.#(#0+
    2. @#+.@)8@7@*7@@1
    3. #5&8=.*9@=)#6#7
    4. >0#7%%8$+@-#5?*
    5. 13@?7-+(^(*==$$
    6. 1*=+#==^4~@)8%=
    7. %=0.*&*.+8*1*1>
    8. @#)8@76%=@%6%..
    9. ?#1(%15@(#>%...

    利用AZdecrypt进行解码,下载

    得到flag: ALPHANANKE,改成小写即可

    简单的rsa

    解压出来得到.pyc文件,加密的文件,进行反编译,工具,得到加密脚本:

    1. #!/usr/bin/env python
    2. # visit https://tool.lu/pyc/ for more information
    3. # Version: Python 3.9
    4. import gmpy2
    5. from Crypto.Util.number import *
    6. from binascii import a2b_hex, b2a_hex
    7. flag = '******************'
    8. p = 0xED7FCFABD3C81C78E212323329DC1EE2BEB6945AB29AB51B9E3A2F9D8B0A22101E467L
    9. q = 0xAD85852F9964DA87880E48ADA5C4487480AA4023A4DE2C0321C170AD801C9L
    10. e = 65537
    11. n = p * q
    12. c = pow(int(b2a_hex(flag), 16), e, n)
    13. print(c)
    14. c = 0x75AB3202DE3E103B03C680F2BEBBD1EA689C8BF260963FE347B3533B99FB391F0A358FFAE5160D6DCB9FCD75CD3E46B2FE3CFFE9FA2E9508702FD6E4CE43486631L

     普通的rsa加密过程,利用脚本解出flag:

    1. import gmpy2
    2. import base64
    3. from Crypto.Util.number import *
    4. p = int('0xED7FCFABD3C81C78E212323329DC1EE2BEB6945AB29AB51B9E3A2F9D8B0A22101E467',16)
    5. q = int('0xAD85852F9964DA87880E48ADA5C4487480AA4023A4DE2C0321C170AD801C9',16)
    6. e = 65537
    7. c = int('0x75AB3202DE3E103B03C680F2BEBBD1EA689C8BF260963FE347B3533B99FB391F0A358FFAE5160D6DCB9FCD75CD3E46B2FE3CFFE9FA2E9508702FD6E4CE43486631',16)
    8. n = p * q
    9. d = gmpy2.invert(e,(p-1)*(q-1))
    10. m = pow(c,d,n)
    11. flag = long_to_bytes(m)
    12. print(flag)
    13. print(base64.b64decode(flag))

     

    最后进行base64解码即可 

  • 相关阅读:
    在线查看 Android 系统源代码 AOSPXRef and AndroidXRef
    【OpenCV基础知识点总结】
    【小程序】网络请求API介绍及网络请求的封装
    Please master your time
    【.net core】使用nssm发布WEB项目
    【nlp】1.3 文本数据分析(标签数量分布、句子长度分布、词频统计与关键词词云)
    VMware-安装 CentOs-Linux 操作系统
    Java 类和对象 详解+通俗易懂
    智能座舱行为识别数据解决方案,助力打造第三空间新体验
    隧道HTTP API使用教程
  • 原文地址:https://blog.csdn.net/Luiino/article/details/126538350
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号