米斯特白帽培训讲义 漏洞篇 弱口令、爆破、遍历

简介: 米斯特白帽培训讲义 漏洞篇 弱口令、爆破、遍历 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0成因弱口令没有严格和准确的定义,通常认为容易被别人(它们有可能对你很了解)猜测或被破解工具破解的口令均为弱口令。

米斯特白帽培训讲义 漏洞篇 弱口令、爆破、遍历

讲师:gh0stkey

整理:飞龙

协议:CC BY-NC-SA 4.0

成因

弱口令没有严格和准确的定义,通常认为容易被别人(它们有可能对你很了解)猜测或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如”123”、”abc”等,因为这样的口令很容易被别人破解。

通过爆破工具就可以很容易破解用户的弱口令。

目前网络上也有人特地整理了常用的弱口令(Top 100):

123456 a123456 123456a 5201314 111111 woaini1314 qq123456 123123 000000 1qaz2wsx 1q2w3e4r 
qwe123 7758521 123qwe a123123 123456aa woaini520 woaini 100200 1314520 woaini123 123321 
q123456 123456789 123456789a 5211314 asd123 a123456789 z123456 asd123456 a5201314 aa123456 
zhang123 aptx4869 123123a 1q2w3e4r5t 1qazxsw2 5201314a 1q2w3e aini1314 31415926 q1w2e3r4 
123456qq woaini521 1234qwer a111111 520520 iloveyou abc123 110110 111111a 123456abc w123456 
7758258 123qweasd 159753 qwer1234 a000000 qq123123 zxc123 123654 abc123456 123456q qq5201314 
12345678 000000a 456852 as123456 1314521 112233 521521 qazwsx123 zxc123456 abcd1234 asdasd 
666666 love1314 QAZ123 aaa123 q1w2e3 aaaaaa a123321 123000 11111111 12qwaszx 5845201314 
s123456 nihao123 caonima123 zxcvbnm123 wang123 159357 1A2B3C4D asdasd123 584520 753951 147258 
1123581321 110120 qq1314520

危害

中石油的多个加油站的视频监控被入侵,我们可以通过它们看一些隐私。也可以通过它把监控器关掉,来进行一些非法活动。

实战

比如说,我们使用这样一段代码来演示弱口令漏洞,它模拟了某个系统的后台。(课件里没有这个代码,这是我还原出来的)

<form method="POST" action="./lesspass.php">
    <input type="text" name="un" />
    <input type="password" name="pw" />
    <input type="submit" value="登录" />
</form>
<?php
$un = @$_POST['un'];
$pw = @$_POST['pw'];
if($un == '' && $pw == '') 
    return;
else if($un == 'admin' && $pw == 'admin888') 
    echo '登录成功';
else
    echo '登录失败';

第一行到第六行组成了一个 HTTP 表单。我们可以看到,这个表单使用 POST 方法向这个页面自己提交信息,un表单域对应 PHP 的un变量,pw表单域对应 PHP 的pw变量。

第七行和第八行从 HTTP 请求的主体中取出un参数和pw参数。

第九到第十四行对用户名和密码参数做判断,如果都为空,那么我们认为它仅仅是显示页面的请求,直接返回。如果unadmin,且pwadmin888,因为这是我们预设的正确用户名和密码,所以显示登陆成功,否则显示登录失败。

真实代码的用户名和密码是从数据库里面取的,但是它仍然是确定的东西,而且如果存在弱口令,还是能破解出来,原理一致。

把它保存为lesspass.php,将其部署后访问http://localhost/lesspass.php

接下来我们假装不知道真实密码,开始尝试。对于管理员账户,用户名一般是admin,密码可能为adminadmin123admin888123456123abcadmin等等。

首先输入adminadmin,尝试失败:

之后是adminadmin123,还是失败。最后尝试adminadmin888,成功。

可见,爆破破解的原理就是一个一个尝试,破解效果完全取决于你所使用的字典。如果密码碰巧在你的字典中,就一定能成功。

Burp Suite 爆破

首先我们需要把浏览器和 Burp 的代理配置好,打开 Burp 的拦截模式。之后我们在lesspass.php页面中随便输入什么东西并提交,在 Burp 中就可以看到拦截的封包:

为了爆破密码,我们需要使用它的 Intruder 功能,右键弹出菜单并选择”Send to Intruder”:

之后访问 Intruder 标签页,在 Position 子标签页中我们可以看到封包。

我们需要点击右边的Clear按钮把所有标记清除掉,由于我们需要破解密码,我们选中密码参数值点击Add

之后我们切换到旁边的 Payloads 标签页,点击中间的load按钮,加载字典。我们选择之前的top100.txt

不要忘了要将admin888插入进去。在下面的输入框中输入admin888,并点击旁边的Add

点击右上角的Start Attack来开始爆破,我们会看到结果列表。

我们点击Length表头,让它按照长度来排序。可以发现有一个项目的长度与其它明显不同,那么它就是正确的结果。

Burp Suite 遍历

