首页 > 其他分享 >第二届CN-fnst::CTF个人wp

第二届CN-fnst::CTF个人wp

时间:2024-12-16 16:28:39浏览次数:5  
标签:phi return gcd AI 明文 CTF wp print CN

 前言

这是博主这队最终排名

害,出题人。。。。

我想说。。。。

有点啥,你应该懂的  QWQ——>TWT

(╯‵□′)╯︵┻━┻

一定要看到最后,看看博主是怎么破防的!!!

话不多说!!!

上题

                    


Crypto:签到

1,下载宽窄文件,然后打开

看完之后没啥思路,文件提示宽窄,而且重复说宽窄,没事

我直接拉近——>随波逐流

提示文件包含零宽字符

直接直接百度一波

点第一个,然后打开第一个网页

再然后把文件内容全部复制进去,点解密,flag?

这就出来了???

看来真是签到(不屑一笑)

博主这时觉得这也没啥

直接分来了

上第二题

                  


Crypto:ezCrypto

一眼看,哟哟哟,这不就是RSA加密嘛

不过数咋那么大

跟上课课本不一样啊!!!

没事

我有搜索

先从n中求取p和q

用这个网站http://www.factordb.com/

把n填进去,收获p  q

再问问AI有没有可以飞出明文m的代码

哎呀呀我直接问到了

# 计算欧拉函数φ(n)
def phi(n):
    return (p - 1) * (q - 1)

