elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18
161  Programación / Desarrollo Web / Re: Quien ha podido ser los capullos que me a hecho este ataque? en: 9 Julio 2013, 21:24 pm
Disculpa, ¿me puedes explicar esto?

162  Programación / PHP / Re: Problemas de horarios en el servidor. en: 9 Julio 2013, 21:16 pm
En el fichero php.ini de tu servidor (localhost) puedes cambiar la zona horaria del PHP:

Código:
[Date]
; Defines the default timezone used by the date functions
date.timezone = Europe/Madrid

Buenas, lo que me interesa, es cambiar la hora del servidor web, no la del local, pues en el local funciona bien... ¡Gracias por la ayuda! :P

podrias poner el "twitteroauth.php" para ver como lo trata?

Buenas

twitteroauth.php

Código
  1. <?php
  2.  
  3. /*
  4.  * Abraham Williams (abraham@abrah.am) http://abrah.am
  5.  *
  6.  * The first PHP Library to support OAuth for Twitter's REST API.
  7.  */
  8.  
  9. /* Load OAuth lib. You can find it at http://oauth.net */
  10. require_once('OAuth.php');
  11.  
  12. /**
  13.  * Twitter OAuth class
  14.  */
  15. class TwitterOAuth {
  16.  /* Contains the last HTTP status code returned. */
  17.  public $http_code;
  18.  /* Contains the last API call. */
  19.  public $url;
  20.  /* Set up the API root URL. */
  21.  public $host = "https://api.twitter.com/1.1/";
  22.  /* Set timeout default. */
  23.  public $timeout = 30;
  24.  /* Set connect timeout. */
  25.  public $connecttimeout = 30;
  26.  /* Verify SSL Cert. */
  27.  public $ssl_verifypeer = FALSE;
  28.  /* Respons format. */
  29.  public $format = 'json';
  30.  /* Decode returned json data. */
  31.  public $decode_json = TRUE;
  32.  /* Contains the last HTTP headers returned. */
  33.  public $http_info;
  34.  /* Set the useragnet. */
  35.  public $useragent = 'TwitterOAuth v0.2.0-beta2';
  36.  /* Immediately retry the API call if the response was not successful. */
  37.  //public $retry = TRUE;
  38.  
  39.  
  40.  
  41.  
  42.  /**
  43.    * Set API URLS
  44.    */
  45.  function accessTokenURL()  { return 'https://api.twitter.com/oauth/access_token'; }
  46.  function authenticateURL() { return 'https://api.twitter.com/oauth/authenticate'; }
  47.  function authorizeURL()    { return 'https://api.twitter.com/oauth/authorize'; }
  48.  function requestTokenURL() { return 'https://api.twitter.com/oauth/request_token'; }
  49.  
  50.  /**
  51.    * Debug helpers
  52.    */
  53.  function lastStatusCode() { return $this->http_status; }
  54.  function lastAPICall() { return $this->last_api_call; }
  55.  
  56.  /**
  57.    * construct TwitterOAuth object
  58.    */
  59.  function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {
  60.    $this->sha1_method = new OAuthSignatureMethod_HMAC_SHA1();
  61.    $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret);
  62.    if (!empty($oauth_token) && !empty($oauth_token_secret)) {
  63.      $this->token = new OAuthConsumer($oauth_token, $oauth_token_secret);
  64.    } else {
  65.      $this->token = NULL;
  66.    }
  67.  }
  68.  
  69.  
  70.  /**
  71.    * Get a request_token from Twitter
  72.    *
  73.    * @returns a key/value array containing oauth_token and oauth_token_secret
  74.    */
  75.  function getRequestToken($oauth_callback) {
  76.    $parameters = array();
  77.    $parameters['oauth_callback'] = $oauth_callback;
  78.    $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
  79.    $token = OAuthUtil::parse_parameters($request);
  80.    $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
  81.    return $token;
  82.  }
  83.  
  84.  /**
  85.    * Get the authorize URL
  86.    *
  87.    * @returns a string
  88.    */
  89.  function getAuthorizeURL($token, $sign_in_with_twitter = TRUE) {
  90.    if (is_array($token)) {
  91.      $token = $token['oauth_token'];
  92.    }
  93.    if (empty($sign_in_with_twitter)) {
  94.      return $this->authorizeURL() . "?oauth_token={$token}";
  95.    } else {
  96.       return $this->authenticateURL() . "?oauth_token={$token}";
  97.    }
  98.  }
  99.  
  100.  /**
  101.    * Exchange request token and secret for an access token and
  102.    * secret, to sign API calls.
  103.    *
  104.    * @returns array("oauth_token" => "the-access-token",
  105.    *                "oauth_token_secret" => "the-access-secret",
  106.    *                "user_id" => "9436992",
  107.    *                "screen_name" => "abraham")
  108.    */
  109.  function getAccessToken($oauth_verifier) {
  110.    $parameters = array();
  111.    $parameters['oauth_verifier'] = $oauth_verifier;
  112.    $request = $this->oAuthRequest($this->accessTokenURL(), 'GET', $parameters);
  113.    $token = OAuthUtil::parse_parameters($request);
  114.    $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
  115.    return $token;
  116.  }
  117.  
  118.  /**
  119.    * One time exchange of username and password for access token and secret.
  120.    *
  121.    * @returns array("oauth_token" => "the-access-token",
  122.    *                "oauth_token_secret" => "the-access-secret",
  123.    *                "user_id" => "9436992",
  124.    *                "screen_name" => "abraham",
  125.    *                "x_auth_expires" => "0")
  126.    */  
  127.  function getXAuthToken($username, $password) {
  128.    $parameters = array();
  129.    $parameters['x_auth_username'] = $username;
  130.    $parameters['x_auth_password'] = $password;
  131.    $parameters['x_auth_mode'] = 'client_auth';
  132.    $request = $this->oAuthRequest($this->accessTokenURL(), 'POST', $parameters);
  133.    $token = OAuthUtil::parse_parameters($request);
  134.    $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
  135.    return $token;
  136.  }
  137.  
  138.  /**
  139.    * GET wrapper for oAuthRequest.
  140.    */
  141.  function get($url, $parameters = array()) {
  142.    $response = $this->oAuthRequest($url, 'GET', $parameters);
  143.    if ($this->format === 'json' && $this->decode_json) {
  144.      return json_decode($response);
  145.    }
  146.    return $response;
  147.  }
  148.  
  149.  /**
  150.    * POST wrapper for oAuthRequest.
  151.    */
  152.  function post($url, $parameters = array()) {
  153.    $response = $this->oAuthRequest($url, 'POST', $parameters);
  154.    if ($this->format === 'json' && $this->decode_json) {
  155.      return json_decode($response);
  156.    }
  157.    return $response;
  158.  }
  159.  
  160.  /**
  161.    * DELETE wrapper for oAuthReqeust.
  162.    */
  163.  function delete($url, $parameters = array()) {
  164.    $response = $this->oAuthRequest($url, 'DELETE', $parameters);
  165.    if ($this->format === 'json' && $this->decode_json) {
  166.      return json_decode($response);
  167.    }
  168.    return $response;
  169.  }
  170.  
  171.  /**
  172.    * Format and sign an OAuth / API request
  173.    */
  174.  function oAuthRequest($url, $method, $parameters) {
  175.    if (strrpos($url, 'https://') !== 0 && strrpos($url, 'http://') !== 0) {
  176.      $url = "{$this->host}{$url}.{$this->format}";
  177.    }
  178.    $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters);
  179.    $request->sign_request($this->sha1_method, $this->consumer, $this->token);
  180.    switch ($method) {
  181.    case 'GET':
  182.      return $this->http($request->to_url(), 'GET');
  183.    default:
  184.      return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata());
  185.    }
  186.  }
  187.  
  188.  /**
  189.    * Make an HTTP request
  190.    *
  191.    * @return API results
  192.    */
  193.  function http($url, $method, $postfields = NULL) {
  194.    $this->http_info = array();
  195.    $ci = curl_init();
  196.    /* Curl settings */
  197.    curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
  198.    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
  199.    curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
  200.    curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
  201.    curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
  202.    curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
  203.    curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
  204.    curl_setopt($ci, CURLOPT_HEADER, FALSE);
  205.  
  206.    switch ($method) {
  207.      case 'POST':
  208.        curl_setopt($ci, CURLOPT_POST, TRUE);
  209.        if (!empty($postfields)) {
  210.          curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
  211.        }
  212.        break;
  213.      case 'DELETE':
  214.        curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
  215.        if (!empty($postfields)) {
  216.          $url = "{$url}?{$postfields}";
  217.        }
  218.    }
  219.  
  220.    curl_setopt($ci, CURLOPT_URL, $url);
  221.    $response = curl_exec($ci);
  222.    $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
  223.    $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
  224.    $this->url = $url;
  225.    curl_close ($ci);
  226.    return $response;
  227.  }
  228.  
  229.  /**
  230.    * Get the header info to store.
  231.    */
  232.  function getHeader($ch, $header) {
  233.    $i = strpos($header, ':');
  234.    if (!empty($i)) {
  235.      $key = str_replace('-', '_', strtolower(substr($header, 0, $i)));
  236.      $value = trim(substr($header, $i + 2));
  237.      $this->http_header[$key] = $value;
  238.    }
  239.    return strlen($header);
  240.  }
  241. }
  242.  
  243.  

