【渗透实战】一次JS审计发现前端校验渗透

admin 2024年11月4日10:32:43评论17 views字数 993阅读3分18秒阅读模式

免责声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不承担任何法律及连带责任。
简介 ]
——  人生得意须尽欢,莫使金樽空对月 ——

在一次网站漏洞挖掘的过程中,通过对js代码的分析发现网站在密码重置的时候存在逻辑漏洞,通过前端对原密码进行校验导致任意密码重置

01

获取用户名

入登录界面,存在用户名猜解,用户名不存在的时候返回不存在,存在的时候显示密码不正确,得到用户名system

【渗透实战】一次JS审计发现前端校验渗透

【渗透实战】一次JS审计发现前端校验渗透

02

JS分析

F12分析前端代码发现login方法中根据Item1的值进行不同的处置

  1、当Item2为2的时候进入到修改密码页面

  2、取响应包中的Item3的值作为账号

    3、Item4的值作为原密码赋值给pwd标签(这里Item4经过了编码,经抓包测试为base64编码)

【渗透实战】一次JS审计发现前端校验渗透

着进入到changpwd方法中

  1、取pwd标签的值作为系统返回的原密码

  2、取txtOld标签的值作为用户输入的原密码

    3、断如果两者相等则进入后续修改密码的操作

【渗透实战】一次JS审计发现前端校验渗透

总结下密码修改的过程如下:

  1、登录抓包修改返回包的Item12进入密码修改

  2、修改响应包Item3的值为system

  3、修改响应包Item4的值为base64编码的数据作为原密码并赋值给pwd标

  4、将pwd标签的值与输入的原密码进行对比相同则进行密码修改

不难发现这个原密码pwd标签的是从前端获取的,所以是可以被我们进行修改的,故存在任意密码重置漏洞

03

漏洞复现

登录抓包修改返回包的Item12进入密码修改

修改Item3的值为system

随便输入一个密码的base64编码(这里输入000000)值作为系统返回的原密码,进入到密码修改页面

【渗透实战】一次JS审计发现前端校验渗透

【渗透实战】一次JS审计发现前端校验渗透

前面分析可以知道将返回的item4经过base64解码后赋给pwd标签,查看到前端代码可以看到pwd标签的值已经被修改为设置的000000

【渗透实战】一次JS审计发现前端校验渗透

此时在修改密码页面填入原密码000000,新密码888888,这个原密码会与pwd标签的值进行对比相等则验证成功进行修改密码

【渗透实战】一次JS审计发现前端校验渗透

修改之后在登录填入system/888888成功登录

【渗透实战】一次JS审计发现前端校验渗透

<<<  END >>>

原创文章|转载请附上原文出处链接

更多工具|关注作者查看

作者|混子Hacker

原文始发于微信公众号(混子Hacker):【渗透实战】一次JS审计发现前端校验渗透

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月4日10:32:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【渗透实战】一次JS审计发现前端校验渗透https://cn-sec.com/archives/3349066.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息