# 扩展欧几里得算法求模逆
def extended_gcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        gcd, x, y = extended_gcd(b % a, a)
        return gcd, y - (b // a) * x, x

# 计算私钥d
def calculate_d(e, phi_n):
    gcd, x, _ = extended_gcd(e, phi_n)
    if gcd!= 1:
        raise ValueError("e和φ(n)不互质,无法计算私钥。")
    return x % phi_n

# RSA解密函数
def rsa_decrypt(c, d, n):
    return pow(c, d, n)

# 已知参数
e = 65537
n = 1455925529734358105461406532259911790807347616464991065301847
c = 69380371057914246192606760686152233225659503366319332065009

# 假设已经分解得到p和q(这里需要实际分解n来获取)
p = 1201147059438530786835365194567  # 示例值,实际需要计算
q = 1212112637077862917192191913841  # 示例值,实际需要计算

phi_n = phi(n)
d = calculate_d(e, phi_n)
plaintext = rsa_decrypt(c, d, n)
print(plaintext)

哎呀呀

直接飞出明文了

但是明文不知道是啥内容

我们直接问AI有没有把明文飞出字符串的代码

哎呀呀也是直接问到了

# 得到的明文
m = 584734024210318745406046669953309948776602881661

# 将整数转换为字节串,假设每个字节8位(根据实际情况可能需要调整)
byte_length = (m.bit_length() + 7) // 8
m_bytes = m.to_bytes(byte_length, 'big')

# 尝试解码字节串为字符串
try:
    decoded_string = m_bytes.decode('utf-8')
    print(decoded_string)
except UnicodeDecodeError:
    print("无法使用UTF-8解码,可能需要尝试其他编码方式")

 我直接一运行

哎?

这啥??

flag???

不是?

这就出来了???

               


直接下一题Crypto:神秘dp

我去,感觉这题有点。。。。

感觉斗宗强者的威压来了

满脸流汗的我默默打开了一个网站

就是这个———>http://www.factordb.com/

有n我就直接填进去

p q 到手解题我有

得到p和q

我直接问AI要代码求d

from gmpy2 import gcd, invert

def extended_gcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = extended_gcd(b % a, a)
        return (g, x - (b // a) * y, y)

def modular_inverse(a, m):
    g, x, y = extended_gcd(a, m)
    if g!= 1:
        raise ValueError("模逆不存在")
    return x % m

def calculate_d(e, n, dp):
    p =105038194193899515019447140405205579493289210244572767409545440358851163280965395453074976398044017243177911159096972243867985372174027224124181767942149308681063335044762355577934881504502469182724481949671518205998572766264483054891139270362336019492873565945485673532086972823698106471372599520368545108299 # 这里需要根据n的值计算出p,假设你有相应的函数或已知条件来获取p
    q =131875826716323523148433295878953050557752317511962437375097305678556817762514768704278183959540938622638859584695873987803639891091171158984491576191575189523381929708029006917399486577694013126044860470568409738236462778680818847784162139064455152770977552909157838301186145084657447139653926320540680063339 # 同样需要根据n的值计算出q

    phi_n = (p - 1) * (q - 1)

    try:
        d = modular_inverse(e, phi_n)
        return d
    except ValueError as e:
        print(e)
        return None

# 示例用法
e = 65537
n = 13851998696110232034312408768370264747862778787235362033287301947690834384177869107768578977872169953363148442670412868565346964490724532894099772144625540138618913694240688555684873934424471837897053658485573395777349902581306875149677867098014969597240339327588421766510008083189109825385296069501377605893298996953970043168244444585264894721914216744153344106498382558756181912535774309211692338879110643793628550244212618635476290699881188640645260075209594318725693972840846967120418641315829098807385382509029722923894508557890331485536938749583463709142484622852210528766911899504093351926912519458381934550361
dp = 100611735902103791101540576986246738909129436434351921338402204616138072968334504710528544150282236463859239501881283845616704984276951309172293190252510177093383836388627040387414351112878231476909883325883401542820439430154583554163420769232994455628864269732485342860663552714235811175102557578574454173473

d = calculate_d(e, n, dp)
if d is not None:
    print("计算得到的d值为:", d)
else:
    print("无法计算d值")

得到d之后直接问AI求明文m的代码

from gmpy2 import powmod

# 已知参数
e = 65537
n = 13851998696110232034312408768370264747862778787235362033287301947690834384177869107768578977872169953363148442670412868565346964490724532894099772144625540138618913694240688555684873934424471837897053658485573395777349902581306875149677867098014969597240339327588421766510008083189109825385296069501377605893298996953970043168244444585264894721914216744153344106498382558756181912535774309211692338879110643793628550244212618635476290699881188640645260075209594318725693972840846967120418641315829098807385382509029722923894508557890331485536938749583463709142484622852210528766911899504093351926912519458381934550361
c = 6181444980714386809771037400474840421684417066099228619603249443862056564342775884427843519992558503521271217237572084931179577274213056759651748072521423406391343404390036640425926587772914253834826777952428924120724879097154106281898045222573790203042535146780386650453819006195025203611969467741808115336980555931965932953399428393416196507391201647015490298928857521725626891994892890499900822051002774649242597456942480104711177604984775375394980504583557491508969320498603227402590571065045541654263605281038512927133012338467311855856106905424708532806690350246294477230699496179884682385040569548652234893413
d = 1762543557484523626869267386658523242327657846815626043236382668443686283010501708800863330583884298046833008276676883454635218836506887404121305520759759818361278686791783295937503452083032037722561765996478272538982877422303706789648042078983579221987384067820618110547125401005752274804888596114744157583384114463261758091836801630198977039993393321780566541516866446408316764800253915736273164925019496034759333342295199384703710958327978741132453373673523024144020827574443378350680955101625988204860752831231489087620433426231725615934253837978035190579839247903256349149482182579716152710013783065689685574701

# 计算明文
m = powmod(c, d, n)
print(m)

也是成功得到明文

然后思路就是跟上一题一样

明文转字符串

# 得到的明文
m = 136143999223203553056382253757349587837

# 将整数转换为字节串,假设每个字节8位(根据实际情况可能需要调整)
byte_length = (m.bit_length() + 7) // 8
m_bytes = m.to_bytes(byte_length, 'big')

# 尝试解码字节串为字符串
try:
    decoded_string = m_bytes.decode('utf-8')
    print(decoded_string)
except UnicodeDecodeError:
    print("无法使用UTF-8解码,可能需要尝试其他编码方式")

有点easy啊

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈(疯狂笑自信癫峰)

Forensic:签到

得到三张图片

 一眼看去第一张看那只大熊猫还有那个IFS国际金融中心

上网一搜这个金融中心

就知道这个城市就是在成都

接下来第二张

 直接问AI

AI说可能是宽窄巷子

然后上网查了一下宽窄巷子的几张图片

下面这张,初见端倪对照一看,哟???!!!

确定是宽窄巷子了

 

 最后一张

一看右下角这个变脸,大概率是四川的 

根据前面两张图片可以推出都图片在成都这个地

先是成都,然后又是在成都里面的宽窄巷子,那么最后这一张有没有可能在宽窄巷子里面的某个店呢?

在高德地图上找了找

哎??这是川剧变脸,而且看店的上面图文跟给的图片差不多

难道??

填flag的时候真的成功了

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈(疯了)

                       


Forensic:②

因为看这题解出来的人比较多

然后才选这题

得到图片

给AI看看他说可能是莫斯科的克林姆林宫

然后上地图看了一下,发现红色城墙

找了大概一个多小时

确定位置是在这个地方拍的

根据题目描述

纬度在前经度在后取三位小数

经纬度进行MD5加密

填上了flag真是不容易啊  TWT

最后就是破防的一题

我真的是********

              


Misc:简简单单

注意啊

题目标着简简单单

我真的是****

得到文件打开一看

啥东西???

他足足有差不多70000的字

用不了随波逐流了

问了下AI他说可能是ASCLL码或者UTF-8码

然后直接上网搜在线解码

初见端倪

这个社会主义核心价值观解码

在这套娃呢

我真的是***

十六进制解码

看见一堆动物

一看以为是十二生肖

仔细一看

那就取表情解码emojie

这这这???

还有呢?

那就继续!

这个c9g9看的有点熟悉

是题目的那个c9g9吗?

他说c9g9——>base62 

那就只能惟命是从了QWQ

啊?flag呢?

我***

还有呢?

不过这个字符有点少

上随波逐流!

最后屁都没出白费一场

根据博主所学博主可以肯定这个就是base家族的东西

通过多次尝试解出来了

顺着这条路

base58

接着base32

然后base91

然后然后base64

天啊他终于出来了

泪目!

我们来看看出题人套了多少层!

十层!!!我的妈!!

出题人你是人吗?

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊(真疯了)

                 


Misc:sign in

这题真的是用了我一天的时间还没解出来

最后看官方WP的时候我真的想

真的想-----------------

真的真的想-------

来看解题过程

由于题目提示罗马共和国独裁官

搜一下那就是你了 凯撒!!!

太多了足足有好几W用不了随波逐流

上网弄了一下

运气真好(我没有开心)

真没开心

一眼一看就是base64转图片

转出来一张奶龙

到这步之后弄了一整天

都没弄出来

最后看了官方WP

我真的是****

来看看我用了多少种方法

这只是其中的一部分

我想出题人真是人吗?

最后用这个网站通过不可思议的方式分离出了flag

我真的不想对出题人干嘛

真的不想

说实话是真的不想

如果是你你应该也不想的

一天时间我嘞个豆啊!

怪我是小白没实力吧T_T   T_T

             


总结

该说的还得说

挺有意思的一次比赛,起码比网鼎杯,强网杯有意思QWQ

收获还是有的 

荣获第三页

别走点个赞再走T_T呜呜呜呜呜呜呜

 

标签:phi,return,gcd,AI,明文,CTF,wp,print,CN
From: https://blog.csdn.net/qq_62073188/article/details/144494116

相关文章

  • CTF随题思路—Misc第十八届全国大学生信息安全竞赛(铁人三项)zeroshell_1
    用wireshark打开文件,先过滤HTTP发现该数据流的左下角有base64编码 将其复制解码后得到flag ......
  • ciscn初赛 2024
    ezCsky先根据提示到github下载M-Core插件放到ida的proxy文件夹,然后选择MCORE形式打开流程首先进行一次长度检查,然后通过check函数,rc4_init初始化s盒,rc4_crypt进行rc4加密这里有个xor函数,我不知道咋跳到这里的,然后猜测是按自己向后异或lrwr7,byte_8AA0{off_8960}这......
  • WPF开发框架Caliburn.Micro详解
    随着项目的发展,功能越来越复杂,解耦已经是每一个项目都会遇到的问题。在WPF开发中,MVVM开发模式是主要就是为了将UI页面和业务逻辑分离开来,从而便于测试,提升开发效率。当前比较流行的MVVM框架,主要有Prism,Community.Toolkit,以及今天介绍的Caliburn.Micro。而Caliburn.Micro框架是一款......
  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!
    目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15天)4.3、后期五、CTF学......
  • 记录下WPF中如何进行itescontrol中进行分隔符的代码
     XAML的代码<ItemsControlx:Name="If"lternationCount="{BindingPath=LocationNums.Count}"ItemsSource="{BindingLocationNums}"><ItemsControl.......
  • 毕业设计:python车牌识别系统 CNN算法 卷积神经网络网络 深度学习 tensorflow(源码)✅
    python车牌识别系统CNN算法卷积神经网络网络深度学习tensorflow(源码)1、项目介绍技术栈:Python语言、CNN算法、tensorflow和keras、深度学习、opencv、pyqt5图形界面2、项目界面(1)上传图像进行车牌识别1(2)上传图像进行车牌识别2(3)上传图像进行车牌识别3(4)上传视......
  • 测试使用自己编译的WPF框架(本地nuget 包引用)
    上一篇博客 本地编译WPF框架源码-wuty007-博客园 说到自己在本地编译WPF框架源码,并在本地源码的\wpf\artifacts\packages\Debug\NonShipping路径下打包处了对应的nuget包 接下来实操测试一下如何使用这些编译出来的包一、首先为了方便看到测试的效果,我在WPF源码......
  • CTF知识集-PHP特性
    title:CTF知识集-PHP特性写在开头可能会用到的提示call_user_func调用的函数可以不区分大小写preg_match过滤存在长度溢出,长度超过100w检测失效。str_repeat(‘show’,250000);生成100w个字符preg_match是无法处理数组的,例如:preg_match(......
  • 第二届“长城杯”铁三赛小组WP(解题量少警告)
    三、解题过程1、Web安全Safe_Proxy操作内容:网页源代码为PythonfromflaskimportFlask,request,render_template_stringimportsocketimportthreadingimporthtmlapp=Flask(__name__)@app.route('/',methods=["GET"])defsource():withopen(__fil......
  • 【深度学习】 零基础介绍卷积神经网络(CNN)
    零基础介绍卷积神经网络(CNN,ConvolutionalNeuralNetwork)是深度学习中的一种神经网络,特别擅长处理图像和视频等有空间结构的数据。假设我们在做一个“照片分类”的任务,比如判断一张照片中是猫还是狗。下面用一个通俗的例子来解释CNN的工作原理。看图的方式:模拟人眼当我......