Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: TrashAmbishion en 24 Febrero 2018, 23:08 pm



Título: Timer web javascript !
Publicado por: TrashAmbishion en 24 Febrero 2018, 23:08 pm
Hola,

Estoy usando un portal cautivo que una vez me logueo me muestra un timer.

Estoy casi seguro de que es con javascript este es el codigo

Código
  1.  
  2.  
  3.     //??????
  4.  function $$(tt){return tt<10?"0"+tt : tt;};
  5.  var today   = new Date();
  6.  var hour  = $$(today.getHours() );
  7.  var minu  = $$(today.getMinutes());
  8.  var second= $$(today.getSeconds());
  9.  var actime= 'null';
  10.  if('notFound.jsp' != 'notFound.jsp')
  11.  {
  12.   var newWnd =window.open("notFound.jsp","_blank");newWnd.opener = null;
  13.  }
  14.       function set()
  15.   {
  16. var loginTime=parseInt((new Date().getTime()-today.getTime())/1000);
  17. if(loginTime++ > 600000)
  18. {
  19. today =new Date() ;
  20. //???????????,????!
  21. alert("Ha iniciado sesión en una semana. Reajuste el tiempo.");
  22. }
  23. if(actime > 0)
  24. {
  25.    setonTime(actime);
  26.    actime++;
  27. }
  28. else if(loginTime >0)
  29. {
  30. setonTime(loginTime);
  31. }
  32. }
  33.  setInterval(set,1000);
  34.  function setonTime(loginTime)
  35. {
  36. var hours   = 0;
  37. var minutes = 0;
  38. var seconds = 0;
  39.  
  40. hours = Math.floor(loginTime/3600);
  41. minutes = Math.floor((loginTime%3600)/60);
  42. seconds = loginTime%60;
  43.  
  44. if(hours <= 9)
  45. {
  46. hours="0"+hours;
  47. }
  48. if(minutes <= 9)
  49. {
  50. minutes="0"+minutes;
  51. }
  52. if(seconds <= 9)
  53. {
  54. seconds="0"+seconds;
  55. }
  56. var cdate = hours + ":" + minutes + ":" + seconds;
  57. document.getElementById('onlineTime').innerHTML = cdate;
  58. }
  59.  
  60.  var g_httpRequest        = null;
  61.  
  62.  var g_isSubmitLogout = false;
  63.  
  64. //???????
  65. function windowExitFunc(e)
  66. {
  67.    var event= window.event||e;
  68. try
  69. {
  70. if(g_isSubmitLogout)
  71. {
  72. return false;
  73. }
  74.  
  75. var message = "Visitar otros sitios web en esta página le llevará fuera de línea de forma anormal. Para visitar otros sitios web, haga clic en Cancelar y abra una nueva página.";
  76.  
  77. if (event)
  78. {
  79. event.returnValue = message;
  80. }
  81.  
  82. }
  83. catch(e)
  84. {
  85. alert("alert window error!!!");
  86. }
  87. return true;
  88. }
  89.  
  90. function userSubmitLogout()
  91. {
  92. if(!confirm("Se le desconectará. ¿Seguro que quieres cerrar sesión?"))
  93. {
  94.       return false;
  95. }
  96.  
  97. logoutImpl();
  98. return true;
  99. }
  100.  
  101. function logoutImpl()
  102. {
  103.  pageOnunload();
  104. }
  105.  
  106. function pageOnunload()
  107. {
  108.        //if(!g_httpRequest){ g_httpRequest = createHttpRequest(); }
  109.        var cookieCheck = document.getElementById("removeCookie");
  110.                var removeCookie = "1";
  111.                if (cookieCheck && cookieCheck.checked == true) {
  112.                    removeCookie = cookieCheck.value;
  113.                }
  114.         var g_httpRequest = createHttpRequest();
  115. if (g_httpRequest == null)
  116.         {
  117.           alert("Se desconecta de forma anormal. Por favor, póngase en contacto con el administrador de la red.");
  118.            return false;
  119.         }
  120.         else
  121.         {
  122.             var urlParam = "ATTRIBUTE_UUID=5F3ECF4FA52669B2A002632DAB1C1326&CSRFHW=8772d9aa7aaa9104f739acb0a1c7f7be"
  123.                 + "&wlanuserip=10.190.17.43"
  124.                 + "&ssid="
  125.                     + "&loggerId=20180223233301814+aismelva@gmail.com"
  126.                     + "&domain="
  127.                     + "&username=aismelva@gmail.com"
  128.                     + "&wlanacname="
  129.                     + "&wlanmac="
  130.                     +"&remove="+removeCookie;
  131.             g_httpRequest.open("GET", "/LogoutServlet?CSRFHW=8772d9aa7aaa9104f739acb0a1c7f7be&" + urlParam, true);
  132.             g_httpRequest.send();
  133.              var isOut;
  134.             g_httpRequest.onreadystatechange=function()
  135.       {
  136.         if (g_httpRequest.readyState==4 && g_httpRequest.status==200)
  137.         {
  138.         if(g_httpRequest.responseText.indexOf("SUCCESS") != -1)
  139.          {
  140.             if (g_httpRequest.responseText.indexOf("REMOVE_AUTHINFO_SUCCESS") != -1)
  141.            {
  142.                                    alert("???logout_result.removecookie.success???");
  143.                                }
  144.                                else if(g_httpRequest.responseText.indexOf("ERROR") != -1){
  145.                                   alert("???logout_result.removecookie.fail???");
  146.            }
  147.               isOut = true;
  148.          }
  149.          else
  150.          {
  151.            isOut = true;
  152.          }
  153.          if(isOut == false)
  154.  {
  155.    alert("Se desconecta de forma anormal. Por favor, póngase en contacto con el administrador de la red.");
  156.    return;
  157.  }
  158.  else if (isOut == null)
  159.  {
  160.    alert("Su red está desconectada. Compruébelo por favor.");
  161.    g_isSubmitLogout = true;
  162.     logoutToFirstPage();
  163.    return;
  164.  }
  165.  // alert("???logout_result.logout_success???");
  166.  g_isSubmitLogout = true;
  167.  //window.location.replace("http://www.google.com");
  168.  logoutToFirstPage();
  169.         }
  170.         else
  171.         {
  172.         if(g_httpRequest.readyState==4 && g_httpRequest.status != 200)
  173.             {
  174.               alert("request error "  + g_httpRequest.status);
  175.               return false;
  176.             }
  177.         }
  178.         }
  179.       }
  180. }
  181.        function logoutToFirstPage()
  182.        {  
  183.         //[false alarm:Cross-Site Scripting: Reflected]
  184.            window.location.href="/nauta_etecsa/OnlineURL/offline.jsp?CSRFHW=8772d9aa7aaa9104f739acb0a1c7f7be&lang="+'es_ES';
  185.        }
  186.         function IEkeydown(event)
  187. {
  188.    if ((event.keyCode == 8)||  //???????
  189.    (event.keyCode == 114)||
  190.    (event.keyCode == 116)||            //?? F5 ???
  191.    (event.keyCode == 122))             //?? F12 ???
  192.    {
  193.       event.keyCode=0;
  194.       event.returnValue=false;
  195.    }
  196.  
  197.    if ((event.altKey)&& ((event.keyCode==37)||(event.keyCode==39))) // ?? Alt + -> ? Alt+ <-
  198.    {
  199.        event.returnValue=false;
  200.    }
  201.  
  202.    if (event.ctrlKey ||(event.shiftKey)&&(event.keyCode==121)) //?? Ctrl ? ? shift+F10
  203.    {
  204.        event.returnValue=false;
  205.    }
  206. }
  207.  
  208. function FFkeydown(event)
  209. {
  210.        var key = event.which;
  211.    if ((key == 8) || (key == 114)|| (key == 116)||  (key == 122))                      //???????(event.keyCode ==   8)||//?? F5 ???//?? F12 ???
  212.    {
  213.      key=0;
  214.        event.preventDefault();
  215.    }
  216.            if ((event.altKey)&& ((key==37)||(key==39))) // ?? Alt + -> ? Alt+ <-
  217.    {
  218.        event.preventDefault();
  219.    }
  220.            if (event.ctrlKey ||(event.shiftKey)&&(key==121)) //?? Ctrl ? ? shift+F10
  221.    {
  222.        event.preventDefault();
  223.    }
  224. }
  225. function windowKeyDown(e)
  226.    {
  227.    if (window.event)
  228.        {
  229.          var event = window.event;
  230.                IEkeydown(event);
  231.        }
  232.        else
  233.        {
  234.       var event= e;
  235.    FFkeydown(event);
  236.    }
  237.        }
  238.  
  239. function createHttpRequest()
  240. {
  241.        var request;
  242.        try
  243.        {
  244.            request = new XMLHttpRequest();
  245.        }
  246.        catch (trymicrosoft)
  247.    {
  248.            try
  249.            {
  250.                request = new ActiveXObject("Microsoft.XMLHTTP");
  251.            }
  252.            catch (failed)
  253.            {
  254.                try
  255.                {
  256.                    request = new ActiveXObject("Msxml2.XMLHTTP");
  257.                }
  258.                catch (othermicrosoft)
  259.                {
  260.                    request = null;
  261.                }
  262.            }
  263.        }
  264.        return request;
  265. }
  266.  
  267.        function windowOnunload()
  268. {
  269.    if (!g_isSubmitLogout)
  270.    {
  271.        logoutImpl();
  272.    }
  273. }
  274.  
  275. function updateAvailableTime()
  276. {
  277. var g_httpRequest = createHttpRequest();
  278.    if (g_httpRequest == null)
  279.            {
  280.           alert("Actualización disponible tiempo falle.");
  281.             return;
  282.         }
  283.         else
  284.         {
  285.            g_httpRequest.open("post", "/EtecsaQueryServlet?CSRFHW=8772d9aa7aaa9104f739acb0a1c7f7be&op=getLeftTime&op1=aismelva@gmail.com&op2=F2DFE7165C25BE8CE34BF00BB73D318F217D582CDF1E174E4EAE42B6496E2FFC", true);
  286.            g_httpRequest.send();
  287.            g_httpRequest.onreadystatechange=function()
  288.            {
  289.             if (g_httpRequest.readyState==4 && g_httpRequest.status==200)
  290.             {
  291.             //?????????
  292.             var responseText = g_httpRequest.responseText;
  293.             if (responseText.indexOf("errorop") != -1)
  294.             {
  295.                alert("Actualización disponible tiempo falle.");
  296.                document.getElementById("availableTime").innerHTML = "--:--:--";
  297.                return;
  298.             }
  299.             //????
  300.             document.getElementById("availableTime").innerHTML = responseText;
  301.  
  302.             }
  303.             else if(g_httpRequest.readyState==4 && g_httpRequest.status != 200)
  304.            {
  305.               alert("request error "  + g_httpRequest.status);
  306.               return false;
  307.            }
  308.            }
  309.         }
  310. }
  311.  

Es posible al yo pinchar en el boton de cerrar la session manipular el tiempo consumido.

Saludos


Título: Re: Timer web javascript !
Publicado por: srWhiteSkull en 25 Febrero 2018, 11:50 am
Si es posible, el problema es que no afectará al tiempo registrado en el servidor ya que el js sólo es para mostrar el tiempo en el frontend. El desarrollador posiblemente ya pensó en eso.


Título: Re: Timer web javascript !
Publicado por: TrashAmbishion en 25 Febrero 2018, 14:00 pm
Hola srWhiteSkull,

No se pierde nada con intentarlo.

Voy a descargar el codigo html del sitio para revisar que funcion realiza el boton de cerrar sesion.

Saludos y gracias