一.进入实验
1.打开后,简单看了一下,首先是让我们注册,然后登录:这里我随便注册一个
然后登录,登录后发现有几个功能,当点击manage时,提示要管理员才行。
2.所以这个地方我们想能不能获取到 admin 的账号,傻傻的我开始了一段时间的sql注入,但没有发现注入点。
退出后有个 Findwd 的功能:
这里我们输入我们注册的 username 和其他的信息,成功后显示如下:
那我们先用 Burp 抓一下包,将其拦截:
在这个里面我们发现我们这个修改密码的请求是通过post方式提交到后台进行验证的,
那我们能不能将username里的值改成admin,密码我们自己修改,是不是就可以用admin的身份进行登录?
3.修改成功,试一试可不可以登录:登录成功!我们马上点 manage,发现弹窗,ip不允许,应该只能内部人员的ip才能登录,
这里我们用Burp,在请求体中加入 X-Forwarded-For:127.0.0.1, 或者用firefox的插件,进行伪造。
改了之后,点击manage不会弹窗了,但没什么有用的东西,我们查看源码,发现给了我们一个提示
4.猜想这应该是一些隐藏的操作,我们 构造paylaod为 index.php?module=filemanage&do=download,或者upload/read/write,,,,,,
最后发现do=upload能够执行成功,出现一个文件上传的页面。
我们选择一个php文件进行上传,发现上传失败,以为是前端js做的限制,查看源码发现并不是,那猜测应该是对 .php 做了限制
看了网上一些常见可用作php解析的后缀 php3,php5,php7,pht,phtml,我同过抓包修改上传的文件后缀为 .php5,
结果还是不给过,显示这不是一张图片:
那我们猜测它应该是通过请求体中的 Content-Type: application/octet-stream,
发现并不是图片的文件类型,所以这里我们将图片的Content-Type将其替换掉,即 Content-Type: image/jpeg
但是结果不尽人意,还是被检测出来了是上传php文件,应该是<?php ?>这个被检测出来了,
据了解可以通过 <script language="php"> highlight_file(__FILE__);system($_GET['cmd']);<script>,也能达到解析php语句的目的。
我们再次修改:
最后拿到flag。。。。。