Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: uranoph0bie en 23 Diciembre 2017, 18:20 pm



Título: Login en web usando cURL
Publicado por: uranoph0bie en 23 Diciembre 2017, 18:20 pm
Buenas tardes a todos, llevo un par de dias intentando hacer un script para hacer loging por terminal a plusdede. La verdad es que es la primera vez en mi vida que me relaciono con este tema ya que únicamente he programado otro tipo de cosas, nada que ver con web y la verdad creo que no puedo avanzar debido a mi desconocimiento sobre páginas webs, con los post etc.

Bueno vamos a ver, la página a la que quiero hacer loggin es https://www.plusdede.com/login, aquí os dejo el código por si no quereis entrar en la web y revisarlo vosotros:

Código
  1. <!DOCTYPE HTML>
  2.  <head>
  3.    <title>Login</title>
  4.    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  5.    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.    <meta name="viewport" content="width=device-width, initial-scale=1">
  7.    <meta name="_token" content="raMcB0TLrlPg6gQaZ9pRMdVThRTgs6dssZKbTVyJ"/>
  8.    <meta name="_version" content="768944385714"/>
  9.  
  10.    <link href="//fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
  11.    <link href="//fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" type="text/css">
  12.    <link rel="stylesheet" href="https://cdn3.plusdede.com/css/all.css?v=768944385714">
  13.    <link rel="icon" type="image/png" href="https://cdn2.plusdede.com/favicon-32x32.png" sizes="32x32">
  14.    <link rel="icon" type="image/png" href="https://cdn2.plusdede.com/favicon-16x16.png" sizes="16x16">
  15.  </head>
  16.  
  17.  <body>
  18.    <!-- Global Wrapper -->
  19.    <div id="main-container" class="container">
  20.      <div class="popup-content">
  21.        <div class="row">
  22.          <div class="col-md-3"></div>
  23.          <div class="col-md-6">
  24.            <div class="content">
  25.            <div class="page-login">
  26.              <h3 class="text-center">Login</h3>
  27.              <form method="POST" action="https://www.plusdede.com/login" accept-charset="UTF-8" class="form-horizontal"><input name="_token" type="hidden" value="raMcB0TLrlPg6gQaZ9pRMdVThRTgs6dssZKbTVyJ">
  28.                <div class="form-group ">
  29.                  <div class="col-xs-12">
  30.                  <input id="input-email" class="form-control" placeholder="Email o usuario" name="email" type="text"> </div>
  31.                </div>
  32.  
  33.                <div class="form-group">
  34.                  <div class="col-xs-12">
  35.                    <input name="password" class="form-control" type="password" placeholder="Password">
  36.                  </div>
  37.                </div>
  38.  
  39.                <div class="form-group captcha">
  40.                  <div class="col-xs-12">
  41.                    <img src="https://www.plusdede.com/captcha/flat?8yuo5tZ1" alt="captcha">
  42.                  </div>
  43.                </div>
  44.  
  45.                <div class="form-group captcha">
  46.                  <div class="col-xs-12"></div>
  47.                  <div class="col-sm-3"><label for="input-captcha" for="input-captcha" class="control-label">Captcha:</label></div>
  48.                  <div class="col-sm-9"><input id="input-captcha" class="form-control" placeholder="Escribe los números de la imagen" name="captcha" type="number" value=""></div>
  49.                </div>
  50.  
  51.                <div class="form-group text-center">
  52.                  <div class="col-xs-12">
  53.                    <button class="btn btn-success" type="submit">Entrar</button>
  54.                  </div>
  55.                </div>
  56.              </form>
  57.            </div>
  58.            <a data-href="/forgot" class="password-forgot-link modal-from-modal">¿Has olvidado tu contraseña?</a>
  59.            </div>
  60.          </div>
  61.          <div class="col-md-3"></div>
  62.        </div>
  63.      </div>
  64.    </div>
  65.  
  66.    <div class="modal fade" id="myModal" tabindex="-1" role="dialog">
  67.      <div class="modal-dialog" role="document">
  68.        <div class="modal-content">
  69.          <div class="modal-header">
  70.            <button type="button" class="close" data-dismiss="modal" aria-label="Close" title="&#1073;&#1083;&#1080;&#1079;&#1100;&#1082;&#1086;"><span aria-hidden="true">&times;</span></button>
  71.            <h4 class="modal-title" id="myModalLabel">Modal title</h4>
  72.          </div>
  73.          <div class="modal-body"> </div>
  74.          <div class="modal-footer">
  75.            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  76.            <button type="button" class="btn btn-primary">Save changes</button>
  77.          </div>
  78.        </div>
  79.      </div>
  80.    </div>
  81.  
  82.    <script src="https://cdn2.plusdede.com/js/all.js?v=768944385714"></script>
  83.  
  84.  </body>
  85.  
  86.  <script>
  87.    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  88.    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  89.    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  90.    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  91.  
  92.    ga('create', 'UA-101736100-1', 'auto');
  93.    ga('send', 'pageview');
  94.  </script>
  95.  
  96. </html>
  97.  

Como podéis ver para hacer loging hay que introducir usuario, contraseña y el código de un captcha. Mi script es muy simple, tengo lo siguiente:

Código
  1. #!/bin/bash
  2.  
  3. usuario=***
  4. pass=***
  5. uagent="Mozilla/5.0"
  6.  
  7. wget https://www.plusdede.com/login
  8. curl --cookie-jar cjar --output /dev/null -A "$uagent" https://www.plusdede.com/login
  9.  
  10. line_captcha=$(grep -i "/captcha/" login)
  11. url_captcha=$(echo "$line_captcha" | cut -d "\"" -f 2)
  12. wget "$url_captcha" -O captcha.png
  13.  
  14. read -p "Introducir catpcha: " cod;
  15.  
  16. line_clave=$(grep -i "form method=" login)
  17. token=$(echo "$line_clave" | cut -d "\"" -f 14)
  18.  
  19. curl -b cjar -c cjar -A "$uagent" -H "Content-Type: text/html" --form "_token=$token" --form "email=$usuario" --form "password=$pass" --form "captcha=$cod" --location --output ./inicio.html https://www.plusdede.com/login --trace-ascii trace.txt
  20.  
  21.  

El problema es que no sé si la ultima instrucción está bien, es decir, no sé como hacer el "POST". Espero que me puedan aclarar algunas nociones, si no tengo en cuenta algo de las cookis o lo que sea, la verdad es que ando algo perdido.

Muchas gracias y espero sus respuestas!!!


Título: Re: Login en web usando cURL
Publicado por: Tusso4 en 24 Diciembre 2017, 21:20 pm
Código
  1. curl "https://www.*******.com/login" -H "Content-Type: application/x-www-form-urlencoded" --data "_token=RyHx4TLqiXQ1yAB1PyTH2TAHtMVpONqoRcWH3yyM&email=EMAIL1@MAIL.COM&password=CONTRASENA&captcha=123123"

curl URL -H "header" --data="parametros post"

Si añades más headers debes poner -H "header1: XXX" -H "header2:DDD" -H "header3:PPP"

Espero que te sirva!  ;-)


Título: Re: Login en web usando cURL
Publicado por: uranoph0bie en 25 Diciembre 2017, 18:43 pm
Código
  1. curl "https://www.*******.com/login" -H "Content-Type: application/x-www-form-urlencoded" --data "_token=RyHx4TLqiXQ1yAB1PyTH2TAHtMVpONqoRcWH3yyM&email=EMAIL1@MAIL.COM&password=CONTRASENA&captcha=123123"

curl URL -H "header" --data="parametros post"

Si añades más headers debes poner -H "header1: XXX" -H "header2:DDD" -H "header3:PPP"

Espero que te sirva!  ;-)

La verdad es que no me ha funcionado, he usado -H "Content-Type: text/html" pero sigue devolviendome una página de error, por cierto, porque debería usar -H? No lo entiendo  :rolleyes:

He actualizado el mi post para que tengáis claro la pagina a la que quiero hacer login por si queréis probar ustedes u os facilite el poder ayudar.