厦门网站建设工作,网架制作厂,免费网页空间,北京市建设部网站芜湖
不评价 以下仅是自己的一些思路和解析 有什么问题或者建议随时都可以联系我
目录
题目一 来都来了
操作内容#xff1a;
flag值#xff1a;
题目二 Honor
操作内容#xff1a;
flag值#xff1a;
题目三 我看看谁还不会RSA
操作内容#xff1a;
flag值
flag值
题目二 Honor
操作内容
flag值
题目三 我看看谁还不会RSA
操作内容
flag值
题目四 hakiehs
操作内容
flag值
题目五 Font
操作内容
flag值
题目六 ApeCoin
操作内容
flag值
题目七 Easyphp
操作内容
flag值
题目八 Ezupload
操作内容
flag值
题目九 get_source
操作内容
flag值
加油各位( •̀ ω •́ )y 期待与君再相逢 解题思路及过程 题目一 来都来了
操作内容
附件只有一个压缩包 但解压需要密码 我们查看源码 经过对比 发现是伪加密 将09改为00
得到题目 很明显是base解码 将其放在txt里
使用not打开 缩放 得到flag flag值
flag{cp2ae315-eef4-3fra-a768-cd9xb19cdk4e} 题目二 Honor
操作内容
附件只有图片一张 正常的查看源码 发现存在第二张图片
Kali foremost分离 得图 经过多工具尝试
使用stegdetect判断存在隐写
Stegdetect.exe -tjopi -s 10.0 00001995.jpg 然后用stegseek使用rockyou字典kali自带爆破
stegseek 00000000.jpg rockyou.txt 得到最终加密字符
f6l3-a6ag3c}{-bc4c5e28-e4649c76b0-707e6069
这不是栅栏密码就是凯撒密码
经过尝试 栅栏密码 12栏数
在线网站 标准的他还跑不出来
栅栏加密/解密 - Bugku CTF flag值
flag{424c076e-768c-3636-acb5-4676900b9eec}
题目三 我看看谁还不会RSA
操作内容
只有一个py 这一看标准的RSA
根据源编码 编写脚本
这里提供两个 脚本
from Crypto.Util.number import *c8232151627233115772131180151146951323147507324390914513031444555762539986162650p8666789885346075954502743436174521501697q2449101960789395782044494299423558347143n p*qphin (p-1)*(q-1)e37777m pow(c,e,n)print(long_to_bytes(m)) import gmpy2
from Crypto.Util.number import *
def find_m(c, d, n, p, q):f (p - 1) * (q - 1)e 37777d_inv gmpy2.invert(d, f)m pow(c, d_inv, n)return m
c 8232151627233115772131180151146951323147507324390914513031444555762539986162650
e37777
p 8666789885346075954502743436174521501697
q 2449101960789395782044494299423558347143
n p*q
f (p-1)*(q-1)
d gmpy2.invert(e,f)
m find_m(c, d, n, p, q)
print(long_to_bytes(m)) flag值
flag{r5a_Who_w0nt}
题目四 hakiehs
操作内容
还是只有一个文件 Vsdx的后缀
像这种文档类文件 我们可以直接转化为压缩包格式的 在里面查找线索
解压缩 Crypto-hakiehs\attachment\attachment\visio\media
在这个地址找到 图片密文 进过信息检索
找到相对应的对照表 对照 字母小写 得flag
flag值
flag{linkzeldaganon}
题目五 Font
操作内容
这个题有点意思 玩脑洞 完全可以当misc出了
附件是只有一张图片 敏捷的狐狸和懒惰的狗 在图片属性里发现提示 刚开始以为是emoji解密 也试了aea 都不行
所以这种加密方式只可能是出题人自创的
对照表要么在图片里 要在文字里
但要考虑到这个题是密码题 不是misc
所以应该没有太多的隐写 就想简单点 总共有两行
猜测 一行是答案 一行是对照的
总共35的字符
然后看图片
图片的字面意思就是
一只敏捷的棕色狐狸扑向一只懒狗
翻译一下 要凑够35个字符
theQuickbrownfoxjumpsoverthelazydog 用这个去和第一行(◎☀◐♬¤☾♀☹☽§♪℗♩☑♪®♂¤☒♫〼♪۞◐§◎☀◐◑☼♭©☺♪√)组成对照表
√:g♪:0☺ d© y♭ z☼ a◑ l◐ e☀ h◎ t§ r◐ e۞ v♪ o〼 s♫ p☒ m¤ u♂ j® x♪ o☑ f♩ n℗ w♪ o§ r☽ b☹ k♀ c☾ i¤ u♬ q◐ e☀ h◎ t 最后根据这个对照表
去解第二行 得到flag
flag值 flag{qtsyjfgvbndhflhgfnmjfhko}
题目六 ApeCoin
操作内容
使用dirsearch扫描目录发现源码泄露 在/static/font/目录下发现.txt.php后门文件 在CMD5解密得到连接密码74658263使用冰蝎连接得到flag flag值
flag{50ddd4d4-c403-422f-af67-3805077076aa}
题目七 Easyphp
操作内容 根据提示使用php伪协议读取hint.php文件 Base64解码后得到源文件 根据hint.php代码可知需要构造pop链来执行get-__call中的eval函数。
各魔术方式调用方式
__call():调用不存在或不可见的成员方法时PHP会先调用__call()方法来存储方法名及其参数
__isset():当对一个对象的不存在或不可访问的属性使用 isset() 或 empty() 函数时自动调用传递属性名作为参数。
__wakeup():在对象被反序列化使用 unserialize() 函数之前自动调用可以在此方法中重新初始化对象状态。
__destruct():类的析构函数在对象销毁之前自动调用析构函数
__toString():当使用echo或print输出对象将对象转化为字符串形式时会调用__toString()方法
构造的pop链(倒推)为:使用__isset()触发__call()然后使用__toString触发__isset()最后使用__destruct()触发__toString()。要注意的是__wakeup不能使用表示属性个数的值大于真实属性个数的方法绕过但是我们可以让dog-b的地址给a再将c赋值ct类。get::__call()-mouse::__isset()-ct::__toString()-dog::__destruct() 又因为hint.php过滤了很多函数 所以将表示字符串类型的s大写为S其对应的值会被当作十六进制解析(长度不能改变) 查看realflag目录下的文件 查看you_want_flag.php文件得到flag 得到flag
flag值
flag{28fabc34-48bb-4959-b3c7-a67ddb343d8d}
题目八 Ezupload
操作内容
使用dirsearch扫描目录发现flag文件访问得到flag 得到flag flag值
flag{71a58713-31d7-4ae7-a5f7-d4889a8ec2e3} 题目九 get_source
操作内容
访问地址发现该网站使用的是php7.4.21。想到了php7.4.21Development Server源码泄露漏洞利用该漏洞查看idnex.php 要POST传入a,b,pwn三个变量且a不能等于b且a的MD5值要和pwn的sha1值相等我们可以使用数组绕过得到flag 得到flag flag值
flag{25e02e06-3553-4a5b-bfa9-b1fff4745dde}
加油各位( •̀ ω •́ )y 期待与君再相逢