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 - @XSStringManolo

#691
Muy buena idea, y buen curro!
#692
Hacking / Re: MITM web?
18 Marzo 2020, 16:02 PM
Depende de si tu target es el propio dominio o un usuario en concreto.

En el primer caso una de las opciones es realizar un Domain Hijacking (Secuestro de dominio).

https://en.m.wikipedia.org/wiki/Domain_hijacking

Para ello pasarías a hackear al registrante. Por ponerte un ejemplo yo tengo unos 20 dominios registrados y los manejo online desde un panel. Si consiguieses infectar mi equipo, navegador, o realizar un ataque como un XSS en el sitio en el que me registro podrías transferir los dominios a otra cuenta.

También podrías hacer lo mismo pero atacando al equipo registrador o a los servidores DNS.

Otra opción es la de utilizar phishing u otras técnicas de ingeniería social para suplantar al registrador o registrante, servicio de email, etc.

Esta ataque también se extende al uso del protocolo http y por tanto a todos los ataques que se puedan dar usando proxies y snifando tráfico local.

Otro "ataque" frecuente es la compra de un dominio cuando expire. Obviamente no se van a olvidar de renovar wikipedia.org pero podrían olvidarse de registrar a tiempo una página oficial de las típicas que usan para hacer redirects. A empresas como microsoft que manejan una gran cantidad de dominios les ha pasado.

Otro vector de ataque es la inyección de cabeceras en emails donde puedes suplantar un email desde el servidor de salida para recibir la recuperación de contraseña de la cuenta que maneja tus dominios.

Otro es el homograph atack https://en.m.wikipedia.org/wiki/IDN_homograph_attack
Un ejemplo supersencillo de ver sería este link: foro.elhacker.net donde si un usuzario se despistase podría loggearse y quedarse sin cuenta.

Aquí tienes varios mitm https://www.acunetix.com/blog/articles/man-in-the-middle-attacks/
#693
Usa
nmap -A -T4 127.0.0.1
para sacar los servicios de tu equipo.

Usa ifconfig para sacar tu ip pública o sácalo de una web:
curl https://mi-ip.es

Después haces nmap a esa ip, por ejemplo:
nmap -A -T4 10.167.181.212

Te debe salir un listado como por ejemplo:
22 ftp ligthFTPDServer 5.12
80 http apache 2.4.10
#694
Cita de: kub0x en 18 Marzo 2020, 12:17 PM
@NEBIRE: es verdad que si lo contrae la gran parte de la población y dejamos a los de riesgo aislados, el virus no podrá expanderse pues todos están enfermos. Pero los doctores dicen que dependiendo de la carga vírica que hayas recibido por el contagio puedes estar en peligro e incluso fallecer. Supongo que serán unos miles, incluídos jóvenes. Ahora, el proceder de Inglaterra es increíble. Supongo que alguien alzará la voz de alarma y cordura, veremos que sucede. Por lo demás, totalmente de acuerdo con lo de la contaminación jeje, de vez en cuando deberíamos soltar nuevos virus o inventárnoslo directamente :D y asustar a la población como ahora.
Mirando los datos que ahora ya no quieren dar tan aisiduamente si haces el cálculo de % de muertos por número de infectados y lo aplicas a toda la población resulta en que en el hipotético caso de una infección TOTAL, van a morir entre 1 millón y 4 millones de españoles teniendo en cuenta el más que seguro colapso sanitario que se dará en cuanto se dispare el número de contagios.
#695
Todos estaremos de acuerdo que se veia venir y se debería haber actuado antes. Lo que hacia falta era cerrar todo cuando los casos superasen las decenas. Ahora como no salga vacuna dar por echo que nos vamos a infectar todos tarde o temprano.
#696
Cita de: engel lex en 17 Marzo 2020, 21:08 PM
hmm... tampoco hay que irse de las manos... aunque si... ahora falta por resolver alquileres XD que no se de aquel lado del mundo, pero aquí son principalmente individuos con una segunda casa
Por el coste que supone es una p**a verguenza que una sola persona en España pase hambre.
#697
Obtén consentimiento.
#698
Busqué el insta de CR y le puse view-source: antes de la url para ver el código. view-source:https://www.instagram.com/cristiano/

Busqué usando las herramientas del navegador las imágenes. Puse .jpg en la herramienta y me encontré lo siguiente:

Código (html5) [Seleccionar]
<meta content="207.7 millones seguidores, 440 seguidos, 2,777 publicaciones - Ve las fotos y los vídeos de Instagram de Cristiano Ronaldo (@cristiano)" name="description" />

<meta property="og:image" content="https://scontent-mad1-1.cdninstagram.com/v/t51.2885-19/s150x150/67310557_649773548849427_4130659181743046656_n.jpg?_nc_ht=scontent-mad1-1.cdninstagram.com&_nc_ohc=geHFAnAow1cAX8jbZud&oh=a8685994dd8c5f2ceb711f1210ab4e7f&oe=5EA58B2D" />


La url es totalmente random/no predecible asique hay que seleccionar utilizando un selector de DOM. Hay librerías para todos los lenguajes. En PHP y js te vienen incluidas por defecto. En node.js tienes jsdom y cheerio que te tienes que descargar, jsdom me va perfecto con document.querySelector.

Te pongo el ejemplo en javascript pero el selector es multiplataforma.

Utilizas el selector para obtener una referencia el elemento.
meta[property="og:image"]

document.querySelector('meta[property="og:image"]')


Una vez tienes una referencia al elemento accedes al valor del atributo que tiene el enlace. En este caso content.
Código (javascript) [Seleccionar]
document.querySelector('meta[property="og:image"]').getAttribute("content")

Ahora haces lo que quieras con él.
Código (javascript) [Seleccionar]
avascript:alert(document.querySelector('meta[property="og:image"]').getAttribute("content"));

Cuando te pidan el perfil de alguien le zumbas esa linea y ya sacas el link de la imagen. Tienes que sacar el código fuente de instagram. Para ello o usas tu servidor y pides el código con por ejemplo CURL en PHP, el módulo request o http en node.js o usas el server de Cors-Anywhere que hay online desde javascript.

Después creas una imagen, le añades el link como atributo y la muestras.

Código (javascript) [Seleccionar]
avascript:i=document.createElement("img");i.src=document.querySelector('meta[property="og:image"]').getAttribute("content");document.write(i.outerHTML);

Falta la j de javascript porque el foro lo bloquea por seguridad.

Puedes ir al instagram de cualquiera y escribir ese código en la barra de direcciones y ves la imagen de perfil.

Por si tienes curiosidad og:image se utiliza para tener una imagen cuando compartes un link. Es decir, que si compartes el link del instagram de alguien por whatsapp, se va a ver una preview de la imagen de su perfil. Haz la prueba, es esa imagen la que estoy seleccionando. Si la página está bien echa no tiene sentido que tenga más de 1 og:image por lo que siendo instagram no te hace falta comprobarlo.


Mod: Obligatorio el uso de etiquetas GeSHi para código.
#699
Desarrollo Web / Re: manifest.json
16 Marzo 2020, 21:49 PM
El manifest.json se usa en extensiones/complementos del navegador y también en aplicaciones de node.js.

En el caso de la extensiones es un archivo que define los permisos que necesita la aplicación del usuario, versión, nombre de la aplicación y demás.

En caso de node.js define los módulos/librerías que necesita la aplicación, los puntos de entrada a la aplicación, versión de los complementos y demás.

En Android también hay un manifest pero la extensión es xml. En este caso principalmente se definen los permisos y las actividades de la aplicación y el tipo de aplicación que es. Los permisos que te pide una aplicación cuando la instalas están definidos en este archivo.

También es posible que debido al uso frecuente del nombre manifest en varias plataformas y a que json está muy estandarizado te lo puedas encntrar de forma muy particular.
Por ejemplo yo podría crear un archivo manifest.json para exportar los resultados de un análisis de un malware con radare2 usando la opción j{} que te permite exportar cualquier salida en este formato.

#700
Cuando quieren añadir las búsquedas en Google o navegadores usan get con un servidor. Entonces se realizan las búsquedas a partir de la url. Ejemplo, quiero buscas coches en google. https://google.com/search?q=coches

Si quieres hacerlo interno en la web puedes hacerlo a tu p**a bola. Mira otras páginas y analiza como lo hacen.

