攻防世界-Web进阶区-bug
前言
这题主要涉及了各种绕过,也需要一点点的脑洞或者fuzz,这题还是比较好的。
WP
进入环境,发现一共有登录,注册和找回密码三个页面(其实还有index.php这第四个页面)用dirsearch扫也扫不出什么,我们在登录那里尝试,发现其他的提示账号不存在,用admin提示出错,因此我们应该需要登录的是admin账号。
这里有2个方法。
方法一:
我们抓包看看,发现不管是什么页面,请求里面的cookie会有一个user,我们可以利用fuzz进行猜测(反正我觉得我弄不出来),得知这是类似uid:用户名 这样经过md5加密后的结果。又或者直接把user后面的去md5解码,这样做有可能会找不到(我找到了,不过是需要付钱才能知道。我觉得出题不可能出md5解码的,如果md5解码能解决,那么一定还有其他的方法可以解决这个题目。)因此我们让1:admin经过md5加密,得到4b9987ccafacb8d8fc08d22bbca797ba,再在index.php那里抓包,然后换成修改后的user就可以成功登录admin账号了。
方法二:
这个方法就需要你探索的更多了。我们需要先注册一个账号,然后进行密码找回,然后到这个页面:
我们随便输入之后抓包,发现被修改的用户名是在post内容里的。我们把用户名改为admin,就可以成功修改密码,这也是一个漏洞。
登录进admin账号后,点击manage,提示IP不允许,我们构造x-forwarded-for:127.0.0.1,就可以成功进入了:
而且我们在下方找到了提示,让我们访问index.php?module=filemanage&do=???,不过do是什么并不知道。这里得进行尝试,因为文件的管理可能会有edit,dir,list,upload,delete,include等之类的,需要一个一个试,最终发现upload是对的,成功进入了文件上传页面:
不过接下来的这个绕过挺烦的,因为他的提示You know what i want有点不清楚,你不知道到底你是后缀出错了还是内容出错了。因此以后遇到文件上传的题,建议积累经验,直接抓包改成自己能最多绕过的那种,别一个一个试。最终发现文件的后缀可以是php5。php4也行,具体可以把那么多的php别名一个一个尝试。里面的内容过滤了<?php ?>,因此用<script language=“php”></script>来绕过,这样就可以成功获得flag了: