创建靶机进来之后是这样的一个页面:
然后简单尝试一下弱密码之类的登录,无果。
接下来去注册一个账号试试:
然后再尝试一下用这个注册的账号登录进去:
进来的页面是这样子的。
然后就去点一点各个模块,发现在点击manage的时候,提示说我们不是admin:
那大概就是猜测,用户名是admin,然后要去找密码了。
现在发现这边还有一个模块是修改密码的,然后尝试一下抓包看看是什么东西:
看到并没有什么我们想要的东西,之前关注在注册模块下面还有一个findpd模块,去看看是什么。
就先尝试一下输入我们原来的信息,看结果如何:
然后尝试修改密码的同时抓个包:
可以看到这里的有个属性叫username,尝试把username修改成为admin,发现密码已经修改成功了。
接下来用密码为123登录admin:
已经成功登录啦!
再去点击manage,发现报了一个错误:
ip不被允许,根据做题的一些思路,这里应该是XFF要添加一下:
抓包,然后添加XFF:
再forward一下,就发现已经成功进来页面了!
可是什么都没有,接下来就是ctf的常见思路--看源码,发现了一些好东西:
do=???肯定是不可能作为url的,根据前面的filemanage,大概猜测一下是文件上传之类的吧,那就尝试一下do=upload
就是一个文件上传页面:
这里可以做简单尝试之后,发现它想要我们上传一个php文件,但是直接上传php的话会被前端验证拦截,所以必须得先是一个jpg文件,在抓包之后改成php。
1.我第一次在尝试上传文件的时候,由于php语句写的是<?php phpinfo()?>,被拦截了,提示说someting show its a php
之后猜测可能是<?php?>这个语句被过滤了。
2.接下来采用另一种php的写法:<scirpt language="php">xxx</script>,采用这种方式没有被过滤。
所以综上,需要采用先按第二种方式写php文件,然后保存成jpg文件,再上传,然后抓包修改成php后缀,这里其实还有一个小坑,就是过滤了.php文件后缀,需要将其修改成php4,或者php5,做一个文件名的绕过。
至此就得到了flag。