Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 34384|Respuesta: 8

[crujido] Tutorial gráfico para descifrar manualmente la contraseña de fondo del sitio web

[Copiar enlace]
Publicado en 4/6/2015 18:47:12 | | |
Ayer recibí la versión asp.net del código fuente de la plataforma pública WeChat enviada por un amigo.

Hoy quiero abrirlo y ver qué hay dentro, primero adjuntar la base de datos a SQL Server 2008,


Luego abre el proyecto y ejecuta crtl+F5 para ejecutar el proyecto web, como se muestra en la siguiente figura:




Así que inmediatamente revisé la tabla de administrador dt_manager de la base de datos y vi que la cuenta de administrador era de administrador, pero no sabía cuál era la contraseña cifrada, al fin y al cabo, era principiante


1 1 1 admin 77F992940A0EFD8025F5571B133BA6D5 28LH48 Super admin 13800138000       123@qq.com        0 2013-12-04 01:53:36.000 1000000 0 888 12 186 No te dice NULL 0


Primero mételo en la web de md5 para descifrarlo





Mu Lo encontraste, probaste algunas contraseñas que se usan comúnmente, como 123456, admin, 123, admin888, etc., pero aún así no podías iniciar sesión


Por desgracia, voy a comprobar asp.net código fuente y descubro que está cifrado de la siguiente manera:


  1. public Model.manager GetModel(string user_name, string password, bool is_encrypt)
  2.         {
  3.             //检查一下是否需要加密
  4.             if (is_encrypt)
  5.             {
  6.                 //先取得该用户的随机密钥
  7.                 string salt = dal.GetSalt(user_name);
  8.                 if (string.IsNullOrEmpty(salt))
  9.                 {
  10.                     return null;
  11.                 }
  12.                 //把明文进行加密重新赋值
  13.                 password = DESEncrypt.Encrypt(password, salt);
  14.             }
  15.             return dal.GetModel(user_name, password);
  16.         }
Copiar código


En términos generales, primero se juzga que existe un valor de sal del usuario en la tabla de usuario y, si lo hay, se utiliza la contraseña introducida por el usuario y el valor de sal obtenido de la base de datos


Cifrado con DESEncrypt (yo tampoco lo sé).¿Qué es DESEncrypt?Luego, introduce la contraseña cifrada y el usuario en el dal. Método GetMode,


Para juzgar de nuevo, hay una instrucción select en el método, y el código es el siguiente:


  1. /// <summary>
  2.         /// 根据用户名密码返回一个实体
  3.         /// </summary>
  4.         public Model.manager GetModel(string user_name, string password)
  5.         {
  6.             StringBuilder strSql = new StringBuilder();

  7.             strSql.Append("select id from " + databaseprefix + "manager");
  8.             strSql.Append(" where user_name=@user_name and password=@password and is_lock=0");
  9.             SqlParameter[] parameters = {
  10.                     new SqlParameter("@user_name", SqlDbType.NVarChar,100),
  11.                     new SqlParameter("@password", SqlDbType.NVarChar,100)};
  12.             parameters[0].Value = user_name;
  13.             parameters[1].Value = password;

  14.             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  15.             if (obj != null)
  16.             {
  17.                 return GetModel(Convert.ToInt32(obj));
  18.             }
  19.             return null;
  20.         }
Copiar código


No sé cómo descifrar esto, así que reemplazaré la contraseña cifrada de la base de datos. Rattle


C# establece un punto de interrupción en el lugar de contraseña, como se muestra en la siguiente figura:




Gack, el texto cifrado tras obtener 123456 cifrado está EB51565598856A17, y decididamente ir a la base de datos para reemplazarlo por la instrucción update




¡Inicio de sesión exitoso!




Anterior:Solución para el error SQL Server 2008 5120 en la base de datos adjunta
Próximo:No se ha conseguido copiar "obj\x86\Debug\" a "bin\Debug\". Tras 1000 milisegundos, comienza el primer intento de nuevo.
 Propietario| Publicado en 4/6/2015 18:55:35 |


Captura de pantalla completa del fondo
Publicado en 4/6/2015 19:10:15 |
Un poco complicado, incomprensible, aprendizaje y aprendizaje
Publicado en 4/6/2015 19:48:25 |
Jining Lao Dao Publicado el 4-6-2015 19:10
Un poco complicado, incomprensible, aprendizaje y aprendizaje

Hermano Dao, esta es la plataforma de marketing público de WeChat, ¡que puede construir estaciones WeChat en lotes!
Publicado en 5/6/2015 0:14:39 |
Publicado en 29/7/2018 16:42:44 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Publicado en 16/9/2018 12:05:10 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Publicado en 27/7/2019 15:22:15 |
Ahora ya no lo sé, lo he olvidado todo y no lo entiendo
Publicado en 9/6/2022 18:40:15 |
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com