架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7868|回复: 7

[破解] 图文教程手动破解网站后台密码

[复制链接]
跳转到指定楼层
楼主
发表于 2015-6-4 18:47:12
zu
昨天收到了一个朋友给我发的asp.net版的微信公众平台源码,

今天想打开看一下,里面都是有啥,先把数据库附加到sql server2008上面去了,


然后打开项目,运行crtl+F5运行web项目,如下图:




于是,我立马查看数据库的管理员表dt_manager,发现管理员帐号是admin,但是密码不知道是什么加密的,毕竟我是初学者嘛


1        1        1        admin        77F992940A0EFD8025F5571B133BA6D5        28LH48        超级管理员        13800138000        123@qq.com        0        2013-12-04 01:53:36.000        1000000        0                888        12        186        不告诉你                NULL        0


先丢进md5网站去解密下





木有找到,试了几个常用的密码,例如123456、admin、123、admin888等等,还是登录不进去


唉,去查看asp.net源代码,发现是加密方式如下:


  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.         }
复制代码


大体是先判断用户表中有木有该用户的salt值,如果有的话,把用户输入的密码和从数据库里面得到的salt的值再用


DESEncrypt进行加密的吧,(我也不知道DESEncrypt是个啥玩意)然后,把加密后的密码password和用户丢进dal.GetMode方法里面,


再进行判断,方法里面就是一个select语句,代码如下:


  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.         }
复制代码


不知道这个玩意咋解密,我就从数据库里面把加密后的密码替换掉吧!嘎嘎


c#在password地方设置断点,如下图:




嘎嘎,得到123456加密后的密文是EB51565598856A17,果断去数据库进行update语句进行替换




登录成功!




上一篇:sql server2008在附件数据库出现5120错误的解决办法
下一篇:未能将“obj\x86\Debug\”复制到“bin\Debug\”。1000 毫秒后将开始第 1 次重试。
帖子永久地址: 

架构师_程序员 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与架构师_程序员享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和架构师_程序员的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、架构师_程序员管理员和版主有权不事先通知发贴者而删除本文

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
沙发
 楼主| 发表于 2015-6-4 18:55:35


后台完整截图
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
板凳
发表于 2015-6-4 19:10:15
略刁,看不懂,学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
地板
发表于 2015-6-4 19:48:25
济宁老道 发表于 2015-6-4 19:10
略刁,看不懂,学习学习

道哥,这个就是微信公众营销平台,可以批量建微信站偶!!!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
5#
发表于 2015-6-5 00:14:39

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
6#
发表于 2018-7-29 16:42:44
提示: 作者被禁止或删除 内容自动屏蔽
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
7#
发表于 2018-9-16 12:05:10
提示: 作者被禁止或删除 内容自动屏蔽
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
8#
发表于 2019-7-27 15:22:15
现在已经都不会了,什么都忘了,看不懂了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2019-12-6 00:44

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表