数据库账号密码
PHP网站寻找数据库及破解管理员账号密码
寻找数据库账号密码
一般来说,网站=建站程序(代码)+ 数据库,网站代码中也会有相关的数据库配置文件,以某PHP语言编写的网站为例,网站yanshi\source\system路径下有config.inc.php的文件,打开此文件,部分内容如下:
define('IN_DBHOST', '127.0.0.1');
define('IN_DBUSER', 'yanshi');
define('IN_DBPW', '123456');
define('IN_DBNAME', 'yanshi');
define('IN_DBCHARSET', 'utf8');
define('IN_DBTABLE', 'ff_');
在PHP语言中,define()函数用来定义常量,这里的常量指的是在网站运行过程中“不变化的量”,各项含义如下:
IN_DBHOST:数据库主机127.0.0.1;
IN_DBUSER:数据库用户yanshi;
IN_DBPW:数据库密码123456;
IN_DBNAME:数据库名称yanshi;
IN_DBCHARSET:数据库编码utf8;
IN_DBTABLE:数据库表前缀ff_;
因此我们得知数据库名称:yanshi,用户名:yanshi,密码:123456。
后台管理员账号密码破解
在知道数据库的用户名和密码后,大睿顺利的登录到yanshi数据库内,通过查看数据库,我们可以得到网站后台管理员的账号和加密后的密码,但是不知道密码加密算法怎么办呢?此时需要查看网站目录中有关登录的代码文件。
以某网站login.php为例:
$action = SafeRequest("action","get");
if($action == 'login')
{
if(!submitcheck('form'))
{
ShowMessage("验证错误,无法提交!",$_SERVER['PHP_SELF'],"infotitle3",3000,0);
}
$adminname = SafeRequest("adminname","post");
$adminpassword = md5(SafeRequest("adminpassword","post"));
$code = SafeRequest("code","post");
$time = date('Y-m-d H:i:s');
$ip = getonlineip();
IN_CODEOPEN and $code !== IN_CODE and ShowMessage("认证码错误,请重试!",$_SERVER['PHP_SELF'],"infotitle3",2000,0);
if($row = $GLOBALS['db']->getrow("select * from ".tname('admin')." where in_adminname='$adminname' and in_adminpassword='$adminpassword' and in_islock=0"))
通过$adminpassword = md5(SafeRequest("adminpassword","post"))语句得知加密算法为MD5,破解办法有如下三种:
(一)CMD5网站加密密文逆推明文
通过数据库查询网站管理员表得知其中一个管理员的密码加密密文为“76419c58730d9f35de7ac538c2fd6737”
使用CMD5网站解密得知密码为qazwsx。
(二)修改加密算法
将
$adminpassword = md5(SafeRequest("adminpassword","post"))语句中MD5删除,之后将数据库中root5用户密码对应项修改为123456并保存,此时可以使用用户root5,密码123456登录。
(三)修改密码验证语句
根据
select * from ".tname('admin')." where in_adminname='$adminname' and in_adminpassword='$adminpassword' and in_islock=0
此查询语句得知,输入密码后,程序执行此SQL语句查询数据库,将输入的用户名密码与数据库中的用户名密码做匹配,匹配一致则成功登录数据库。
此时可以将in_adminpassword='$adminpassword'
修改为in_adminpassword!='$adminpassword',此时输入的用户密码只要不等于数据库中的密码即可登录。
转自:网络安全与取证研究