Es la clase para enviar el tweet junto con la OAuth.php
¡Gracias por la ayuda! :P

¡Saludos!
163  Programación / PHP / Problemas de horarios en el servidor. en: 9 Julio 2013, 10:21 am
Buenas.

Estoy intentando mandar un tweet mediante PHP... el caso es que en el localhost (horario GTM +1 madrid) funciona perfectamente, no obstante, a la hora de subirlo a un servidor que tiene como hora estados unidos es decir (GTM -5 ,  6horas de diferencia con respecto al español) el tweet no es enviado, dado que las horas no coinciden....

Este es el código que uso.

Código
  1. <?php
  2.  
  3.  
  4. require('twitteroauth.php'); // libreria
  5. define('_CONSUMER_KEY','datos....'); // consumer key
  6. define('_CONSUMER_SECRET','más datos...'); // consumer secret
  7. define('_OAUTH_TOKEN','datos....'); // access token
  8. define('_OAUTH_TOKEN_SECRET','datos....'); // access token secret
  9.  
  10.  
  11. function getConnectionWithAccessToken() {
  12.  $connection = new TwitterOAuth(_CONSUMER_KEY, _CONSUMER_SECRET,_OAUTH_TOKEN, _OAUTH_TOKEN_SECRET);
  13.  return $connection;
  14. }
  15.  
  16.  
  17. // Ejecutamos la conexión
  18. $connection = getConnectionWithAccessToken();
  19.  
  20. //Publicamos el mensaje en twitter
  21. $mensaje = "Aquí iría el mensaje bla bla bla.";
  22. $twitter= $connection->post('statuses/update', array('status' => $mensaje) );
  23.  
  24.  
  25.  
  26. ?>
  27.  

