说起这攻防游戏,我最近还真捣鼓了一个,感觉挺有意思,就想着跟大家伙儿分享分享。不是那种打打杀杀的网游,也不是啥策略战棋,更像是个解谜夺旗的路子,挺考验脑瓜子的。
一切的开始:拿到目标
事情是这样的,前几天我看到一个在线的攻防挑战平台,闲着也是闲着,就注册了一个账号想试试水。平台给的第一个任务很简单,就一个IP地址,说目标服务器上藏着一个“flag”,也就是个特定格式的字符串,找到了就算成功。
我的第一步:信息收集
拿到IP,我能干老三样呗。我先在本机上ping
了一下这个IP,看看通不通,延迟高不高。通是通了,延迟也还行,说明服务器活着。
然后我就寻思着,这服务器上开了啥服务?我就用了个平时顺手的小工具,扫了一下常见的端口。结果出来了,开了个80端口,有戏,这是跑网站的;还开了个22端口,这是SSH远程登录的,不过这个一般不好搞。
重点突破:啃下Web服务
尝试访问网页
既然有80端口,我直接就在浏览器里输入了那个IP地址。果然,出来一个网页,但是简陋得很,就一个标题写着“欢迎来到我的地盘”,下面一个输入框,一个提交按钮,别的啥也没有。我随便输了个“admin”,点了提交,页面刷新了一下,还是老样子,没啥反应。
查看源代码与目录扫描
这时候我就习惯性地按了F12,看看网页源代码里有没有啥隐藏信息。翻了半天,注释里、JS代码里都没啥特别的。我就想,会不会有啥隐藏的目录或者文件?于是我又祭出了我的另一个小工具,一个目录扫描的脚本,配上个常用字典,对着这个IP跑了起来。
跑了一会儿,还真有发现!扫出来一个文件。这玩意儿一般是告诉搜索引擎哪些东西不让爬的。我赶紧访问了一下IP/*
,里面写着一行:Disallow: /super_secret_stuff/
。看到这个我心里就有谱了,这不就是此地无银三百两嘛
发现线索
我立马在浏览器里访问 IP/super_secret_stuff/
。页面跳转了,显示了一个文件列表,里面孤零零地躺着一个叫的文件。我点开一看,里面就一句话:“真正的秘密在图片里,但不是你看到的那么简单。” 图片?我回头看了看首页,首页上确实有一张小图片,一个风景图。
图片隐写
我把首页那张风景图下载了下来。心想,秘密在图片里,那肯定是图片隐写了。我试着用一些常见的图片隐写工具去分析这张图,比如用stegsolve
打开,在不同的颜色通道里翻来翻去,没啥发现。又试了用binwalk
分析,看看里面是不是藏了别的文件。果然,binwalk
提示图片末尾附加了一个zip压缩包!
我赶紧用dd
命令把那个附加的压缩包从图片里剥离出来。得到一个。尝试解压,提示要密码。得,又卡住了。
柳暗花明:找到密码
密码在哪儿?
我想了半天,密码会在哪儿?会不会还在那个简陋的首页上?我又回到首页,对着那个输入框发呆。突然灵光一闪,会不会那个输入框本身就是个线索,或者它提交的参数有啥讲究?
我又打开F12,切换到网络监控,在输入框里随便输了个“password”,点了提交。看到浏览器发了一个POST请求,参数名是pass_try
,值就是我输入的“password”。我试着把参数名改成password
、key
之类的,都没用。
这时候我想起之前用目录扫描的时候,除了和/super_secret_stuff/
,好像还扫出来一个.bak
后缀的文件,当时没太在意。我翻了翻扫描记录,找到了,是一个文件。这应该是首页的源码备份!
分析源码
我赶紧下载了这个文件,用文本编辑器打开。代码不长,很快我就找到了处理那个输入框的地方。里面有一段PHP代码大概是这么写的(我凭记忆大概复述下):
if ($_POST['pass_try'] === "一个奇怪的字符串Abc123Xyz") { // 执行某些操作 }
我勒个去!密码竟然硬编码在源码备份里了!就是那个“一个奇怪的字符串Abc123Xyz”。
最终夺旗:成功!
解压与最终的Flag
我赶紧用这个字符串作为密码去解压那个。成功解压!里面出来一个文件。打开一看,里面是一串类似flag{Th1s_iS_a_SimPle_CTF_Ch4llenge}
的字符。
提交验证
我把这串字符复制到平台的答案提交框里,点击提交。叮!页面提示“恭喜你,挑战成功!”
一点感想
虽然这个只是个入门级的题目,但整个过程下来还是挺有意思的。从最初的端口扫描,到目录发现,再到图片隐写分析,从源码备份里找到关键密码,一步一步解开谜题,拿到flag的那一刻,还是挺有成就感的。这种攻防游戏,主要就是考验细心和思路,有时候一个不经意的发现就可能是突破口。以后有空我还会多玩玩这些,权当是锻炼脑子了。
这回的实践就记录到这里,希望对同样喜欢瞎捣鼓的朋友们有点启发!
还没有评论,来说两句吧...