pikachu靶场——暴力破解(Kali系统)

文章目录

本文仅限于日常学习和技术交流。不得利用文章涉及的技术点进行违法活动。所有操作均在本地靶场。

(一)基于表单的暴力破解

1.打开 kali 中的 burpsuite 软件。点击 proxy 界面,在 burpsuite 中 open brower (个人习惯直接使用 bp 中自带的 浏览器,如果要使用 kali 中的浏览器,需要安装 FoxyProxy 的插件,具体步骤可自行搜索查找),同时打开 intercept 拦截开关。

2.在 browser 中输入靶场的网址。这里的账号密码就是需要破解的地方。首先我们先随便输入一下账号和密码,然后点击 login。

3.此时,在 burpsuite 中就拦截到了这个登录的数据包。选中该数据包,将此数据包 send to intruder。

4.点击 intruder,根据实际需求,选择相关方式,分别为:

这四种攻击模式是 Burp Suite Intruder 模块的核心功能,用于自动化测试 Web 应用的安全性,它们在处理 payload 位置和组合方式上有着本质区别,适用于不同的测试场景:

  • Sniper attack(狙击手攻击)

    这是最基础的攻击模式,它会将一个 payload 集合中的每个 payload 依次插入到每一个定义好的 payload 位置中,每次只替换一个位置,其他位置保持不变。

    它适用于对单个参数进行暴力破解或模糊测试,比如测试登录框的用户名或密码字段,或者测试某个 URL 参数是否存在 SQL 注入。

  • Battering ram attack(攻城锤攻击)

    这种模式会将同一个 payload 同时插入到所有定义好的 payload 位置中。也就是说,它会遍历 payload 集合,每次取出一个 payload,然后把这个 payload 同时填入所有位置。

    它适用于测试多个参数需要同时满足相同条件的场景,比如测试多个输入框是否都对某个特殊字符敏感,或者测试多个参数是否都存在相同的注入点。

  • Pitchfork attack(叉子攻击)

    这种模式需要多个 payload 集合,每个 payload 位置对应一个 payload 集合。它会并行地从每个集合中取出一个 payload,然后将它们分别填入对应的 payload 位置。

    它适用于测试多个参数之间存在关联的场景,比如测试用户名和密码的组合,或者测试多个相关联的参数是否能触发特定的逻辑错误。

  • Cluster bomb attack(集束炸弹攻击)

    这种模式也需要多个 payload 集合,每个 payload 位置对应一个 payload 集合。与 Pitchfork 不同的是,它会遍历所有可能的组合,即第一个集合的每个 payload 会与第二个集合的每个 payload 组合,依此类推。

    它适用于测试多个参数之间所有可能的组合,比如测试用户名和密码的所有可能组合,或者测试多个参数的所有可能输入是否能触发漏洞。这种模式生成的请求量最大,测试最全面,但耗时也最长。

PS:这里我们做一个前提假设,假如我们已经知道该登录接口的用户名为 admin,这里仅需要破解该用户的密码,所以我们此时选择 sniper attack 模式。

在密码的数据上添加标签,然后倒入密码文本,点击 start attack。进行破解。在 kali 的 /usr/share/wordlist 文件中,自带了许多密码本,可用于简单的测试。

5.查看具体情况,可以根据 status code 和 length 的情况进行初步的查看,code 为 200,长度明显与其他不一致的可以重点查看,最后通过查看 response 的 render 具体查看返回的情况。

通过上图,可以看出 该网站的登录接口,用户名为 admin,密码为 12346

(二)验证码绕过(on server)

这种服务端提供的验证数据的情况,其实在第一次拦截的时候,人工填写正确即可。后续的操作,与基于表单的暴力破解一致。

具体的步骤如下,如有省略,可参考上一小节的步骤。

可以发现,爆破成功,其实这里打开其他数据包,可以发现再次返回的验证码是一致的,因此,可以理解为,在多次进行密码尝试的过程中,对于服务器来讲,仅认为客户端发动了一次登录请求。

(三)验证码绕过(on client)

此类型的验证码,主要是在前端页面进行了验证码的生成和验证,主要的思路一种是将页面另存为本地的html,将里面的验证码验证的部分进行处理(删除、设为固定值、或者直接将验证的直接返回 true)。

验证码生成函数:

验证码验证函数:

第二种方式,其实和上面的步骤一致,因为,在 on server 的验证码绕过的期间,可以发现,在 burpsuite 中,只要不放行拦截的数据包,这个验证码是不会变动的。因此。也可以直接爆破。前提是拦截的数据包需要手动输入正确的验证码。此处不再赘述。

(四)token防爆破?

在登录的过程中,携带了 token 值,此种类型需要分析该 token 值是如何获取的。通过查看页面代码,可以发现在页面中,会携带一个 token 数据,

同理,抓包,然后将 passowrd 和 token 都打标记。攻击模式选择 pitchfork attack 。对于多个标记,可以在右侧中进行选择。对于密码的设置与之前一致。

对于token的设置,在 payload type 中更改为 Recursive grep ,同时需要切换到 setting 界面,然后点击查看 refetch reponse 信息,从中提取 token 的value 值进行设置,设置完毕后,向下拖动,找到 Redirections,选择 always。

将进程设置为1,这里不支持多线程爆破。

设置完毕后进行 attack 。需要注意的是:在自身测试的时候,发现如果第一个密码为真实密码,他不会返回登录成功的信息,具体原因不知。建议在整个测试密码前随机添加一个字符串。

相关推荐
一名优秀的码农19 小时前
vulhub系列-12-Hackademic.RTB1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
Codefengfeng21 小时前
kali安装与使用蚁剑(antsword)
web安全·网络安全·系统安全
The_Uniform_C@t21 天前
AWD | ATT&CK实战系列--蓝队防御(一)
网络·学习·网络安全
撩妹小狗1 天前
渗透测试-信息收集篇-上-手动收集
web安全·网络安全
Whoami!1 天前
⓬⁄₇ ⟦ OSCP ⬖ 研记 ⟧ Linux权限提升 ➱ 利用Cron任务配置不当实现提权
网络安全·信息安全·linux提权·cron任务
Pure_White_Sword2 天前
bugku-reverse题目-NoString
网络安全·ctf·reverse·逆向工程
枷锁—sha2 天前
【CTFshow-pwn系列】03_栈溢出【pwn 051】详解:C++字符串替换引发的血案与 Ret2Text
开发语言·网络·c++·笔记·安全·网络安全
林姜泽樾2 天前
linux基础第一章,linux的介绍和它和windows的区别
linux·运维·计算机网络·安全·网络安全
Mikowoo0072 天前
Kali系统_安装靶机
网络安全