一、BurpSuite使用
1.概述
你知道为什么 Burp Suite(简称 BP)能成为全球黑客的 "标配神器" 吗?关键就藏在它的基因里 —— 作为一款基于 Java 开发的跨平台工具,它就像数字世界的 "变形金刚",只要你的设备装上 JDK(Java 运行环境),无论是 Windows、Mac 还是 Linux 系统,BP 都能无缝畅跑,真正实现 "一次编写,处处可用"。
它的核心战斗力体现在三大看家本领上:抓包、改包、重放包。就像网络世界的 "全能特工",BP 能精准拦截浏览器与服务器之间的所有数据通信,让每一个数据包都无所遁形。更厉害的是,你可以像编辑文档一样随意修改这些数据包的内容,甚至将修改后的数据包反复发送测试,堪称 Web 安全测试的 "瑞士军刀"。
而 BP 最巧妙的设计,在于它扮演了网络世界的 "中间人" 角色。当你在浏览器中设置 BP 为代理服务器时,它就像一个隐形的交通指挥员,所有进出浏览器的数据都必须经过它的 "安检站"。这种独特的代理机制,让 BP 能够轻松捕获、分析甚至篡改数据,成为渗透测试中不可或缺的核心工具。
2.配置代理
(1)默认监听本机的127.0.0.1的8080端口,bp的代理选项点击设置查看。
(2)浏览器配置:两种方法,一种是设置—常规—网络设置—手动配置127.0.0.1 8080,然后保存,之后在用bp时将网络设置改过去;第二种是使用扩展switchyOmega,然后在其中的proxy中配置,将不代理的内容清空,然后应用选项即可。
(3)导入证书:将浏览器代理切换到bp,打开bp中的拦截,然后在浏览器url中输入burp/
点击CA证书,保存文件,然后在设置—隐私与安全—证书部分将证书导入,弹出的框内内容全选就好,然后确定,完成导入。
(4)然后测试一下是否成功:打开bp拦截,浏览器挂上代理,随便输入一个网址,看bp是否抓取到,能抓取到即成功。
3.功能
(1)原理:bp本质上和中间人攻击没区别,不管是浏览器发给我们还是我们回给浏览器,都要经过bp的手进行传递,只不过bp是本地部署的中间人,是自己创造的。
(2)模块:
二、http介绍
1.http特点
(1)支持客户端/服务端模式CS、BS(没有客户端)、P2P(点对点没有中间连接点)
(2)简单快速灵活
(3)无状态:对事物处理没有记忆功能。就是你上一秒对他做了什么,刷新一下后,他不记得你是谁,你做了什么,想要登入还得在此验证身份。为解决这个问题,我们引入了cookie。
2.cookie
cookie由服务器生成,传给客户端记录,保存在客户端本地,客户端向服务器发送请求时会带上cookie,认证成功后便可以省去登录的步骤。本质上cookie解决了http无状态的问题,但是cookie本身存在漏洞。
3.session
光有cookie是不够的,cookie与session对应使用,session也叫会话。session存在服务端,cookie存在客户端,当客户端携带cookie向服务端发送请求时,服务端会将cookie信息提取出来与服务端存储的session信息进行比对,比对成功后才能完成认证。
区别:cookie存储在客户端,session存储在服务端;
cookie存储形式为ASCII,session可以存任意数据类型;
cookie可长时间保存,session保存时间短;
cookie保存的数据不能超过4k,session可存储数据量远大于cookie。
但是不管是cookie还是session都是由服务器端形成的。
4.token
很多web漏洞都是如cookie和session造成的,所以我们要解决这个问题,就引入了token概念。
如果服务器端有很多太服务器,客户端去响应时不一定会响应哪一台服务器,那么我们存在服务器端的session就没用了,因为你不知道你后面访问的服务器是否存储了你的session,解决这个问题的一个办法是在形成session时给每一台服务器都复制一份信息,但是,这样就会造成多台服务器的存储压力并没有降低,且消息冗余,所以我们可以采取token方式。
token本质上和session没什么区别,只是它只存储在浏览器上,不会上传到服务器端,而在请求时server端用它的一套检验机制检验这个token是否合法,不合法就不会接收。且他本身携带uid,直接找到对应的用户,减轻了服务器的压力。
5.http报文
(1)url:统一资源定位符;格式:协议://主机名.服务器域名:端口号/文件路径/参数?传参点
(2)请求报文:具体格式如下图。
(3)响应报文:响应报文和请求报文严格对仗的,大体内容都差不多。
状态码。状态码由三位数字组成,第一个数字定义了响应的类别,共分五种类别:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见的状态码有,200,302,304,400,403,404,500
三、暴力破解
1.概述
(1)它本身是一种漏洞,但属于业务逻辑层面的漏洞,在设置密码时密码过于简单,由一些简单组合构成,即我们所说的弱口令,然后使用穷举的方式将密码一遍遍输入其中,直到测试出真正的密码。
(2)场所:网站后台密码管理以及前端登入界面等。
2.弱口令
(1)常见弱口令
root 、admin、123456、12345678、admin123等。
(2)地区特色的弱口令
如中国人很喜欢6和8这两个数字,可能是666也可能是888
(3)社工弱口令
针对某一个人的弱口令,在信息收集阶段我么你收集到了你的手机号、学号、工号、身份证号、生日等信息,然后形成专属于一个人的口令本。
3.暴力破解方法
(1)常见方法
字典匹配和穷举,对于穷举法来说,如果你的密码足够复杂和健壮,那么穷举会耗费很多时间,所以穷举法不经常使用;那么对于暴力破解来说最重要的就应该时字典了。一个好的字典会帮助你破解很多密码。密码字典:https://github.com/danielmiessler/SecLists
(2)九头蛇hydra:https://github.com/maaaaz/thc-hydra-windows
进入文件根目录,在搜索框运行cmd,进入终端,运行hydra.exe会给出用法语句,练习即可
对ftp服务爆破: hydra -L 用户字典 -P 密码字典 ftp://IP地址
(3)medusa
kali的linux环境下使用,在这里就不介绍了,可以查询一下使用方法。
(4)bp爆破:我将使用暴力破解网站的第一题作为演示步骤。
打开bp抓包以及浏览器代理,将账号和密码填进去,然后点击登录。
将捕捉到的页面右键发送至intruder中,进行爆破。
选中要爆破的位置即admin和123,然后点击添加payload位置。
攻击类型随便一个就行,有介绍,可以根据需求选择,因为有两个payload,这里我选择集束炸弹-多个payload集。
然后去payload去设置爆破字典。payload的集分别选1、2,然后在setting中加入字典,我们刚才下载的字典,每个都要导入一个字典,然后点击开始攻击即可。
然后我们找出返回值跟其他不太一样的就是正确的答案了。