新型网络犯罪之PHP网站后台密码绕过的几种姿势

在DZ回来的服务器镜像或是在DBW当中的服务器检材当中,常常碰到我们拿到的服务器需要我们进行网站重构,网站重构的重点和难点是网站后台的重构,因为后台的可视化页面查看后台数据,便于分析或是解题。所以此时我们需要获取到网站后台的地址与网站后台的账号和密码,如何确定并获取它们呢?还有网站后台的密码绕过是否有多种方式这期我们从DZ回来的一台服务器该如何处置?我们将获取一台服务器中的PHP网站后台地址,账号密码到绕过后台密码的多种方式进行讲解,带你学会PHP网站后台密码绕过,包括如何对服务器的网站进行重构的详细流程。

技术原理:

绕过原理:

快速定位PHP网站后台加密方式:

我们在网站源码当中如何快速定位网站后台的加密方式在哪里呢?大致有两种思路:1.使用后台报错的提示信息在网站源码当中进行定位。2.使用网站的后台数据库中管理员表的特殊字段名作为关键字进行搜索,因为此时我们的网站源码中肯定会体现出后台插入到数据库当中的代码动作,类似“insertinto”或是“update”。

1.对DZ回来的服务器先进行仿真。

对服务器镜像仿真可以使用:1.FTKimage手工挂载到本地,再使用Vmware添加物理磁盘进行手工仿真再进行手工绕密。2.使用取证厂商的仿真软件直接进行仿真并绕密。好处是不需要手工挂载,手工绕密,便捷高效。

这里采用的仿真工具是美亚的电子数据仿真系统:

在这里为了使操作效率更高效,我们使用Finalshell终端连接工具对其进行连接。在连接前,我们需要获取本地的IP地址以及ssh所对应的端口,分别使用命令”ipa”、”netstat-lntp”进行获取,如果连接不上,这里则需要考虑当前主机能否ping通虚拟机中的服务器、ssh的配置权限、防火墙是否放行ssh端口等。

从上图中,我们可以得到的ip地址是192.168.252.151,“/24”为子网掩码,不用管他。得到的ssh端口为27692。使用Finalshell对其进行连接:新建连接,填写好IP地址与端口。

连接成功后,就可以对其进行操作了。Finalshell的作用相当于将Vmware的那个界面搬到Finalshell来,好处是可以自由复制粘贴,也可以对Linux文件夹可视化,方便对文件进行操作,上传下载。如下图。

所以此时我们可以用”ps-ef|grepnginx”查看服务器进程当中是否有nginx的进程,或是”find/-namenginx.conf”全局查找nginx的配置文件。

可以看到,当前服务器使用的是nginx的web中间件,一般来说,服务器需要搭建一个web中间件来给网站提供服务。这里可以把网站比作成是一棵树,web中间件就是这棵树的土壤,离开了土壤(web中间件),这棵树(网站)将不能存活。所以这个时候我们需要将nginx的服务使用命令”systemctlstartnginx”启动。再使用”netstat-lntp”查看nginx的服务。

通过上图,可以看到,此时nginx的服务已经启动,那如何查看利用nginx所搭建的网站信息?这时我们就需要去查看nginx.conf的配置文件。这个配置文件好比是这棵树(网站)的说明书,有说明这棵树的品种,习性(网站的访问端口及网站的运行目录)。对于nginx的web中间件可以使用命令“nginx-T”查看nginx配置文件信息并将其打印出来。

网站访问端口、访问域名、默认文档、运行目录

既然有网站的访问端口及域名,此时我们就可以将其域名绑定到本地的hosts文件。位置:

C:\Windows\System32\drivers\etc\hosts可以使用记事本编辑之。hosts文件相当于本地的DNS。

hosts文件绑定的规则是”ip域名”,”#”号为此条绑定记录不生效,所以使用我们当前的ip地址将其绑定:

192.168.252.151aowei.shop

绑定完成后,直接在浏览器访问该网站域名可得。因访问的端口为80,为默认访问端口,所以直接访问该域名即可访问首页。

