Tegnap megkaptam a WeChat nyilvános platformjának asp.net forráskódját, amit egy barátom küldött nekem.
Ma szeretném megnyitni, és megnézni, mi van benne, először csatlakoztatom az adatbázist SQL Server 2008-hoz,
Ezután nyisd meg a projektet, és futtatd a crtl+F5 futtatást, hogy elindítsa a webprojektet, ahogy az alábbi ábrán látható:
Így azonnal megnéztem az adatbázis dt_manager adminisztrátori táblát, és kiderült, hogy az adminisztrátor fiók admin, de nem tudtam, mi a jelszó titkosítva, hiszen kezdő voltam
1 1 admin 77F992940A0EFD8025F5571B133BA6D5 28LH48 Szuperadmin 13800138000 123@qq.com 0 2013-12-04 01:53:36.000 1000000 0 888 12 186 Nem mondja neked, hogy NULL 0
Először dobd be az md5 weboldalra, hogy dekódold
Mu Megtaláltad, próbáltam néhány gyakran használt jelszót, mint például 123456, admin, 123, admin888, stb., de még mindig nem tudtam bejelentkezni
Sajnos megnézem asp.net forráskódot, és azt találom, hogy az a következőképpen titkosított:
- public Model.manager GetModel(string user_name, string password, bool is_encrypt)
- {
- //检查一下是否需要加密
- if (is_encrypt)
- {
- //先取得该用户的随机密钥
- string salt = dal.GetSalt(user_name);
- if (string.IsNullOrEmpty(salt))
- {
- return null;
- }
- //把明文进行加密重新赋值
- password = DESEncrypt.Encrypt(password, salt);
- }
- return dal.GetModel(user_name, password);
- }
Kód másolása
Általánosságban először úgy ítélik meg, hogy a felhasználó sóértéke van a felhasználói táblázatban, és ha igen, akkor a felhasználó által megadott jelszót és az adatbázisból származó sóértéket használják
DESEncrypt titkosítva, (én sem tudom.)Mi az a DESEncrypt?Ezután dobd be a titkosított jelszót és a felhasználót a dalba. GetMode metódus,
Ismét megítélve: a metódusban van egy select utasítás, és a kód a következő:
- /// <summary>
- /// 根据用户名密码返回一个实体
- /// </summary>
- public Model.manager GetModel(string user_name, string password)
- {
- StringBuilder strSql = new StringBuilder();
- strSql.Append("select id from " + databaseprefix + "manager");
- strSql.Append(" where user_name=@user_name and password=@password and is_lock=0");
- SqlParameter[] parameters = {
- new SqlParameter("@user_name", SqlDbType.NVarChar,100),
- new SqlParameter("@password", SqlDbType.NVarChar,100)};
- parameters[0].Value = user_name;
- parameters[1].Value = password;
- object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
- if (obj != null)
- {
- return GetModel(Convert.ToInt32(obj));
- }
- return null;
- }
Kód másolása
Nem tudom, hogyan kell ezt a gépet dekódolni, ezért kicserélem az adatbázisból a titkosított jelszót! Csörgés
C# megszakítási pontot állít be a jelszó helyén, ahogy az alábbi ábrán látható:
Gack, a titkosított szöveg 123456 titkosítás után EB51565598856A17, és határozottan az adatbázisba menjen, hogy helyettesítse a update utasítással
Bejelentkezés sikeres!
|