一次工作中巧妙触发showlayer函数思路(黑盒代码分析)

一次工作中巧妙触发showlayer函数思路(黑盒代码分析)


利用点:

没有按钮,如何触发showlayer函数思路


漏洞代码段:

图片1.png



这里相当于通过实例object对象,调用data并获取了当前用户的email邮箱,其中判断变量的rmail当前是否是email

如果是,则发送该邮件,但是我们没有发现对rmail进行具体用户的实例判断

,这样一来,我们可以看到是json格式的

取用户的json对象,那么我们可以这样认为,那么如果是其他邮件,但是只要用户的参数是对的,他是否能绕过呢,为了判断这个可能性,我们来尝试绕过,但是如何绕过

我们仔细观察了一下代码

我们注意这里:

/forgotpassword

这里好像是重置密码的点

我们在源代码分析中,发现一个问题

  type: "post",                 url: '/forgotpassword',

 

function showlayer() {

 function showlayer() {     //必须输入字符,切正确后,才能弹出该框

 

也就是输入正确,才能弹出

但是默认这里没有弹出的窗口,那我们不知道密码的情况下,如何弹出调用窗口,我们先试试,输入错误的密码,进行截包

 

我们想办法调用出这个窗口,或许就能发现问题



发送到response

 

随便提交试试


证明,弹窗失败

那么我们如何,能让弹窗实现呢

我们看了看界面,发现除了一个登陆,先检查一下元素


图片2.png


图片3.png


验证码这里

再看看,这里呢

为了提高系统的使用性能,请尽量使用谷歌浏览器。 若使用IE浏览器,请设置成兼容模式

注意这个兼容模式


我们注意这里onclick=show,貌似可以利用的感觉

我们这里需要用到一个技巧

但是技巧的前提是,如果他当前系统验证了用户的密码,那么可能会失败

没有没有检查用户密码,可能就会成功

我们再看看漏洞的代码是什么

function showlayer() {     //必须输入字符,切正确后,才能弹出该框

 

注意这里,我们如果不把他弹出来,就不能进行后续的代码

我们利用的点就在这里

我们可以使用onclick事件来试试

测试方法:先从XSS开始

onclick="showWin();"

把他修改成:onclick=javascript:alert(1);

点击存储,看是否能否执行1



我们写””

 

发现可以执行,那么问题来了

 

那我们是否能调用function 声明的showlayer函数


只有成功调用他,才能够让代码继续走下去

我们试试

onclick=javascript:alert(1); ,弹出了111,那么证明可以调用

那么我们需要把代码改成

onclick=javascript:showlayer();

触发

我们先进行用户,密码输入,然后点击兼容模式


QQ截图20220111111414.jpg



然后尝试截包

 

点击发送到response

然后提交


图片4.png



到这里,我们发现我们成功利用onclick事件,把showlayer()调用出来了

QQ截图20220111111513.jpg