基于逻辑漏洞文件上传绕过的ctf
题目的网址:https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=1&id=4768&page=1
- 打开页面就出现弹窗说需要登录
- 我首先的思路就是会不会有弱口令,或者是存在sql注入,使用sqlmap进行扫描,没有发现注入点
- 只能先注册一下账号,进入查看一下网页内容,存在一个admin才有权限的manage页面,一个查看登录用户信息的页面,改密码界面,登出
- 使用burp截断person页面发现cookie中的两个md5值,进行在线解密之后发现user的md5值格式为uid:用户名,而且不存在其他验证,那我们是不是可以使用admin的md5尝试绕过
- 将1:admin进行MD5加密得到4b9987ccafacb8d8fc08d22bbca797ba
- 在repeater中修改url和cookie就可以得到admin的信息,在登录页面就有找回密码,直接找回admin的密码
- 此时我们是以管理员的饿权限登录进来的,打开manage界面,发现提示ip不对,这里是不是会存在一个x-Forwarded-for验证
- 成功打开manage页面,但是页面上并没有flag,但是可以看到一段注释,这个网站上存在一个页面管理系统,那可不可能就是上传页面呢,使用
edit,dir,list,upload,delete尝试是否存在 - 打开页面,存在提示难道只是图片吗?
- 当我们上传一张图片的时候会提示这并不是我想要的,当我们上传php的时候会提示这不是一张图片,那到底我们要上传什么东西呢?使用burp截断修改提交请求
- 上传一个php文件的时候会提示这不是图片,那我们就修改Content-Type属性为image/jpeg,并且将后缀改为php5。然后就会提示这不是一个真的php文件,在文件中写入
<?php @eval($_POST['chopper']);?>就会提示文件中存在什么东西显示这个是php,应该是检测到关键字<?php,那什么东西可以不使用这个几个关键字但是能执行php代码。<script language="php">phpinfo()</script>就可以,最后拿到flag