点开那个网址之前,模拟我以为会看到一堆终端窗口和绿色代码雨。黑客结果页面加载出来,网站就是模拟一个白底黑字的登录框,上面写着“HackMe v2.3”。黑客用户名输入框下面还有一行小字:默认密码是网站admin。我试了一下,模拟进去了。黑客
这就是网站所谓的“模拟黑客网站”。不是模拟电影里那种敲几下键盘就能黑进五角大楼的东西,更像是黑客一个教学靶场。里面分了十几个关卡,网站从最简单的模拟SQL注入到稍微复杂点的文件上传漏洞。每个关卡都有一个虚构的黑客目标网站,比如“某公司员工管理系统”或者“校园论坛”。网站你要做的就是利用页面上的输入框,把后台数据库里的flag挖出来。
第一关特别直白。登录框,用户名填' OR 1=1 --,密码随便。点提交,页面直接跳转到欢迎界面,flag就贴在公告栏里。这种漏洞在2005年之前遍地都是,现在稍微像样点的框架都会自动转义。但靶场里保留着,让你亲手试一遍,比看十篇教程都记得住。
有个关卡让我卡了半小时。页面是个图片上传功能,只能传jpg和png。我试了改Content-Type,试了文件名截断,都不行。后来在源码注释里看到一行:<!-- 上传后文件保存在 /uploads/ 目录下 -->。我传了个正常的图片,然后用路径遍历去访问/uploads/../index.php,发现能读到源码。原来它只检查了扩展名,没管路径。这种细节在真实渗透里经常遇到,开发者总觉得前端校验够了。
网站还有个排行榜,按通关时间排序。排第一的用了不到四分钟,我猜是写脚本自动跑的。第二名字叫“kali_lover”,头像是个卡通企鹅。我点进他的个人主页,发现他留言说“第三关的注入点其实在Cookie里,别老盯着URL”。这种社区感挺有意思,像早期BBS那种氛围,大家互相丢提示,但不会直接把答案糊你脸上。
不过得说清楚,这类网站本身不违法。它就是个沙盒,所有目标都是虚构的,flag也是随机字符串。真正危险的是有人把靶场里学到的技巧直接往真实站点上套。去年有个新闻,一个大学生用类似手法改了学校教务系统的成绩,被判了破坏计算机信息系统罪。技术本身没善恶,但手别伸太长。
我玩到第八关就停了。那关是反序列化漏洞,需要构造一个PHP对象注入。我对着代码看了二十分钟,脑子里全是__wakeup和__destruct的调用顺序。突然觉得有点累,关掉浏览器,去厨房煮了碗面。面条在锅里翻滚的时候我想,这些模拟环境最大的价值不是教会你怎么攻击,而是让你下次写代码时,看到eval()或者unserialize()会下意识地抖一下。
那个网站的域名我记不清了,好像是个德国人维护的,页脚挂着PayPal捐赠按钮。最后一次访问是半年前,现在应该还在。如果你也想试试,记得别用真实密码注册——虽然它看起来像个玩具,但谁知道后台日志里存了什么呢。