Aquí te dejo un ejemplo de tutorialzine que me descargué hoy y me gustó mucho. Usa vue.js y css pero lo puedes implementar perfectamente en javascript vanilla sin mucha complicación.
Código (javascript) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Vue.js Instant Search</title>

   
    <style>
    /* Hide un-compiled mustache bindings
    until the Vue instance is ready */

    [v-cloak] {
      display: none;
    }

    *{
        margin:0;
        padding:0;
    }

    body{
        font:15px/1.3 'Open Sans', sans-serif;
        color: #5e5b64;
        text-align:center;
    }

    a, a:visited {
        outline:none;
        color:#389dc1;
    }

    a:hover{
        text-decoration:none;
    }

    section, footer, header, aside, nav{
        display: block;
    }


    /*-------------------------
        The search input
    --------------------------*/

    .bar{
        background-color:#5c9bb7;

        background-image:-webkit-linear-gradient(top, #5c9bb7, #5392ad);
        background-image:-moz-linear-gradient(top, #5c9bb7, #5392ad);
        background-image:linear-gradient(top, #5c9bb7, #5392ad);

        box-shadow: 0 1px 1px #ccc;
        border-radius: 2px;
        width: 400px;
        padding: 14px;
        margin: 45px auto 20px;
        position:relative;
    }

    .bar input{
        background:#fff no-repeat 13px 13px;
        background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkU5NEY0RTlFMTA4NzExRTM5RTEzQkFBQzMyRjkyQzVBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkU5NEY0RTlGMTA4NzExRTM5RTEzQkFBQzMyRjkyQzVBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTk0RjRFOUMxMDg3MTFFMzlFMTNCQUFDMzJGOTJDNUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTk0RjRFOUQxMDg3MTFFMzlFMTNCQUFDMzJGOTJDNUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4DjA/RAAABK0lEQVR42pTSQUdEURjG8dOY0TqmPkGmRcqYD9CmzZAWJRHVRIa0iFYtM6uofYaiEW2SRJtEi9YxIklp07ZkWswu0v/wnByve7vm5ee8M+85zz1jbt9Os+WiGkYdYxjCOx5wgFeXUHmtBSzpcCGa+5BJTCjEP+0nKWAT8xqe4ArPGEEVC1hHEbs2oBwdXkM7mj/JLZrad437sCGHOfUtcziutuYu2v8XUFF/4f6vMK/YgAH1HxkBYV60AR31gxkBYd6xAeF3VzMCwvzOBpypX8V4yuFRzX2d2gD/l5yjH4fYQEnzkj4fae5rJulF2sMXVrAsaTWttRFu4Osb+1jEDT71/ZveyhouTch2fINQL9hKefKjuYFfuznXWzXMTabyrvfyIV3M4vhXgAEAUMs7K0J9UJAAAAAASUVORK5CYII=);

        border: none;
        width: 100%;
        line-height: 19px;
        padding: 11px 0;

        border-radius: 2px;
        box-shadow: 0 2px 8px #c4c4c4 inset;
        text-align: left;
        font-size: 14px;
        font-family: inherit;
        color: #738289;
        font-weight: bold;
        outline: none;
        text-indent: 40px;
    }

    ul{
        list-style: none;
        width: 428px;
        margin: 0 auto;
        text-align: left;
    }

    ul li{
        border-bottom: 1px solid #ddd;
        padding: 10px;
        overflow: hidden;
    }

    ul li img{
        width:60px;
        height:60px;
        float:left;
        border:none;
    }

    ul li p{
        margin-left: 75px;
        font-weight: bold;
        padding-top: 12px;
        color:#6e7a7f;
    }
    </style>

</head>
<body>

<form id="main" v-cloak>

    <div class="bar">
        <!-- Create a binding between the searchString model and the text field -->

        <input type="text" v-model="searchString" placeholder="Enter your search terms" />
    </div>

    <ul>
        <!-- Render a li element for every entry in the computed filteredArticles array. -->
             
        <li v-for="article in filteredArticles">
            <a v-bind:href="article.url"><img v-bind:src="article.image" /></a>
            <p>{{article.title}}</p>
        </li>
    </ul>

</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.5/vue.min.js"></script>
<script>

var demo = new Vue({
    el: '#main',
    data: {
        searchString: "",

        // The data model. These items would normally be requested via AJAX,
        // but are hardcoded here for simplicity.

        articles: [
            {
                "title": "What You Need To Know About CSS Variables",
                "url": "http://tutorialzine.com/2016/03/what-you-need-to-know-about-css-variables/",
                "image": "http://cdn.tutorialzine.com/wp-content/uploads/2016/03/css-variables-100x100.jpg"
            },
            {
                "title": "Freebie: 4 Great Looking Pricing Tables",
                "url": "http://tutorialzine.com/2016/02/freebie-4-great-looking-pricing-tables/",
                "image": "http://cdn.tutorialzine.com/wp-content/uploads/2016/02/great-looking-pricing-tables-100x100.jpg"
            },
            {
                "title": "20 Interesting javascript and CSS Libraries for February 2016",
                "url": "http://tutorialzine.com/2016/02/20-interesting-javascript-and-css-libraries-for-february-2016/",
                "image": "http://cdn.tutorialzine.com/wp-content/uploads/2016/02/interesting-resources-february-100x100.jpg"
            },
            {
                "title": "Quick Tip: The Easiest Way To Make Responsive Headers",
                "url": "http://tutorialzine.com/2016/02/quick-tip-easiest-way-to-make-responsive-headers/",
                "image": "http://cdn.tutorialzine.com/wp-content/uploads/2016/02/quick-tip-responsive-headers-100x100.png"
            },
            {
                "title": "Learn SQL In 20 Minutes",
                "url": "http://tutorialzine.com/2016/01/learn-sql-in-20-minutes/",
                "image": "http://cdn.tutorialzine.com/wp-content/uploads/2016/01/learn-sql-20-minutes-100x100.png"
            },
            {
                "title": "Creating Your First Desktop App With HTML, JS and Electron",
                "url": "http://tutorialzine.com/2015/12/creating-your-first-desktop-app-with-html-js-and-electron/",
                "image": "http://cdn.tutorialzine.com/wp-content/uploads/2015/12/creating-your-first-desktop-app-with-electron-100x100.png"
            }
        ]
    },
    computed: {
        // A computed property that holds only those articles that match the searchString.
        filteredArticles: function () {
            var articles_array = this.articles,
                searchString = this.searchString;

            if(!searchString){
                return articles_array;
            }

            searchString = searchString.trim().toLowerCase();

            articles_array = articles_array.filter(function(item){
                if(item.title.toLowerCase().indexOf(searchString) !== -1){
                    return item;
                }
            })

            // Return an array with the filtered data.
            return articles_array;;
        }
    }
});
</script>
</body>
</html>