Perdonad la precaución, dónde pone datos obviamente van los datos asociados a la cuenta...

¿Cómo puedo indicarle al servidor que la hora tiene que ser GTM+1 y no GTM-5?

Gracias de antemano.
164  Programación / Desarrollo Web / Re: Restauración de código. en: 6 Julio 2013, 12:16 pm
Me autoresponderé como los idiotas.

"'w+'    Apertura para lectura y escritura; coloca el puntero al fichero al principio del fichero y trunca el fichero a longitud cero. Si el fichero no existe se intenta crear. "

En la página oficial nunca mencionaron que la w+ servía para sobrescribir el fichero... o al menos yo no veo dónde dice "Si el fichero existe se remplaza por otro ..."

Como sea, creo que ya está solucionado.

¡Muchas gracias!
165  Programación / Desarrollo Web / Restauración de código. en: 6 Julio 2013, 10:29 am
Buenas, os comento, quería preguntar si alguien sabe si existe alguna forma de restaurar un código HTML/javascript en un determinado día / hora.

Me explico... Mi idea es la siguiente, tengo un formulario que mediante el método post, envía lo que se escribe a otra página. Como tal, tiene vulnerabilidades XSS... Mi idea es convertir eso en una forma de "etrenamiento" para la gente que se quiera pasar y hacer sus barbaridades dentro de la página.

