• DVWA 黑客攻防演练(十三)JS 攻击 JavaScript Attacks


    新版本的 DVWA 有新东西,其中一个就是这个 JavaScript 模块了。

    玩法也挺特别的,如果你能提交 success 这个词,成功是算你赢了。也看得我有点懵逼。

    初级

    如果你改成 “success” 提交一下会出现了这个,Invalid token。这是什么回事呢?

    你可以打开控制台(F12),看看情况。

    你会看到这个 token,不是后台生成的,而是前台生成的。。。而前台生成的 token,是用 md5("ChangeMe"),而后台期待的 md5 是 md5("success")
    所以你在输入框中输入 success 之后,还得在控制台在调用 generate_token() 函数。

    结果如下

    中级

    思路是一样的,只是生成 token 的函数放到另外的 js 文件中了。

    如果你打开这个 js 文件 http://192.168.0.110:5678/vulnerabilities/javascript/source/medium.js ,你会看到这样

    function do_something(e) {
        for (var t = "", n = e.length - 1; n >= 0; n--) t += e[n];
        return t
    }
    setTimeout(function () {
        do_elsesomething("XX")
    }, 300);
    
    function do_elsesomething(e) {
        document.getElementById("token").value = do_something(e + document.getElementById("phrase").value + "XX")
    }
    

    所以,在输入框输入 “success” 之后,在控制台中,输入do_elsesomething("XX") 就可以了。

    高级

    高级和中级类似,生成 token 的逻辑在额外的 js 文件中。和中级不同的是,这里的 JS 经过了混淆的。。。就显得很混乱。

    http://192.168.0.110:5678/vulnerabilities/javascript/source/high.js
    截取其中的一段给大家看看

    var a=['fromCharCode','toString','replace','BeJ','x5cw+','Lyg','SuR','(w(){x273Mx203Lx27;qx201l=x273Kx203Ix203Jx20Tx27;qx201R=1cx202I===x271nx27;qx20Y=1R?2I:{};p(Y.3N){1R=1O}qx202L=!1R&&1cx202M===x271nx27;qx202o=!Y.2S&&1cx202d===x271nx27&&2d.2Q&&2d.2Q.3S;p(2o){Y=3R}zx20p(2L){Y=2M}qx202G=!Y.3Q&&1cx202g===x271nx27&&2g.X;qx202s=1cx202l===x27wx27&&2l.3P;qx201y=!Y.3H&&1cx20Z!==x272Tx27;qx20m=x273Gx27.3z(x27x27);qx202w=[-3y,3x,3v,3w];qx20U=[24,16,8,0];qx20K=
    

    这不是正常人类能看懂的。
    http://deobfuscatejavascript.com 中提供的功能是,把混淆后的代码转成人类能看懂一些 js 代码
    其中关键的部分是这里:

    这里生成 token 的步骤是:

    1、执行token_part_1("ABCD", 44)
    2、执行token_part_2("XX")(原本是延迟 300ms执行的那个)
    3、点击按钮的时候执行 token_part_3

    所以我们在输入框输入 success 后,再到控制台中输入token_part_1("ABCD", 44)token_part_2("XX")这两个函数就可以了。

    不可能

    哈哈哈,被摆了一道了。你永远不要信息来自用户的任何东西!!!

  • 相关阅读:
    spark基于zookeeper的高可用异常启动分析
    cdh 系统配置文件更新 error parsing conf core-site.xml
    spark2.1消费kafka0.8的数据 Recevier && Direct
    spark2.3 消费kafka0.10数据
    hadoop3.x的HA解析
    nginx安装运维
    redhat7 升级openssh openssl
    kylin 密码错误
    Vray5 材质库 图灵炸裂版 (支持Vray3.x) + VMMP
    让3dmax第一次打开材质浏览器不要卡顿
  • 原文地址:https://www.cnblogs.com/jojo-feed/p/10206443.html
Copyright © 2020-2023  润新知