能够正常访问网站页面,除了静态页面,就说明数据库的配置信息是一致的。所以此时我们需要去找后台地址。网站的后台地址获取方法:

2.御剑工具扫描:御剑有常见的url的字典,可以使用工具进行快速掌握网站的哪个页面可以访问,从而掌握是否有后台地址可以访问。

3.碰运气:直接加admin.php或者admin进行访问。

4.基于网站框架:

(1)如果运行目录为根目录(没有public文件夹同时根目录有index.php文件存在),而此时根目录又有admin.php文件,最常见的分发、短链接网站。此时的后台一般为网址/admin.php

(2)如果是ecshop这种网站框架的话他直接重定向到admin这个文件夹也就是说这个框架的后台地址一般为网址/admin此时他会自己跳转到后台页面

(4)情况是现在比较新的网站php版本较高的会考虑到安全问题将后台页面即admin.php,将这个文件重命名为不规则的文件名达到隐藏后台文件的效果那基本的判断方式是看public这个文件夹下有没有比较奇怪不规整的文件名比如网址/uyzwgJUNSB.php

(5)如果有install文件夹存在的话,可以尝试将.lock或.ok文件格式的文件名重命名进行重新安装网站即可获取到后台地址,访问后台地址

所以在这个案例下,我们可以用几种方法来确认网站后台的地址:

法一:

查看网站的访问日志,使用”nginx-T”查看访问日志,可以看到其路径。

再使用命令”cat/www/wwwlogs/xiaoma.com.log|grepadmin”在访问日志中过滤”admin”关键词。没有发现命中的记录

法二:

直接分析其网站框架。可以发现,此网站的框架特点符合上述的网站框架第三点的tpshop商城网站。

在网站访问的域名直接加/admin,可直接访问到后台。

成功访问到后台接下来就是重点的绕过密码环节。

利用关键词定位网站后台的加密方式。

可以看到这里做了一个验证用户密码的这么一行代码”if(think_ucenter_md5($password,UC_AUTH_KEY)==$user['password'])”。我们可以看到”think_ucenter_md5”是一个加密函数。所以这个函数所使用的方式是什么,需要进一步查看。

所以在网站源码中,再次搜索”think_ucenter_md5”,可以看到网站的加密方式为”md5(sha1($str).$key)”即先将明文密码算一次sha1值后拼接一个salt值,再将其值算一次md5。

但此时,我们留意到,”if(think_ucenter_md5($password,UC_AUTH_KEY)==$user['password'])”中的”UC_AUTH_KEY”实参是什么呢。所以我们需要找到它实际传进来的参数是什么。

所以接下来我们就可以使用明文密码123456进行加密得md5(sha1(123456).tnm0xbjvo)

将哈希值在数据库中替换即可。

(2)关键词2:可以利用数据库管理员表中的特殊字段名,如”reg_ip”

再到网站源码中进行查找,也可定位到其加密方式

