服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

记一次bypass前端验证+后端缺陷

日期: 来源:潇湘信安收集编辑:yier
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


现在只对常读和星标的公众号才展示大图推送,建议大家能把潇湘信安“设为星标”,否则可能看不到了...!


0x00 故事的开始

有人找到我,搞攻防请求支援,当然这种请求那当然要逝世呀


0x01 开始渗透

发了一堆站,有ip有域名,我搞了一晚上啥都没发现,本来想挖挖越权啥的


早上起来用jsFinder扫描,说不定有什么接口泄露呢!结果还真扫到了一堆,一看就看到了一些不得了的东西

getAllUsers、deleteuser等,尝试访问一个接口发现报错


有可能是未授权!赶紧构造一下参数,分析js后需要两个参数


随便构造了一下出现了所有人的信息但是密码全部md5加密了,尝试解密了一下解不出来,size表示显示的字节


接下来要想办法进入后台进行更多的操作,因为构造参数什么的太麻烦了,他的大部分参数都rsa加密过

尝试修改过登入的返回包也没用


改为0表示成功


发现并没有用

如果换做以前的我,我会放弃,但是!我遇到了龙哥(前端代码审计的神)

0x02 开始反转


找到了js判断是否登入后台的地方

while (1)    switch (e.prev = e.next) {        case 0:            if (T.a.start(),                document.title = j(t.m eta.title),                i = O bject(P["a"])(), !i) {                e.next = 9;                sessionStorage.setItem("user", JSON.stringify({ "userRole": "admin" }))                break            }            if ("/login" !== t.path) {                e.next = 9;                break            }            o({                    path: "/"                }),                T.a.done(),                e.next = 28;            break;        case 9:            if (r = p["a"].getters.name, !r) {                e.next = 15;                break            }            s = JSON.parse(sessionStorage.getItem("user")),                "admin" == s.userRole && "/bg_userManage" !== t.path ? (O bject(a["Message"])({                        message: "只有用户管理的权限",                        type: "warning",                        duration: 5e3                    }),                    o({                        path: "/bg_userManage"                    }),                    T.a.done()) : "audit" == s.userRole && "/bg_logManage" !== t.path ? (O bject(a["Message"])({                        message: "只有日志管理的权限",                        type: "warning",                        duration: 5e3                    }),                    o({                        path: "/bg_logManage"                    }),                    T.a.done()) : "user" != s.userRole || "/bg_logManage" !== t.path && "/bg_userManage" !== t.path ? (o(),                    T.a.done()) : (o({                        path: "/404"                    }),                    T.a.done()),                e.next = 28;            break;        case 15:            return e.prev = 15,                e.next = 18,                p["a"].dispatch("user/getInfo");        case 18:            o(),                e.next = 28;            break;        case 21:            return e.prev = 21,                e.t0 = e["catch"](15),                e.next = 25,                p["a"].dispatch("user/resetToken");        case 25:            a["Message"].error(e.t0 || "Has Error"),                o("/login?redirect=".concat(t.path)),                T.a.done();        case 28:            e.next = 31;            break;        case 30:            -1 !== z.indexOf(t.path) ? (T.a.done(),                o()) : (-1 !== n.path.indexOf("/non_visitor") ? o("/dashboard") : o(n.path),                p["a"].commit("user/SET_LOGINWINDOWSTATE"),                T.a.done());        case 31:        case "end":            return e.stop()    }


使用f12断点进行Dbug调试


发现是走到了0


然后赋值了30,因为是while (1)所以跳到了30后面就直接结束了


注意到了9,感觉就是后台页面,我们只需要想办法进到9里面就可以了


尝试重新调试,只需要在他赋值30的完事后在重新赋值覆盖掉他的值


然后不就会跳转到9了?确实,成功跳到了9


第一个if没有进,不管他看下面的s.userRole,而s又等于JSON.parse(sessionStorage.getItem("user"))


直接在这个地方赋值s.userRole="admin"发现报错,请求了龙哥


0x03 白热化阶段


sessionStorage.setItem("user",JSON.stringify({"userRole":"admin"}))


他这里先构造一个userRole=admin的json然后在进行写入本地的sessionStorage?


前面搞定了只需要把path路径改为bg_userManage就可以查看了


成功进来了这个判断:

查看后台:


尝试添加一个账号


果然,rsa加密了,如果我不进后台,拿头给他构造


登入就完事了


第一次登入需要修改密码:


尝试直接修改别的用户的密码:


结果真的可以修改,登入后的页面就不展示了,全是水印根本码不过来


0x04 推荐

推荐浏览器插件reres,可以把网站的js下载到本地进行本地加载(实现修改js的目的,省的dbug修改)


可以直接在0的地方修改


就不用每一次dbug了

0x05 结尾

以后渗透要多看看js,接口什么,实现真正的从0到1

文章来源:奇安信攻防社区(yier)原文地址:https://forum.butian.net/share/198



关 注 有 礼



关注公众号回复“9527”可以领取一套HTB靶场文档和视频,“1208”个人常用高效爆破字典,“0221”2020年酒仙桥文章打包,“2191”潇湘信安文章打包,“1212”杀软对比源码+数据源,“0421”Windows提权工具包。
 还在等什么?赶紧点击下方名片关注学习吧!

推 荐 阅 读





相关阅读

  • 春节消费怎样?放开后的担心很意外!

  • 春节快乐!开工第一天,鹅少祝号上的所有读者朋友们恭喜发财!刚刚过完春节假期,大家的状态可能还沉浸在假期的欢乐中,身体已经到了工作岗位上,但是心灵还停留在年夜饭的饺子碗里久久
  • 股市收跌,当心美联储的“偷袭”!

  • A股最近经历了一波“小阳春”,市场交易的预期由弱复苏慢慢转移为强复苏。但是即便如此,也要防备美联储可能的“偷袭”。也就是美联储超预期加息以及延长加息次数的概率变大了
  • 保洁员捡2万元报警后疑被开除,当事双方发声

  • 近日,一则“保洁员捡到2万现金报警后,疑似被开除”的消息引发网友热议。2月25日晚上,涉事的辽宁大连紫航海鲜大饭店在其官方视频账号发布的视频中称,保洁员捡到2万元交上来两天
  • 230216 omo不够 就要emo

  • 问:债市最近行情如此分化,国债期货盘中突然拉升,但资金持续收紧,尾盘甚至达到了15%了夸张水平,怎么看市场??答:谢邀,人也在石家庄,刚下飞机,先说一个故事吧xx自幼从事债券交易,之前卖了
  • 给我交1.5W的他想学什么?

  • 作者 l 圣矾来源 l 圣矾思维说(ID:shengfanwz7)“让所有认可我的人都学会独立思考和赚钱的能力是我一生的责任”公众号内回复往期内容查看以前的文章请牢记下面这个赚钱公式:利
  • 测试第三天赚了1196,跑通了,但没完全跑通

  • 作者 l 圣矾来源 l 圣矾思维说(ID:shengfanwz7)“让所有认可我的人都学会独立思考和赚钱的能力是我一生的责任”公众号内回复往期内容查看以前的文章请牢记下面这个赚钱公式:利
  • 我也阳了,没能进决赛圈

  • 关注 ▲彩云译设计▲和10万设计精英,一起共同进步这是彩云的第264篇分享上周三的时候,办公室里的人就已经格外少了,仿佛来的不是工作日。周围同事大部分都阳了,企业微信消息都少
  • 拼多多也要上学了?

  • 这是仙人JUMP的第831篇原创1这个年,算是过去了。杭州时隔多年再次放起烟花秀,七点放,四点江边就全是人,牛老师兴冲冲地挤过去,老头没dating到,增高鞋垫被人踩丢一只,一米八一米七,一

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 记一次bypass前端验证+后端缺陷

  • 声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试
  • MSSQL弱口令绕过某数字上线

  • 声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试
  • 收藏!Web安全漏洞靶场库集合

  • 声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试
  • Spring环境下有关内存马的回显总结

  • 0x01 前言在学习各种内存马的过程中,关注到了观星实验室的一篇文章,较为全面的列举了在Spring环境下的有关内存马的实现技巧这里我们深入进行学习学习一下0x02 正文前景回顾网
  • 初探 | 冰蝎流量免杀

  • 0x01 前言冰蝎4.0发布以后,可以自定义传输协议了,也就是我们能对流量进行改造,本文依据rebeyond大佬文章对冰蝎流量进行改造,记录一下踩过的坑。https://mp.weixin.qq.com/s/EwY
  • 干货 | 冰蝎各版本工具分析与魔改思路

  • 0x00 V2版本1. 项目github项目:https://github.com/rebeyond/Behinder/releases/V2 源码:https://github.com/hktalent/afterLoader2. 流量分析执行流程图:首次连接一句话服务