一、BP使用
1.概述
(1)概念:bp即burpsuite是跨平台应用,因为它是基于Java开发的,所以只要有jdk就能运行。
(2)功能:抓包、改包、重放包是他的主要功能。
(3)它是代理工具,相当于中间人的角色,浏览器挂代理才能抓包。
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)模块:
proxy—代理。抓包、放包、丢包;右键点击抓到的内容,还可以发送到各个模块进行操作。
target—站点目标,地图。查看bp收到的包的信息和网站目录结构。
repeater—http请求和响应消息的重放。我们可以把抓到的消息右键发送到repeater模块,然后可以改变页面的一些内容,点击发送还可以看到页面渲染的样子。
intruder:暴力破解。同样抓到的包右键发送至模块,然后选择暴力破解的地方和手段,增添字典,进行破解。
decoder:编码工具。可以进行编码和解码,很方便。
二、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中加入字典,我们刚才下载的字典,每个都要导入一个字典,然后点击开始攻击即可。
然后我们找出返回值跟其他不太一样的就是正确的答案了。