0%

63WEB攻防-JS应用1

思维导图

41WEB攻防

知识点:

  • 66、JavaScript-作用域&调用堆栈
  • 67、JavaScript-断点调试&全局搜索
  • 68、JavaScript-Burp算法模块使用

章节点:

Web层面:Web2.0 & Web3.0
语言安全:JS,ASP,PHP,NET,Java,Python等(包含框架类)
OWTOP10:注入,文件安全,XSS,RCE,XXE,CSRF,SSRF,反序列化,未授权访问等
业务逻辑:水平垂直越权,支付签约&购买充值,找回机制,数据并发,验证码&弱口令等
特殊漏洞:JWT,CRLF,CORS,重定向,JSONP回调,域名接管,DDOS,接口枚举等
关键技术:POP链构造,JS逆向调试,NET反编译,JAVA反编译,代码解密,数据解密等
Web3.0:未待完续筹备中….

前置知识

  • 1、作用域:(本地&全局)
    简单来说就是运行后相关的数据值

  • 2、调用堆栈:(由下到上)
    简单来说就是代码的执行逻辑顺序

  • 3、常见分析调试:
    -代码全局搜索
    -文件流程断点
    -代码标签断点
    -XHR提交断点

  • 4、为什么要学这个?
    -针对JS开发应用
    -密码登录枚举爆破
    -参数提交漏洞检测
    -泄漏URL有更多测试

JS逆向-流程&全局搜索-登录算法

流程断点:审查元素抓网络请求包发起程序
全局搜索:通过抓包参数名进行代码全局搜索

JS逆向-标签&XHR断点-登录算法

标签断点:审查元素对应标签按钮加入断点
XHR断点:审查元素源代码加入XHR断点配置

JS逆向-结合BurpSuite-插件引用

  • 1、下载phantomjs并设置环境变量
    https://phantomjs.org/download.html

  • 2、BurpSuite加载jsEncrypter插件
    https://github.com/c0ny1/jsEncrypter/releases

  • 3、对逆向的加密算法提取JS文件及代码

    1
    2
    3
    4
    5
    6
    7
    JSEncrypt.js

    var r = new JSEncrypt,
    o = "xxxxxxxxx";
    r.setPublicKey(o);
    var s = r.encrypt(password)
    return s
  • 4、讲代码写入到模版中(引用JS和调用加密)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var wasSuccessful = phantom.injectJs('JSEncrypt.js');

    function encrypt(password){
    var r = new JSEncrypt,
    o = "xxxxxxxxx";
    r.setPublicKey(o);
    var s = r.encrypt(password)
    return s
    }

    // 处理函数
    function js_encrypt(payload){
    var newpayload;
    /**********在这里编写调用加密函数进行加密的代码************/
    var newpayload=encrypt(payload)
    /**********************************************************/
    return newpayload;
    }
  • 5、运行刚写入的模版文件后插件连接测试

phantomjs xxxxx.js

  • 6、正常设置发包后选择引用插件选项

欢迎关注我的其它发布渠道

-------------本文结束感谢您的阅读-------------