El problema, es el siguiente, no voy a estar a cada rato eliminando el documento que se creo con el .php. No sé si me explico, cuando envias una cadena de caracteres en el formulario, pasa por el PHP, y si la página no existe, la crea... pues si hacen sus barbaridades, es obvio que los próximos usuarios que quieran probar XSS, no podrán por culpa de los anteriores, y yo no me veo capaz de estar a cada hora eliminando o restableciendo el código del documento que se creo.

Entonces la idea era, si existe alguna forma de restablecer ese código en un periodo determinado de tiempo, (lo del tiempo no hace falta pues sé como funciona y condicionarlo).

O otra forma (la cual desconozco y que seguramente exista (se me vino ahora a la cabeza)). Es que el .html que genera el .php se sobrescriba si ya existe.

Es decir, que si el php crea una página (ejemplo.html) y vuelven a reenviar el formulario (ejemplo.html sobrescriba al anterior ejemplo.html de está forma el código volvería a 0).

Gracias de antemano!
166  Comunicaciones / Redes / Re: Convertir PC en servidor WEB. en: 6 Julio 2013, 10:17 am
¡Solucionado! Gracias a los dos.
167  Comunicaciones / Redes / Convertir PC en servidor WEB. en: 4 Julio 2013, 08:38 am
Buenas, por necesidad de aprender un poco de PHP, me vi obligado a usar un servidor para el propio pc (Xampp), por no estar ingresando en un host, y subir los archivos por FTP cada dos por tres. El caso, es que, me preguntaba, como podría enseñar al público, dicho servidor, y todo lo que hay en él... Desde una red local ya he comprobado que funciona, si meto la dirección IP local (192.168.1.103 en mi caso) ya sea desde el propio ordenador u otro, puedo visualizar el contenido. No obstante, si pongo la dirección IP, no la visualiza.

Entonces, ¿cómo abro el servidor web al público? ¿Qué consecuencias puede llevar? Quiero decir, tengo entendido que te podrían trollear de lo lindo... (en el sentido de seguridad).

Uso GNU/Linux... tampoco he encontrado mucha información acerca de lo que estoy buscando, salvo que por lo visto (y obviamente), como el router cambia la dirección IP, se debería usar una IP estática, para que no dejase de estar en funcionamiento.

Gracias de antemano!
168  Programación / PHP / Re: PHP dentro de javascript. en: 1 Julio 2013, 20:03 pm
jajajaj ahora todo tiene sentido xD.

Bue, para estas cosas hay que ponerse creativo xD. No se.. yo lo haría de 2 maneras:


Supongamos que tienes una archivo reto.php...

El codigo que tienes, pero si se cumple (correcto), le envio una peticion ajax a un php con la respuesta, este la evalúa y si es correcta, retorna la url.

