Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

510
Views
¿Qué es constructor.constructor()() en JavaScript?

Estoy buscando errores en h1 y encontré una manera de activar un cuadro de alerta usando constructor.constructor() en un sitio usando Angularjs, Nodejs y otras bibliotecas de JavaScript y estoy buscando entender realmente qué está pasando aquí, pero no he encontrado la información exacta.

La carga útil exacta es

constructor.constructor('alerta(1)')()

Solo encontré información sobre constructores como en el proceso de definición de funciones y clases, pero no como una "función" (no estoy realmente seguro de qué es esto en este contexto). Y no estoy seguro si el contexto que activa el cuadro de alerta es una de las bibliotecas en su lugar o simplemente por JavaScript y el DOM.

¿Alguien sabe qué es constructor.constructor()() ? Y, ¿cómo funciona?

PD: la carga útil también se coloca dentro de {{ }} pero aparentemente es solo JavaScript y no un SSTI real (DOM analiza 7 * 7 pero permanece en el código fuente)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Las instancias de objetos tienen una referencia a su función constructora:

 const o = {}; o.constructor === Object;

Si no hace referencia a ningún objeto, está ejecutando la propiedad en el contexto global fuera de la instancia de la window , que es lo mismo que window.constructor :

 constructor /* or window.constructor */ === Window;

Window y Object son instancias de funciones, porque las funciones también son objetos en JavaScript, lo que significa que el constructor es Function

 constructor.constructor /* or Window.constructor */ === Function;

La Function Función se puede usar para crear una instancia de función usando la entrada de cadena como el cuerpo de la función, similar a eval , por lo que en su ejemplo de pasar 'alert(1)' el resultado es una función que llama alert(1) cuando se ejecuta :

 Function('alert(1)'); // is the same as function () { alert(1); }

Y finalmente, los últimos paréntesis ejecutan la función sin ningún parámetro, por lo que verá la alerta que se muestra con un 1 .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!