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 - Pytness

#1
Hacking ShowOff / [XSS] pcxeon.com
Julio 15, 2017, 07:47:48 PM


URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vector: '"><svg onload=alert('pytness')>
Reportado: No
#2
Acabo de instalar Kali en una particion aparte y tras realizar todas las actualizaciones, la pantalla rota de vez en cuando.
Esto lo arreglo facilmente con el comando xrandr -o normal, pero al rato vuelve a rotarse.
Alguien sabe como solucionarlo? o en su defecto, alguien sabe por que sucede?

Gracias.
#3
Ideas y Sugerencias / Re:¿Qué opinas sobre Underc0de?
Febrero 17, 2017, 02:57:00 PM
Pues la verdad es que no tengo de que quejarme, el foro visualmente no me disgusta para nada, contiene muchos temas interesantes y la comunidad es bastante amplia y cooperativa. No le veo nada malo : )
#4
Acabo de probar a crear un archivo con un byte nulo con php y me ha dado error.
Aunque es posible que esto este condicionado por la version de php.

root-me.org, me lo apunto ;)
#5
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Recién ahora después de tanto tiempo me doy cuenta de algo y encima la página al parecer está caída  :'(

Podría haber intentado subir una webshell utilizando la técnica de null byte, porque el único problema era que agregaba .jpg a la extensión del archivo.
Lleva caida bastante tiempo, desde el año pasado un poco antes de navidades.
Desconozco la tecnica de la que hablas...
Tendré que buscarla :)

Enviado desde mi SM-J510FN mediante Tapatalk

#6
Pf, shell de linux tengo que aprender (ya se que en el hacking sin saber shell no llego a ningún sitio xD).
De todas formas estoy haciendo un grado medio de informatica (me falta un año para estudiar 'seguridad informática')  y bash lo estudiaré seguro, aunque lo aprenderé x mi cuenta.
Por ahora m dedico a buscar xss y sqli porque en el resto de cosas no llego a estar ni verde :-\

Pytness
#7
Hm... tienes razon.
De todas formas, he hecho un uploader con ajax y php, aqui va el codigo:
Código: php
<?php
if (!isset($_POST['img'])) {
?>
<!DOCTYPE html>
<html>
<head>
      <title>Import JS</title>
      <style>
      html, body {
            height: 100%;
            width: 100%;
            margin: 0px;
            padding: 0px;
            overflow: hidden;
            text-align: -webkit-center;
            text-align: -moz-center;
            background-color: green;
            background: repeating-linear-gradient(90deg, #4B4B4B 0%, #737373 100%);
      }
      .thumb {
            max-width: 100%;
            max-height: 100%;
      }
      .c_container {
            width: 800px;
            height: 450px;
            box-shadow: 0px 2px 5px -2px black;

      }
      canvas {
      }

      .interface {
            height: 600px;
            width: 800px;
            margin-top: 50px;
            background-color: white;
            box-shadow: 0px 2px 10px -2px black;
            text-align: left;
      }
      .button {
            margin-top: 10px;
      }
      </style>
</head>
<body>

      <div class="interface">
            <div class="c_container" id="img"></div>
            <input type="file" style="display: none" id="files"/>
            <input type="button" class="button" onclick="document.getElementById('files').click()" value="Get Image">
            <br>
            <input type="button" class="button" onclick="upload()" value="Upload">
            <br />
            Url: <span id="url"></span><br />
            <input type="button" class="button" onclick="copyLink()" value="Copy Url">
      </div>



      <script>
      var imgData = '';
      function fileSelected(evt) {
            var files = evt.target.files;

            for (var i = 0, f; f = files[i]; i++) {
                  if (!f.type.match('[.]*\.(png|jpeg|jpg|ico)')) {
                        alert('Must be a png');
                        return false;
                  }
                  var reader = new FileReader();

                  reader.onload = (function(theFile) {
                        return function(e) {
                              imgData = e.target.result.replace('/x-icon;', '/png;').replace('/jpeg;', '/png;').replace('/jpg;', '/png;').replace('/gif;', '/png;');
                              document.getElementById('img').innerHTML = '<img class="thumb" src="'+ imgData + '"/>';
                        };
                  })(f);

                  // Read in the image file as a data URL.
                  reader.readAsDataURL(f);
            }
      }

      function rand(min, max) {
            return Math.floor(Math.random() * parseInt(max)) + parseInt(min);
      }

function copyLink() {
prompt('Crtl + C, Enter', document.getElementById('url').innerHTML);
}

      function upload() {
            var ajax = new XMLHttpRequest();
            ajax.open('POST', "./up.php", true);
            ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            ajax.onreadystatechange = function() {
                  if (ajax.readyState === 4 && ajax.status == 200) {
                        document.getElementById('url').innerHTML='http://carta.es/dibujos/' + ajax.responseText + '.png';
                  }
            };
            var postData = 'img=' + imgData;
            // alert(postData);
            ajax.send(postData);
      }

      document.getElementById('files').addEventListener('change', fileSelected, false);
      </script>
</body>
</html>
<?php
} else {
$imgData = $_POST['img'];
$url = 'http://www.carta.es/save.php';
$data = array(
'nombre' => 'Linus Torvalds',
'edad' => rand(1, 99),
'bien' => 'No',
'lista' => 'dscsdv',
'dibujo' => $imgData,
'email' => '[email protected]',
'padre' => 'Linus Torvalds',
);
$options = array(
'http' => array(
'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
'method'  => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
echo file_get_contents($url, false, $context);
}

?>


No he dedicado mucho tiempo a la interfaz pero funciona.
Creo que no hace falta decir que necesitas un servidor con php, ni que lo podeis editar si quereis (como si no lo fueseis a hacer si os dijese que no  ;D ;D)

EDIT: El archivo necesita llamarse up.php, aunque se puede cambiar si cambiais tambien la ruta a la que se dirige en el No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (linea 95)
#8
Debates, Reviews y Opiniones / Re:1GB = 1000MB
Diciembre 16, 2016, 06:43:17 AM
No me parece nada bien, en la informatica se trabaja con potencias de 2 y 'ahora' ponen multiplos de 10...
En fin, como anecdota contaré que en el instituto no me puntuaron un ejercicio (uno random de matematicas de cambio de bases) porque lo hice con potencias de 2, mientras que el resto de mortales lo hicieron con multiplos de 10.
Si es que se nos va de las manos...
#9
Debates, Reviews y Opiniones / Re:¿Que SO usas?
Diciembre 16, 2016, 06:35:58 AM
Windows 10 nativo y Ubuntu.
Por desgracia Ubuntu me da problemas y tiendo a usar w10.
Matadme.
#10
A nadie se le ocurre nada con esto? :

Se podria incluir un script y mandarselo a alguien  :P
Aunque no he podidio acceder al link :(

ah, se me olvidaba, mirad la url de la imagen  ;) ;D ;D
#11
En realidad no envia ningun email, debe tener algun bug :/
#12
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Se podrá subir una webshell? Mmmm, naah porque siempre lo guarda en un png. Pero podrías crear una página web que use sus servicios para subir fotos, es decir sirve como un uploader, jaja.
Otro dato es que no tiene ningún tipo de restricción al parecer en lo que respecta al tamaño de la imagen, se podría hacer un script que suba imágenes de 5megas o más grande aún en cada consulta, eso sería mucha maldad.

Creo que también lo podrías usar como spammer o simplemente para molestar porque pide el correo donde supongo que mandan la carta, en ningún momento tiene una captcha para que no se pueda automatizar todo ese proceso con un simple script en sh.

Suficiente por hoy, saludos!

Para subir la imagen tienes q toquetear en el <canvas> no?
Si es asi, es un poco 'tedioso' no?
Aunque lo puedes automatizar con un script :P
#13
Imagenes:


Url: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vector: <script>alert('XSS\nFrom Pytness\nTo Undercode\nWith Love <3');</script>*
Autor: Pytness
Ejemplo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Reportado: No


*Es necesario poner todo el script en una sola linea
#14
Hacking ShowOff / [XSS] Web Timo
Octubre 13, 2016, 04:35:50 PM
Imagen:


Url: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vector: <h1 style="color:red">UNDERCODE And Pytness</h1>
Url + Vector:  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Autor: Pytness
Reportado: Nope

Aparentemente parece funionar con php, pero lo hace con js. Es decir, si se deshabilita este, el xss no funcionará.

PD:
LA PÁGINA ES UN POCO TOCA NARICES, pero nada que no se pueda arreglar toqueteando un poco :)

Y ya ni comento lo que pone de fondo xD

PD-2:
En el timo original aparecia este numero de telefono: 932 20 23 38. Lo he 'denunciado' en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

... y la ip es totalmente falsa :T

#15
Buenas, he hecho un script en python 3.5 para realizar una conexión con websockets:
Python 3.5 code:
Código: python

import base64, hashlib
import socket, threading, time, os


class Connection:

    def __init__(self, HOST, PORT):
        self.HOST = HOST
        self.PORT = PORT
        self.magicKey = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"


    def init(self):
        self.socket = socket.socket()
        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.socket.bind((self.HOST, self.PORT));
        self.socket.listen(1);
        self.conn, self.addr = self.socket.accept();

        h = self.conn.recv(1024).decode("utf-8")
        print(h)
        self.conn.send(bytes(self.header(h).encode("utf-8")))
        # threading.Thread(target = self.getData).start()
        threading.Thread(target = self.getData).start()

    def getKey(self, msg):
        msg = msg.split("\r\n")
        for x in msg:
            if x.count("Sec-WebSocket-Key") != 0:
                key = x.split(" ")[1]
                hash = hashlib.sha1()
                hash.update(bytes((key + self.magicKey).encode("utf-8")))
                return base64.b64encode(hash.digest()).decode("utf-8")

    def header(self, msg):
        finalKey = self.getKey(msg)
        print(finalKey)

        header = "HTTP/1.1 101 Switching Protocols\r\n"
        header += "Upgrade: websocket\r\n"
        header += "Connection: Upgrade\r\n"
        header += "Sec-WebSocket-Accept: " + finalKey + "\r\n"
        header += "\r\n"
        return header

    def getData(self):
        while True:
            data = self.conn.recv(1024)
            print(str(data))

    def sendData(self):
        # while True:
        enviar = bytes("Test \n".encode("utf-8"))
        self.conn.sendall(enviar)

connection = Connection("localhost", 7899)
connection.init()


JS Code:
Código: javascript

function send(data) {
ws.send(data);
}

var op = document.getElementById("output");
op.innerHTML = '';

ws = new WebSocket('ws://localhost:7899');

ws.onopen = function (evt) {
op.innerHTML += "Open <br>";
send("test")
};
ws.onclose = function (evt) {
op.innerHTML += "Closed <br>";
};
ws.onmessage = function (evt) {
op.innerHTML += "<pre>" + evt.data + "</pre><br>";
};
ws.onerror = function (evt) {
op.innerHTML += "Error <br>";
};



E aquí la respuesta que obtengo en la consola al conectarme:
Código: php

GET / HTTP/1.1

Host: localhost:7899

Connection: Upgrade

Pragma: no-cache

Cache-Control: no-cache

Upgrade: websocket

Origin: file://

Sec-WebSocket-Version: 13

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36

DNT: 1

Accept-Encoding: gzip, deflate, sdch

Accept-Language: es-ES,es;q=0.8

Sec-WebSocket-Key: rrbq+deqlkTqFTSZ4qEyGQ==

Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits




TAPFySA27bL6vQ7S8bsd4ve14ZY=
b'\x81\x84\x95\x91P\x05\xe1\xf4#q'


El problema está en que yo mando con js 'test' y recibo b'\x81\x84\x95\x91P\x05\xe1\xf4#q' en consola.
He intentado decodificarlo a utf-8 pero da error.

Espero que sepan y puedan ayudarme.
Gracias.

-Pytness
#16
Hacking ShowOff / Re:[XSS] http://espinillo.org
Septiembre 11, 2016, 06:06:17 PM
Estuve mirando en la BD mediante Blind SQLi y pude averiguar que guardan almenos los nombres de los foros :/
#17
Hacking ShowOff / Re:[XSS] http://espinillo.org
Septiembre 11, 2016, 06:04:52 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Este de aqui tiene contraseña, creo que la pass no esta en la base de datos.
#18
Hacking ShowOff / [XSS] http://espinillo.org
Septiembre 08, 2016, 09:26:02 PM
Imagen:


Url: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) - foro=(1-30)
Vector: '<h1 style="color: #ff001b">Underc0de</h1>' *
Autor: Pytness
Reportado: Si**

* Detecta varias palabras, tales como 'script', 'alert', 'write', 'getElementById'... Validacion Back-End, muestra una alerta de error.
-* Añadiendo una imagen con un src nulo y un onerror podemos cargar un script.

**
Lo reporte hace meses y añadieron un 'filtro' de palabras (*). Lo he vuelto a reportar.
#19
Dudas y pedidos generales / Problema con sockets y demas
Septiembre 06, 2016, 07:46:12 PM
Buenas.
Estoy haciendo a modo de aprendizaje un 'chat' (en Python 3.5.2) en el que utilizo hilos, websockets, sockets y 'asyncio'.

Para hacer la interfaz utilizo HTML y JS, que conecto a la consola mediante websockets. Estos son asíncronos, y los 'manejo' con un hilo.
Desde los websockets paso los datos a los sockets y estos se mandan al server.

[HTML + JS] <-> WebSockets <-> Sockets <-> Server



[Parte de websockets]

El problema es este:
Código: php

import asyncio
import threading
import websockets

async def server(websocket, path):

threading.Thread(target=sendData, args=(websocket, path)).start()
threading.Thread(target=getData, args=(websocket, path)).start()

# await getData(websocket, path)
# await sendData(websocket, path)



async def getData(websocket, path):
await print(websocket.recv())
await asyncio.sleep(0.1)


def sendData(websocket, path):
while True:
websocket.send("data")
asyncio.sleep(0.5)

start_server = websockets.serve(server, 'localhost', 7979)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()



Este código me da error al pasarle los argumentos en el hilo en el que invoco a getData().
#El sendData() esta sin el async para comprobar que falla

Son los argumentos requeridos, pero me dice que no se esperan y que espera dos argumentos :/

Creo que es debido a la forma de pasarle los argumentos al async desde el hilo.
El problema es que no se como pasárselos bien.

Podrian explicarme como solucionar esto?

Gracias.


Postdata: siento si este post esta mal colocado y si tengo algun error de novato, ya que lo soy :]