Ejemplo:
Código
  1. <?php
  2. if(!empty($_GET['respuesta'])){
  3.   if($_GET['respuesta']==='algo'){die('http://enlace_al_siguente_reto.com');}
  4.   else{die('error');}
  5. }
  6. ?>
  7. <html>
  8. <head>
  9. </head>
  10. <body>
  11.  
  12. <!-- Funcion para AJAX -->
  13. <script type="text/javascript" id="ajax">
  14. function cargarReto(variable){ var xmlhttp;
  15.   if (window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}
  16.   else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
  17.   xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4 && xmlhttp.status==200){
  18.      var respuesta = xmlhttp.responseText;
  19.  
  20.      // Si la respuesta no es correcta alerta.
  21.      if(respuesta==='error'){alert('Intento de h4ck -__-'); return false;}
  22.      // Si es correcta redirigir.
  23.      else{document.location=respuesta; return true;}
  24.  
  25.   }}; xmlhttp.open("GET","reto.php?respuesta="+variable,true); xmlhttp.send();
  26. };
  27. </script>
  28.  
  29. <script type="text/javascript">
  30. var ejemplo = "algo";
  31. var ejemplo2 = document.Formulario.ejemplo2.value;
  32.  
  33. if (ejemplo2 != ejemplo){
  34.   alert("incorrecto");
  35. }else{
  36.   alert ("correcto");
  37.   cargarReto(ejemplo2);
  38. }
  39. </script>
  40.  
  41. // resto del código, formularios, bla bla bla...
  42. </body>
  43. </html>


O, tambien puedes ofuscar el document location. Por ejemplo:

Código
  1. </head>
  2.  
  3.  
  4. <script type="text/javascript">
  5. var ejemplo = "algo";
  6. var ejemplo2 = "algo";
  7.  
  8. if (ejemplo2 != ejemplo){
  9.   alert("incorrecto");
  10. }else{
  11.   alert ("correcto");
  12.   var _0x1f7d=["\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x2E\x63\x6F\x6D"];document[_0x1f7d[0]]=_0x1f7d[1];
  13. }
  14.  
  15. // resto del código, formularios, bla bla bla...
  16. </body>
  17. </html>

Si se cumple, hará document.location="http://www.google.com";
http://javascriptobfuscator.com/

Saludos

Probé las dos, y funcionan perfectamente, muchísimas gracias. Me gustó la de ajax, aunque sinceramente no entiendo el código, quiero decir, sé lo que hace y lo que tengo que modificar para que pase lo que yo quiero, pero no sé que es realmente lo que está pasando, así que leeré un poco sobre ajax hasta entenderlo.

Muchísimas gracias ^.^' y perdonad las molestias.


POR CIERTO, EDITO:


Me percaté que si fuerzas al condicional a poner una condición diferente, para pasar de nivel y burlar a la respuesta real, tira el error que pusiste en ajax diciendo intento de hack.

Muchas gracias por ese detalle, se agradece mucho =P
169  Programación / PHP / Re: PHP dentro de javascript. en: 1 Julio 2013, 18:58 pm
@DonVidela, es que #Aitor intenta evitar document.location para no enseñar la url a la que va a redireccionar. Entonces yo creo que lo mejor que lo haga todo por parte de server..

Saludos

El problema es que, si lo hago todo por parte del servidor, no se ve el código fuente, y por ende no se sabrá que se debe ingresar. Mi intención es que no hagan trampas saltandose todo la estructura, poniendo en el navegador a dónde está redireccionando el document.location

Quizá debí haber aclarado que es para un Wargame... >_<
170  Programación / PHP / Re: PHP dentro de javascript. en: 1 Julio 2013, 18:40 pm
No es posible por que PHP se ejecuta mucho antes que el javascript o el html.

PD: Van a ver igualmente a donde va a redireccionar por que pueden obligar al javascript a cumplir la condición forzosamente.

Saludos 

No sé quién tiene razón, el chico de abajo dice que si se puede >_<'

Referente a la postdata, sé que pueden forzar a cumplir la condición, pero es más fácil ver la "contraseña" a usar inspector elemento e igualar por ejemplo 1==1, para que se cumpla la condicion y pasar por la redirección.

Gracias por la ayuda !
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines