防灾科技学院应急挑战杯网络安全大赛记录

今天的比赛我没有出太多的力,主要是靠着glzjin的各种分析和脚本才能搞定,幻影战队作为第一次参加AWD的萌新,可以说是非常紧张,我们把AWD当成能看到的源码的WEB来打了(其实也有一个pwn靶机但是我们不会)。

先来说说今天学到的AWD模式的注意事项,首先,修改服务器连接密码,不然你的服务器很可能会落入其他队伍的空值用来刷分,其次,审计部署的项目文件,先查看可疑文件名的,也可以用D盾查看,不过这一步是glzjin干的,一定要仔细检查后门,因为有的后门可能别人发现了而你没有发现就会被别人利用。最后才是项目本身的漏洞,因为项目本身的漏洞要么是程序的逻辑漏洞,这个需要审计代码,要么是框架漏洞,这个需要积累,这都不是短时间能搞定并修复的,所以放到最后,不过不排除文件上传这种基础漏洞,这当然分分钟搞定,基础就说到这,下面说我今天的操作。

我今天起到的作用就是收103靶机的分数,这是一个thinkphp写的个人博客,说来也巧,这个博客正好是我上学期学习tp5框架时看的视频课的案例,后台的前端模板都完全一样。因为我知道这个程序的大致代码,所以先审计了一下有没有后门,发现有个hint.php,不过大家都发现了,都没用上,接着就是项目的漏洞了,我先用首页的上传部分上传了一句话木马,但是发现没法用,于是就开始查看数据库里的数据,发现tp的表名,在admin表中得到用户名和密码的MD5,不过三个用户的密码都相同,我猜测是弱密码,放到chamd5中发现是admin,果然弱密码,抱着侥幸的心态进入自己的后台,发现flag就在后台,这就简单了,然后我从1队开始挨个扫,发现有20支战队都没改密码,于是我把他们的密码都改成自己的,接下来就是一轮一轮收分数,这时有的队注意到了,把自己密码通过控制台操作mysql改了,可是他们没注意到的是,此项目的session是永久有效的,也就是如果不自己加入session过期时间,只要我不点退出登录来注销session,我就永远都能登录上,不过有的队就把自己的显示flag的地方改了。

但是,tp5有一个全版本任意代码执行漏洞,这是以前再看雨苁大佬的博客时看到的,然后使用payload,这是通用的

http://域名/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=cat /flag.txt

放上雨苁大佬此篇文章的链接https://www.ddosi.com/thinkphp/
今天的AWD我确实没起到太多的作用,主要是队友的厉害才能让我们走到现在

发表评论

邮箱地址不会被公开。 必填项已用*标注