通过JavaScript

时间:2017-07-10 22:03:49

标签: javascript jquery forms google-chrome-devtools chrome-dev-editor

当浏览器在客户端执行JavaScript时,如何在 Chrome的开发工具中调试(折叠网页),并且 JavaScript正在从表单附加提交查询

例如,我有一个页面,其中包含:

  1. 文字+密码作为名称为password&的输入字段login
  2. 当我点击提交时,浏览器执行1000个JavaScript脚本的执行,但在结果中我只看到一个带有神奇添加的查询参数的完整查询(HTML表单中不存在)
  3. 保留日志没有用,因为浏览器在提交期间(按下按钮时)会进行重定向
  4. 这些不是隐藏字段类型
  5. 还没有内联JavaScript,但幕后有一个大.js文件
  6. 我想要的是找到负责插入那些“神奇”查询片段的JavaScript代码。

    我可以补充说,这个查询参数值是通过组合那些先前提交的输入文本/密码字段值来创建的,如:

    param name                 |     param value
                                    (by combine login/password delimited by val2) 
    ---------------------------------------------------------------------------------
    hrsxcvaqr1ib8slcxmalzas321   =   someloginval2somepassword
    
    // or when I input no login and password
    hrsxcvaqr1ib8slcxmalzas321   =    undefinedval2undefined
    

    hiddenFieldName=hiddenFieldVal&login=somelogin&password=somePassword&hrsxcvaqr1ib8slcxmalzas321=undefinedval2undefined

    通过反向查找,我知道注入查询的内容:

    1. 我可以在Chrome开发工具中输入哪些内容?
    2. 当字符串附加或由val2连接时,我需要输入什么断点或条件才能停止执行?
    3. 我正在尝试

      window.addEventListener("beforeunload", function() { debugger; }, false)
      

      但是当我看到这样的事情时,这没有用。

      enter image description here

      这是表单提交js入口点

         onsubmit="zablokujPrzycisk(this)">
      
      function zablokujPrzycisk(a) {
          var c = $(a);
          var b = c.find("button");
          b.disable()
      }
      

      仍然没有任何帮助

      我想添加断点以匹配表单输入字段(用法)

      好吧我发现这是修改表单的地方

       dX.event = {
              global: {},
              add: function(n, h, b, l, m) {
                  var k, a, s, q, f, j, c, p, d, o, r, g = dX._data(n);
                  if (!g) {
                      return
                  }
                  if (b.handler) {
                      q = b;
                      b = q.handler;
                      m = q.selector
                  }
                  if (!b.guid) {
                      b.guid = dX.guid++
                  }
                  if (!(a = g.events)) {
                      a = g.events = {}
                  }
                  if (!(j = g.handle)) {
      

      ///////////////这里////////////////

                      j = g.handle = function(t) {
                          return typeof dX !== eF && (!t || dX.event.triggered !== t.type) ? dX.event.dispatch.apply(j.elem, arguments) : eB
                      }
      

      /////////////那么这里////////////////////

              dispatch: function(j) {
              j = dX.event.fix(j);
              var g, f, a, l, h, b = [], c = b5.call(arguments), k = (dX._data(this, "events") || {})[j.type] || [], d = dX.event.special[j.type] || {};
              c[0] = j;
              j.delegateTarget = this;
              if (d.preDispatch && d.preDispatch.call(this, j) === false) {
                  return
              }
              b = dX.event.handlers.call(this, j, k);
              g = 0;
              while ((l = b[g++]) && !j.isPropagationStopped()) {
                  j.currentTarget = l.elem;
                  h = 0;
                  while ((a = l.handlers[h++]) && !j.isImmediatePropagationStopped()) {
                      if (!j.namespace_re || j.namespace_re.test(a.namespace)) {
                          j.handleObj = a;
                          j.data = a.data;
                          f = ((dX.event.special[a.origType] || {}).handle || a.handler).apply(l.elem, c);
                          if (f !== eB) {
                              if ((j.result = f) === false) {
                                  j.preventDefault();
                                  j.stopPropagation()
                              }
                          }
                      }
                  }
              }
              if (d.postDispatch) {
                  d.postDispatch.call(this, j)
              }
              return j.result
          },
      

      /////////////////////////我们得到的东西是//////////

       $('[data-formularz-log-in]').submit(function(e) {
          var a = document.createElement("input");
          var b = $(this).find('[name="login"]').val();
          var c = $(this).find('[name="blabla"]').val();
          var d = $(this).find('[name="password"]').val();
          var f = b + 'val2' + d;
          a.setAttribute('type', 'hidden');
          a.setAttribute('name', 'hrsxcvaqr1ib8slcxmalzas321');
          a.setAttribute('value', f);
          $(this)[0].appendChild(a)
      });
      

      stacktrace:

      (anonymous) (VM6228:formatted:5)
      dispatch (min.js?v=91:formatted:1858)
      g.handle (min.js?v=91:formatted:1669)
      

      但我仍然不知道 hrsxcvaqr1ib8slcxmalzas321 这个名字是怎么来的?

      enter image description here

0 个答案:

没有答案