比如这段代码,我们将其保存为info.php

<?php
$id = @$_GET['id'];
$arr = array('1', '2', '3', '4', '5');
if(in_array($id, $arr, true)) 
    echo "用户名:$id 密码:123456";
else
    echo "信息出错";

这段代码模拟了用户信息的查询页面,一共有五条记录。我们可以访问这个页面,并使用 Burp 来拦截。像之前一样,发送到Intruder,然后清除掉所有标记,只保留 ID 的标记:

由于是纯数字,我们把上面的Payload Type调成Numbers。下面,我们把From设为1To设为10Step设为1

之后点击Start Attack。我们可以看到结果,其中ID 1 ~ 5 的长度都是 224,6 ~ 10 都是 211。我们之前的测试中,2 是有效的,所以 224 应该是有效内容的长度。

相关文章
|
Dubbo Java 应用服务中间件
微服务框架(十)Maven Archetype制作Dubbo项目原型
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Maven Archetype的制作及使用,使用archetype插件制作Dubbo项目原型
|
4月前
|
人工智能 监控 Cloud Native
架构级拆解:AI数字人与数字员工的核心差异,玄晶引擎云原生实践启示
本文揭示AI数字人与AI数字员工的本质差异:前者仅为可视化交互组件,后者是具备业务闭环能力的云原生智能体。基于玄晶引擎与阿里云PAI实测,从架构、系统对接到弹性部署,解析如何实现“交互→决策→执行”全流程自动化,助力开发者精准选型,避免落地陷阱。
394 11
|
5月前
|
Java 语音技术 内存技术
Java 实现可靠的 WAV 音频拼接:从结构解析到完整可播放的高质量合并方案
本文详解Java实现WAV音频可靠拼接的技术方案,深入剖析RIFF文件结构,动态定位data块,精准合并音频数据。解决播放异常、时长错误等问题,支持复杂结构WAV文件,确保音质一致、播放流畅,适用于TTS、语音导航等场景,提供稳定、通用、无需第三方依赖的高质量合并方案。
Java 实现可靠的 WAV 音频拼接:从结构解析到完整可播放的高质量合并方案
|
4月前
|
存储 人工智能 缓存
硬核解析:AI 原生知识库系统如何击穿企业知识管理技术瓶颈
AI原生开源知识库系统,以RAG+NLP双引擎重构知识管理全链路。通过语义解析、智能检索、自动文档生成等技术,实现非结构化数据的高效结构化与精准召回,支持多源内容导入、跨系统集成及企业级安全管控,兼具高性能、低门槛与强扩展性,助力企业打破信息孤岛,释放知识资产价值。
|
算法 NoSQL IDE
C语言性能优化:代码优化技巧与工具。
C语言性能优化:代码优化技巧与工具。
|
存储 Oracle 安全
推荐的开源软件中小企业行业数字化场景
在数字化转型中,中小企业常遇成本、技术和安全挑战。Websoft9依托开源软件,提供自主可控的解决方案。文章以十大核心场景为例,如制造业用Odoo ERP降低成本、K3s优化产线监控;金融领域以PostgreSQL替代Oracle节省费用;医疗行业借助Nextcloud保障数据隐私;零售业通过WordPress搭建独立站减少开支等,结合真实案例解析开源技术如何驱动业务创新与增长。
398 0
|
存储 NoSQL Java
使用lock4j-redis-template-spring-boot-starter实现redis分布式锁
通过使用 `lock4j-redis-template-spring-boot-starter`,我们可以轻松实现 Redis 分布式锁,从而解决分布式系统中多个实例并发访问共享资源的问题。合理配置和使用分布式锁,可以有效提高系统的稳定性和数据的一致性。希望本文对你在实际项目中使用 Redis 分布式锁有所帮助。
1027 5
|
应用服务中间件 nginx
使用Nginx搭建文件服务器
之前已经出了Nginx搭建和配置的文章,所以不再赘述,如有不会搭建看下面链接:
使用Nginx搭建文件服务器
|
测试技术 机器学习/深度学习 算法
智能化软件测试的演进与实践
随着人工智能技术的蓬勃发展,软件测试领域迎来了革命性的变革。本文深入探讨了智能化软件测试的发展脉络、关键技术及其在现代软件开发中的应用。我们将从自动化测试的基础出发,逐步解析机器学习和深度学习如何赋能测试流程,以及这些技术如何提升测试效率和准确性。此外,文章还将分享一系列成功的案例研究,展示智能化软件测试如何在不同类型的项目中发挥作用。
|
监控 物联网
低功耗广域网(LPWAN)技术概述
【6月更文挑战第1天】LPWAN是物联网的关键技术,专为低功耗、远距离和大容量连接设计。它功耗低,传输距离远,支持大量设备连接,广泛应用在智能抄表、农业和物流等领域。尽管面临标准兼容性和网络覆盖挑战,但随着技术进步,LPWAN将在未来持续推动物联网发展,创造更多可能性。
666 3