前言
BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。
BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了各种不同类型的漏洞场景,如Web漏洞、系统漏洞、密码学等,参与者需要通过解决这些漏洞来获取Flag。
BugKu的特点如下:
1. 漏洞丰富:BugKu提供了大量的漏洞场景供用户挑战,涵盖了常见的Web漏洞,如XSS、SQL注入、文件上传等,以及其他类型的漏洞,如逆向工程、密码学等。
2. 适合不同水平:BugKu的题目分为不同的难度级别,适合不同水平的参与者。从初学者到专业渗透测试人员,都能在BugKu中找到适合自己的挑战。
3. 学习资源:BugKu提供了丰富的学习资源,包括解题思路、漏洞分析、修复建议等。参与者可以通过学习他人的解题思路和经验,提高自己的技术水平。
4. 排行榜竞赛:BugKu设置了排行榜,参与者可以通过解决题目获取积分,竞争排名。这种竞争激励机制可以激发参与者的学习兴趣和动力。
通过参与BugKu,参与者可以在实践中学习到真实的漏洞和攻击技术,提高自己的技术水平。同时,BugKu也是一个交流和分享的平台,参与者可以与其他安全爱好者进行讨论和学习,共同成长。
一、眼见非实
打开靶场
下载文件发现是一个 word,但是打不开,放入 WinHex 中查看
PK 开头是压缩文件,再使用 Binwalk 分析是 ZIP 文件
重命名解压缩后打开这个 document.xml 文件
成功拿到 flag
二、啊哒
打开靶场
文件内容如下
放入 WinHex 中发现末尾有 flag.txt
使用 Foremost 提取出来
打开发现需要密码
因为题目没给出密码提示,猜测为伪加密,使用 WinHex 查看发现并不是
那就只能说图片上藏有密码了
查看图片属性发现照相机属性是一段数值
密码应该没这么长,转 ASCII 试试
用密码打开文件拿到 flag
三、ping
打开靶场
很明显最后一个字符拼接在一起就是 flag
flag{dc76a1eee6e3822877ed627e0a04ab4a}
四、Snowfall
打开靶场
下载有两个文件,打开内容如下,明显可以看到隐藏数据,结合题目推测为 WhiteSpace
去第三方网站运行得到密钥
运行第二个文件代码看到一个 flag.txt
图右边就差不多是汇编指令了,都是对栈的操作,将数值记录下来(一血师傅是直接修改网站 JS 源代码)
x=[55,122,188,175,175-136,28,0,4,233,178,103,148,176,0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,205,61,162,91,148,163,10,161,6,123,111,146,146+49,146+49+34,199,77,197,176,226,227,44,177,43,96,96+65,183,25,95,211,125,125+96,70,102,117,157,157+62,2,113,89,134,199,190,90,208,208-95,208-95-111,30,131,134,158,192,184,130,200,200-151,95,169,69,184,36,202,202-133,2,2+67,160,13,36,13,176,115,55,167,181,220,220-76,24,156,128,159,52,143,143-79,170,177,64,129,83,122,169,169+83,159,170,33,201,53,141,86,73,35,149,56,209,111,227,46,146,218,18,60,77,165,165-142,248,248-210,248-210+175,201,136,18,18+231,150,90,225,225+30,225+30-60,101,23,65,13,144,238,93,93-62,93-62+119,182,136,40,73,137,105,218,218-218,0+3,2,92,123,123+127,128,137,207,217,187,15,15+187,15+187-48,187,172,229,221,223,77,58,56,62,234,238,238-63,206,236,90,65,197,234,53,242,98,189,93,69,135,58,1,1+3,6,0,1,9,128,176,0,7,11,1,1-1,2,2+34,6,6+235,7,1,18,18+65,15,181,85,78,250,249,198,199,186,171,74,81,185,17,229,245,136,33,33,1,0,0+1,1-1,0+12,128,162,131,85,0,8,10,1,1+125,78,78-65,98,0,0,5,1,1+16,19,0,102,0,108,0,97,0,103,0,46,0,116,0,120,0,116,0,0,0,25,0,20,10,1,0,50,92,151,50,148,119,119+96,1,21,6,6-5,0,0+32,0,0,0,0,0]
f=b''
for i in x:
f += i.to_bytes(1,'big')
out=open("1.7z","wb")
out.write(f)
解压密码是 H0wt0Pr1ntAWh17e5p4ceC0de
得到 flag 文件,同样道理
因为这里的堆栈指令是 drop,会弹出栈顶元素,但是并不打印,还是改一下 Whitelips 的 js 代码,出栈的同时转换成字符打印
// WsDropTop: function() {
// this.run = function (env) {
// env.register.SP--;
// env.register.IP++;
// }
// this.getAsm = asmWithNoParam;
// },
WsDropTop: function() {
this.run = function (env) {
env.print(String.fromCharCode(env.stackPeek()));
env.register.SP--;
env.register.IP++;
}
this.getAsm = asmWithNoParam;
},
再运行拿到 flag