MP3
拖进winhex, 发现结尾是一张png, foremost分出来试一下
1 | foremost /home/kali/Desktop/cipher.mp3 |
得到一张这样很像打了码的二维码, 但又不是二维码的图片
这里我们没有思路, 再放进zsteg
里跑一下
1 | zsteg flag.png --all |
发现zip一个, 将其提取出来
1 | zsteg -e 'b1,r,lsb,xy' flag.png > flag.zip |
有密码, 放到爆破里看一下, 看来是没戏, 剩下的思路就是MP3里应该还隐写了东西, MP3Stego
跑一下
解压拿到47.txt
1 | 2lO,.j2lL000iZZ2[2222iWP,.ZQQX,2.[002iZZ2[2020iWP,.ZQQX,2.[020iZZ2[2022iWLNZQQX,2.[2202iW2,2.ZQQX,2.[022iZZ2[2220iWPQQZQQX,2.[200iZZ2[202iZZ2[2200iWLNZQQX,2.[220iZZ2[222iZZ2[2000iZZ2[2002iZZ2Nj2]20lW2]20l2ZQQX,2]202.ZW2]02l2]20,2]002.XZW2]22lW2]2ZQQX,2]002.XZWWP2XZQQX,2]022.ZW2]00l2]20,2]220.XZW2]2lWPQQZQQX,2]002.XZW2]0lWPQQZQQX,2]020.XZ2]20,2]202.Z2]00Z2]02Z2]2j2]22l2]2ZWPQQZQQX,2]022.Z2]00Z2]0Z2]2Z2]22j2]2lW2]000X,2]20.,2]20.j2]2W2]2W2]22ZQ-QQZ2]2020ZWP,.ZQQX,2]020.Z2]2220ZQ--QZ2]002Z2]220Z2]020Z2]00ZQW---Q--QZ2]002Z2]000Z2]200ZQ--QZ2]002Z2]000Z2]002ZQ--QZ2]002Z2]020Z2]022ZQ--QZ2]002Z2]000Z2]022ZQ--QZ2]002Z2]020Z2]200ZQ--QZ2]002Z2]000Z2]220ZQLQZ2]2222Z2]2000Z2]000Z2]2002Z2]222Z2]020Z2]202Z2]222Z2]2202Z2]220Z2]2002Z2]2002Z2]2202Z2]222Z2]2222Z2]2202Z2]2022Z2]2020Z2]222Z2]2220Z2]2002Z2]222Z2]2020Z2]002Z2]202Z2]2200Z2]200Z2]2222Z2]2002Z2]200Z2]2022Z2]200ZQN---Q--QZ2]200Z2]000ZQXjQZQ-QQXWXXWXj |
唯一提示: 47
, 去百度寻找答案
那就试试rot47
得到一段内容
1 | a=~[];a={___:++a,aaaa:(![]+"")[a],__a:++a,a_a_:(![]+"")[a],_a_:++a,a_aa:({}+"")[a],aa_a:(a[a]+"")[a],_aa:++a,aaa_:(!""+"")[a],a__:++a,a_a:++a,aa__:({}+"")[a],aa_:++a,aaa:++a,a___:++a,a__a:++a};a.a_=(a.a_=a+"")[a.a_a]+(a._a=a.a_[a.__a])+(a.aa=(a.a+"")[a.__a])+((!a)+"")[a._aa]+(a.__=a.a_[a.aa_])+(a.a=(!""+"")[a.__a])+(a._=(!""+"")[a._a_])+a.a_[a.a_a]+a.__+a._a+a.a;a.aa=a.a+(!""+"")[a._aa]+a.__+a._+a.a+a.aa;a.a=(a.___)[a.a_][a.a_];a.a(a.a(a.aa+"\""+a.a_a_+(![]+"")[a._a_]+a.aaa_+"\\"+a.__a+a.aa_+a._a_+a.__+"(\\\"\\"+a.__a+a.___+a.a__+"\\"+a.__a+a.___+a.__a+"\\"+a.__a+a._a_+a._aa+"\\"+a.__a+a.___+a._aa+"\\"+a.__a+a._a_+a.a__+"\\"+a.__a+a.___+a.aa_+"{"+a.aaaa+a.a___+a.___+a.a__a+a.aaa+a._a_+a.a_a+a.aaa+a.aa_a+a.aa_+a.a__a+a.a__a+a.aa_a+a.aaa+a.aaaa+a.aa_a+a.a_aa+a.a_a_+a.aaa+a.aaa_+a.a__a+a.aaa+a.a_a_+a.__a+a.a_a+a.aa__+a.a__+a.aaaa+a.a__a+a.a__+a.a_aa+a.a__+"}\\\"\\"+a.a__+a.___+");"+"\"")())(); |
像是js内容, 直接浏览器运行一下, 拿到flag:DASCTF{f8097257d699d7fdba7e97a15c4f94b4}
当然, 这里我了解到他是jsfuck, 工具在这
可以看一下这里
take_the_zip_easy
这里利用一个明文攻击, 所谓明文攻击就是通过目前已知的部分信息, 去攻击得到未知的一些信息, 那么这个压缩包我们有什么已知的呢?
我们看一下这个压缩包的压缩方式
ZIP的加密算法大致分为两种ZipCrypto和AES-256,各自又分Deflate和Store。
ZipCrypto Deflate
ZipCrypto Store
AES-256 Deflate
AES-256 Store
ZipCrypto算是传统的zip加密方式。只有使用ZipCrypto Deflate /Store才可以使用 ZIP已知明文攻击进行破解。
传统的ZIP已知明文攻击利用,windows下可以使用AZPR,linux下可以使用pkcrack。
那么这个压缩包有什么是我们已知的呢, 我们来winhex细看一下
很明显这个名字是我们已知的, 并且, 那我们把这名字的十六进制数值copy出来646173666C6F772E706361706E67
, 然后通过命令.\bkcrack.exe -C .\zipeasy.zip -c dasflow.zip -x 30 646173666c6f772e706361706e67 -x 0 504B0304
拿到k
2b7d78f3 0ebcabad a069728c
然后再通过命令./bkcrack -C zipeasy.zip -c dasflow.zip -k 2b7d78f3 0ebcabad a069728c -d dasflow.zip
拿到流量包
导出HTTP对象, 发现flag.zip
发现还是有密码的, 我们继续翻阅流量包, 这里很明显是黑客上传的webshell, 然后我们追踪最后一条eval.php
看一下, 可惜被加密过, 那么我们往前翻, 看一下他的加密方式
我们可以在第六个TCP流里发现这串加密代码
1 |
|
然后我们让Chat GPT帮忙看一下
这段代码是一段 PHP 代码,它实现了一个简单的加密和解密机制,同时实现了一个简单的 Webshell 功能。
首先,这段代码使用
@session_start()
开始一个会话,然后使用@set_time_limit(0)
禁止脚本执行超时,最后使用@error_reporting(0)
关闭错误报告。接下来是
encode()
函数,该函数接受两个参数$D
和$K
,其中$D
是待加密/解密的字符串,$K
是密钥。函数的主要作用是将$D
字符串进行加密或解密,具体操作是按位异或(XOR)每个字符与密钥中的字符进行运算,然后返回加密/解密后的结果。代码中定义了四个变量:
$pass
:密码,用于验证 POST 请求是否合法。$payloadName
:有效载荷名称,用于存储从 POST 请求中获取的有效载荷。$key
:加密密钥,用于加密和解密数据。$data
:从 POST 请求中获取的加密的数据。代码的主要逻辑如下:
- 如果 POST 请求中包含了
$pass
变量,那么将从 POST 请求中获取到的数据$data
进行解密,然后使用$payloadName
变量存储有效载荷,如果有效载荷中包含了getBasicsInfo
字符串,那么直接存储,否则对有效载荷进行加密后再存储。- 如果没有包含
$pass
变量,那么检查有效载荷中是否包含了getBasicsInfo
字符串,如果包含了,则表示要执行命令,否则不做任何处理。最后,代码使用
eval()
函数执行存储在有效载荷中的 PHP 代码,并将执行结果进行加密后输出。同时,代码还输出了一个哈希值,包括密码和密钥的 MD5 哈希值的前 16 个字符和后 16 个字符,用于验证密码和密钥是否正确。
解密脚本
1 |
|
然后我们直接看比较靠后的包,终于在我们的36流, 发现了密码airDAS1231qaSW@
最终拿到flag
机你太美
下载下来是一个npbk
文件, npbk可以当作一个压缩包然后直接分析他里边的vmdk
, 直接修改后缀为zip
, 解压拿到vmdk, npbk也提示我们这是个安卓系统, 我们可以直接将其导入模拟器, 这里我用的是夜神, 其他的应该也是可以的
然后我们开启这台机器, 发现有密码
大部分人参考的都是这篇文章
我们可以借用nox
自带的adb shell
这里开启虚拟机, 然后直接终端打开到Nox/bin
目录即可
然后直接执行
1 | rm /data/system/locksettings.db |
即可清楚pin码
看起来一切正常, 只有一个Skred貌似可以利用
这里是两个人的聊天记录, 一堆压缩包以及两张图片
我们可以从这里将图片保存出来到pc上
二话不说, zsteg跑一下试试, 看的我头皮发麻, 也没看出有什么猫腻
再打开stegsolve
这个软件也许会更直观一点, alpha2很明显有东西, 直接提出来看看
保存出来会发现一些不一样的地方, 这里一定要细心一点, 因为文件非常大
这里可以写个脚本将数据二进制提取出来
1 | from PIL import Image |
可以拿到字符串e01544a9333ef62a3aa27357eb52ea8a
像压缩包密码可以解压
这里还有一张图片没有用到, 它的信息居然藏在了exif里可以使用在线工具查看
直接来xor可以拿到flag
- Post title: 西湖论剑MISC
- Create time: 2023-02-28 00:00:00
- Post link: 2023/02/28/西湖论剑MISC/
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.