XCTF bug

一.进入实验

  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。。。。。

   

 

posted @ 2020-04-04 18:58  l2sec  阅读(513)  评论(0编辑  收藏  举报