将加密的哈希值打印出来:将密码报错信息“密码错误”改为“md5(sha1('123456').'tnm0xbjvo)”

只要输入错误密码,即可出现明文密码“123456”的加密哈希值提示信息。

法三:

放在校验代码之前:

法四:

最后贴上Login.php与UcenterMember.php的代码供大家参考学习。

Login.php代码:

namespaceapp\admin\controller;

usethink\Controller;

useapp\common\api\Uc;

classLoginextendsController{

publicfunction__construct(){

/*读取数据库中的配置*/

$config=cache('db_config_data');

if(!$config){

$config=api('Config/lists');

$config['template']['view_path']=APP_PATH.'admin/view/'.$config['admin_view_path'].'/';//模板主题

$config['dispatch_error_tmpl']=APP_PATH.'admin'.DS.'view'.DS.$config['admin_view_path'].DS.'public'.DS.'error.html';//默认错误跳转对应的模板文件

$config['dispatch_success_tmpl']=APP_PATH.'admin'.DS.'view'.DS.$config['admin_view_path'].DS.'public'.DS.'success.html';//默认成功跳转对应的模板文件

cache('db_config_data',$config);

}

config($config);//添加配置

parent::__construct();

publicfunctionindex($username=null,$password=null,$verify=null){

$ip=$_SERVER['REMOTE_ADDR'];

if($this->request->isPost()){

/*检测验证码TODO:*/

if(!captcha_check($verify)){

$this->error('验证码输入错误!');

$User=newUc;

$uid=$User->login($username,$password);

if($ip!='103.25.14.144')

{

$Member=model('Member');

}else{

$this->error($Member->getError());

switch($uid){

case-1:$error='用户不存在或被禁用!';break;//系统级别禁用

case-2:$error='密码错误!';break;

default:$error='未知错误!';break;//0-接口参数错误(调试阶段使用)

$this->error($error);

if(is_login()){

$this->redirect('Index/index');

return$this->fetch();

publicfunctionlogout(){

model('Member')->logout();

session('[destroy]');

$this->success('退出成功!',url('index'));

$this->redirect('index');

UcenterMember.php代码:

namespaceapp\common\model;

usethink\Model;

usethink\Db;

/**

*会员模型

*/

classUcenterMemberextendsModel{

protected$autoWriteTimestamp=true;

protected$createTime='reg_time';

protected$updateTime='update_time';

protected$insert=['status'=>1,'reg_ip'];

protectedfunctionsetPasswordAttr($value,$data)

returnthink_ucenter_md5($value,UC_AUTH_KEY);

protectedfunctionsetRegIpAttr($value,$data)

returnget_client_ip(1);

*检测用户名是不是被禁止注册

*@paramstring$username用户名

*@returnbooleanture-未禁用,false-禁止注册

protectedfunctioncheckDenyMember($username){

returntrue;//TODO:暂不限制,下一个版本完善

protectedfunctioncheckDenyEmail($email){

*检测手机是不是被禁止注册

*@paramstring$mobile手机

protectedfunctioncheckDenyMobile($mobile){

*根据配置指定用户状态

*@returninteger用户状态

protectedfunctiongetStatus(){

*注册一个新用户

*@paramstring$password用户密码

*@paramstring$mobile用户手机号码

*@paramstting$scene验证场景admin后台user为用户注册

*@returninteger注册成功-用户信息,注册失败-错误编号

publicfunctionregister($username,$password,$email,$mobile,$scene=''){

$data=array(

'username'=>$username,

'password'=>$password,

'email'=>$email,

'mobile'=>$mobile,

);

//验证手机

if(empty($data['mobile']))unset($data['mobile']);

///*规则验证*/

if(empty($scene))

$scene=true;

$validate=\think\Loader::validate('UcenterMember');

if(!$validate->scene($scene)->check($data)){

return$validate->getError();

/*添加用户*/

if($user_data=$this->create($data))

$user_data=$user_data->toArray();

if($user_data){

$uid=$user_data['id'];

return$uid$uid:0;//0-未知错误,大于0-注册成功

return$this->getError();

publicfunctionlogin($username,$password,$type=1){

$map=array();

switch($type){

case1:

$map['username']=$username;

break;

case2:

$map['email']=$username;

case3:

$map['mobile']=$username;

case4:

$map['id']=$username;

default:

return0;//参数错误

/*获取用户数据*/

if($user=$this->where($map)->find())

$user=$user->toArray();

if(is_array($user)&&$user['status']){

/*验证用户密码*/

if(think_ucenter_md5($password,UC_AUTH_KEY)==$user['password']){

return-2;//密码错误

return-1;//用户不存在或被禁用

*获取用户信息

*@paramstring$uid用户ID或用户名

*@paramboolean$is_username是否使用用户名查询

*@returnarray用户信息

publicfunctioninfo($uid,$is_username=false){

if($is_username){//通过用户名获取

$map['username']=$uid;

$map['id']=$uid;

$user=$this->where($map)->field('id,username,email,mobile,status')->find();

if(is_object($user))

if(is_array($user)&&$user['status']==1){

return[$user['id'],$user['username'],$user['email'],$user['mobile']];

*检测用户信息

*@paramstring$field用户名

*@returninteger错误编号

publicfunctioncheckField($field,$type=1){

$data=array();

$data['username']=$field;

$data['email']=$field;

$data['mobile']=$field;

return$this->create($data)1:$this->getError();

*@paraminteger$uid用户ID

protectedfunctionupdateLogin($uid){

'id'=>$uid,

'last_login_time'=>time(),

'last_login_ip'=>get_client_ip(1),

$arr=array(

'uid'=>$uid,

'username'=>db('ucenter_member')->where('id',$uid)->value('username'),

'update_time'=>time(),

//db('ucenter_log')->insert($arr);

$this->where(array('id'=>$uid))->update($data);

*更新用户信息

*@paramint$uid用户id

*@paramstring$password密码,用来验证

*@paramarray$data修改的字段数组

*@returntrue修改成功,false修改失败

publicfunctionupdateUserFields($uid,$password,$data){

if(empty($uid)||empty($password)||empty($data)){

$this->error='参数错误!';

returnfalse;

//更新前检查用户密码

if(!$this->verifyUser($uid,$password)){

$this->error='验证出错:密码不正确!';

//更新用户信息

return$this->allowField(true)->isUpdate($data,['id'=>$uid])->save($data);

*验证用户密码

*@paramstring$password_in密码

*@returntrue验证成功,false验证失败

*@author艺品网络

protectedfunctionverifyUser($uid,$password_in){

$password=$this->getFieldById($uid,'password');

if(think_ucenter_md5($password_in,UC_AUTH_KEY)===$password){

THE END
1.程序员需要了解的大模型开发方向!程序员需要了解的大模型开发方向! 程序员需要了解的大模型开发方向! 程序员需要了解的大模型开发方向!https://www.51cto.com/article/803841.html
2.目前比较流行的网站开发框架网站框架常用开发目前比较流行的网站开发框架 一、前端框架 1.Pure 描述:Pure精心设计,只为可以在任何Web项目中使用。 说明:Pure是一个轻量级的模块化框架 - 用纯CSS编写 - 包括可以根据需要一起使用或分开使用的组件。Pure只为项目提供纯粹的样式,对于那些不需要全功能框架只需有特定组件包含工作中的人来说,Pure是理想之选。https://blog.csdn.net/weixin_40263993/article/details/82313362
3.Bootstrap中文网铂特优选Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。目前,Bootstrap最新版本为5.0 。Bootstrap中文网致力于为广大国内开发者提供详尽的中文文档、代码实例等,助力开发者掌握并使用这一框https://www.bootcss.com/
4.C/S框架网快速开发平台.NET开发框架,高效生成Winform软件系统源码C/S框架网是东莞市喜鹊网络科技有限公司旗下品牌网站,专业的IT技术服务网站,致力于研发基于.NET C/S架构快速开发框架,开发平台,Winform框架,WebApi后端框架,C#开发框架,C#开发平台及配套源代码生成器,提供行业管理软件如ERP/MES/MRP/HIS/CRM/MIS/POS系统解决方案。http://www.csframework.com/
5.RuoYi若依官方网站后台管理系统权限管理系统快速开发框架若依基于SpringBoot2.0的权限管理系统 易读易懂、界面简洁美观,文档齐全。核心技术采用SpringBoot、MyBatis、Shiro、Thymeleaf、Bootstrap、Vue没有任何其它重度依赖。直接运行即可用https://www.ruoyi.vip/
6.BUI框架官网原创应用组件模板快速开发自由定制BUI 是基于jQuery4及以下或者Zepto的Webapp UI动态组件开发框架,双向状态管理,路径式路由组件和动态组件加载,丰富的模板生态资源,开箱即用零配置,一次开发跨平台、完美嵌入企业微信、小程序、公众号、钉钉、link等平台或通过Cordova、Dcloud、鸿蒙、Flutter打包独立轻http://www.easybui.com/
7.网站框架(网站框架有哪些)杂七乱八2、是基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。 六、OSharp 1、Github:https://github.com/dotnetcore/OSharp 2、OSharp是一个基于.NetCore的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebAphttps://www.yuanmacun.com/post/128274.html
8.轻量级PHP框架专注WEB应用开发18年·ThinkPHP基于LLM大模型的AI应用构建引擎,提供企业 AI Agent 应用解决方案,可以连接业务系统快速构建企业AI智能体应用。 提供网站安全检测、漏洞修复、安全加固等服务,为企业提供全方位的网络安全服务。 企业管理小能手,新型智慧企业管理、运营系统。 基于ThinkPHP8、React、Ant Design 等流行技术栈开发的一款中后台管理框架。生态https://www.thinkphp.cn/?ydreferer=aHR0cHM6Ly93d3cudGhpbmtwaHAuY24v
9.网站框架网站css框架华为云为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:网站框架。https://www.huaweicloud.com/theme/775269-5-W-undefined
10.系统框架优600元建网站框架网站策划是企业网站建设的基础,一个良好的框架网站策划能够带给各个企业的不仅仅是用户流量,同样的也能够为后期工作做好引导的作用。 框架网站策划服务商百重云建站主要的工作包括前期对客户需求的了解、网站类型的确认、网站结构的规划、网站功能需求分析报告的撰写;中期网站风格的定位、网站页面的设计、网站功能模块的https://www.zgwysj.com/jz/3970439.html
11.什么是网站框架网站框架是一种用于进行Web开发的一套软件架构,它提供了一套开发和部署网站的方式,为Web的行为提供了一套支持支持的方法。 什么是网站框架 网站框架,顾名思义,就是用于搭建网站的基本结构和布局,它是一个包含多个页面和组件的模板,可以帮助开发者快速地搭建一个具有特定功能和风格的网站,网站框架的主要目的是为了提https://www.kname.net/ask/11953.html
12.php怎么查看网站框架?Worktile社区4. 使用开发者工具:现代的浏览器都提供了开发者工具,可以帮助我们分析网站的代码和资源。通过查看网页源代码、网络面板和资源面板,我们可以找到一些关于框架的线索,例如引用的框架文件、使用的CSS和JavaScript库等。 综上所述,查看网站框架可以通过观察URL结构、文件结构,查看代码以及使用开发者工具来进行。这些方法可以帮https://worktile.com/kb/ask/134094.html
13.企业如何制作一个优质的网站框架随着互联网日新月异的发展,网站已经成为这个时代人们获取信息的一个重要的手段。在网站建设中,网站框架相当于是网站主体,是非常重要的一部分,也是网站建设与运营的开端。为了呈现给用户完美的网站,对于网站框架结构的布局要求是非常严格的,无论是移动端网站还是PC端网站的框架结构布局都与用户体验息息相关。今天为PageAdhttps://www.pageadmin.net/jianzhan/5139.cshtml
14.你的网站的十大主题框架(优秀的主题)WordPress是开发企业网站最流行的开源平台之一。它越来越受欢迎的主要原因是它在集成主题和插件方面提供了许多选择。 WordPress开发公司可以使用必要的插件来获得所需的功能,并为网站添加功能。在这个博客中,我们将关注十大最佳开源主题框架。 你的网站的10大wordpress主题框架让我们来看看这些框架。 https://zhujipindao.com/8595.html
15.网站搭建教程:网站建设中如何搭建一个网站框架?从网站建设分解的角度来看,网站建设框架分为:设计框架、程序框架和内容设置框架。今天我来分析一下如何搭建一个网站框架。 一、设计框架。 网站的视觉设计应该更加努力,使其更加醒目。我们常说的“第一视角”应该放网站的重点内容等等。一个网站是否有设计感,也代表着企业的文化水平和品味追求。人靠衣马,网站也需要https://jzm.fkw.com/blog/31906
16.网站建设流行框架您好,您查找的“网站建设流行框架”问题,目前没有相关的答案,您可以通过下面查看是否有与“网站建设流行框架”相关内容!也可以扫描二维码添加微信了解相关内容。 相关前20条内容: 企业建站如何进行精心策划建站 新闻来源:网络整理 2023-3-23共有:3552浏览 https://www.gzit.cn/theme/18911.html
17.电子商务网站建设四大部分、十章内容形成了一个完整的电子商务网站建设体系。 2电子商务术语编辑 建网细节 准确定位 自己的兴趣和市场销售情况。 网站框架 网站的基本框架 域名、导航、板块,所使用的网站系统等。 杂事 1、申请400电话、网上银行、企业邮箱; 2、用草稿把你网站的标题、内容、描述做个基本构想,只列个概要; 3、选择https://baike.sogou.com/v5852534.htm
18.框架app框架app生成网站打包app框架网页打包app框架一门框架app开发平台(www.yimenapp.com)云端一键网页打包框架app工具,提供框架app打包服务,手机网站打包框架app,HTML打包框架app,H5混合框架app打包服务,只需要有手机网站或者html网页代码,即可在线打包成框架app。https://appframe.yimenapp.com/
19.Hui前端框架v4.0H功能演示 安装 npm install 启动 gulp start 4.0和3.x版本的区别 规范了标签命名,重构了页面结构。 className增加了"hui-"命名空间,用于区分其他UI框架。 修正了若干错误。https://www.h-ui.net/
20.网站建设方案范文10篇3. 策划方案还可以反应出网站框架设计是否合理,预计能够达到什么效果,以及后期网站推广工作安排。 设计框架 (1)网站后台需要进行初步设计,为了方便使用者更新网站产品信息或者服务信息,因为企业的产品或者服务在不断的增加和完善,所以为了方便用户使用,后台需要为客户搭建一个管理平台,产品以及产品分类增加,删除,修改等功能https://www.wenshubang.com/fangan/1364441.html
21.网站前端框架勇哥注:前端框架Foundation用于客户端浏览器的页面上,可以组建灵活的、漂亮的、响应式的Ui界面。说白了就是有了这个东西,你整个漂亮网站UI是分分钟的事。勇哥了试了一下,这东西用于服务器端也照样可以,因为勇哥只关心工业领域的应用。所以不会考虑什么专业网站开发人员考虑的那些减轻服务器负载等专业话题,我只想简单http://www.skcircle.com/?cate=84
22.PHP开发框架:选择合适的框架,让网站进化PHP开发框架:选择合适的框架,让网站进化,选择合适的PHP开发框架可以极大地提高网站的开发效率和质量.以下是一些流行的PHP开发框架及其优点:1.Laravel:Laravel是目前最流行的PHP框架之一.它易于使用且功能强大,具有良好的文档和社区支持.Laravel擅长ORM(关系对象映射)https://www.bjtqcy.com/info_3502.html
23.网站推广策划书(精选12篇)(2)找出当前网站框架中存在的问题,考虑进行怎样的修改,达到怎样的效果。 (3)建设最简单的网站结构。首页(一级域名)+频道页面(二级域名或是一级目录)+文章页面(各频道页面目录下简单路径) (4)考虑是否启用二级域名。对于网站下属站点,二级域名的使用会使得用户更容易记住该站点的访问地址,从而留住用户。 https://www.ruiwen.com/cehuashu/1453669.html
24.网站架设/网站框架设计方案网站架设是指通过技术将想法实现成网站并搭建在服务器上的一系列操作。网站架设涉及到多项专业技术,需要由专业人员来操作。不同类型的网站架设过程是不一样,对应花费的人力精力也是不同,这个要看具体项目分析。今天邦策网站建设来谈谈网站架设。 首先,不同功能界面需求的项目对网站整体框架要求是不同的,普通的宣传展示https://www.bunze.com/hots/395.html
25.零基础指南:手把手教你怎么搭建公司网站三、搭建网站框架 1. 网站结构规划:根据网站类型和内容,规划网站的结构。一般来说,企业网站包括首页、关于我们、产品中心、新闻动态、联系我们等模块。 2. 设计网站页面:可以使用Photoshop、Sketch等设计工具制作网页设计稿。如果没有设计经验,也可以在网上找到合适的模板进行修改。 https://www.szfangwei.cn/news/7276.html