文章较长,看之前建议先了解以下四个问题
问题一、Burp Suite是什么?
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。
在渗透测试中,我们使用Burp Suite将使得测试工作变得更加快捷高效
问题二、Burp Suite具象化功能体现在哪?(部分示例)
1.攻击网站,获取用户登录名和密码
2.攻击网站,获取密码和token
在获取CSRF token的情况下攻击网站,拿到正确的用户名和登录密码
3.攻击网站,跳过输验证码阶段
篡改响应值,跳过验证码进入下一级网页
问题三、怎么安装配置Burp Suite?
配置Burp Suite教程:
【网络安全】Burpsuite v2021.12.1安装&激活&配置&快捷启动
问题四、怎么使用Burp Suite?
官网学习链接如下:
https://portswigger.net/support
https://portswigger.net/burp/documentation/desktop
官网在线文档有对该工具中所有模块所有参数的详细介绍
界面解释文档
https://portswigger.net/burp/documentation/contents
infiltrator:渗透者,对java程序中做安全扫描,生成jar包
clickbandit:点击劫持,生成一个点击劫持的工具来验证漏洞
collaborator:有些漏洞没有回显,添加一个服务器
首页每一个窗口都可以独立占整屏
本地文档
任务(漏洞扫描和爬行任务)
scope定义一个扫描的规则
拦截浏览器的HTTP数据包(包括请求和响应),相当于中间商
首页介绍
对拦截到的请求(地址),设置攻击载荷 (payload),利用字典进行渗透测试
比如:目录扫描、密码暴力破解、压力测试、FUZZ等 等
1、分析每一步具体的请求和响应内容
2、修改请求和响应内容
3、重发请求内容
用来评估Token、Session等关键字段 是否可以伪造(是否固定、是否可预测)
对请求数据进行编码、解码
对两次结果进行比较
网络代理
一台计算机和其他计算机通信不方便
作用:突破IP限制、隐藏IP、加速访问
如何将浏览器发送的数据转移到BP上代理发送,需要设置
开启电脑中的代理(不推荐,影响速度)
打开浏览器,设置,搜索代理
在浏览器附件组件中搜索“foxy proxy”,点击安装
安装成功后,出现代理
添加代理,点击选项,标题输入burp proxy,代理类型HTTP,代理IP和BP一致,127.0.0.1,端口和BP匹配8080,用户名和密码忽略
这样就得到一个BP的代理
搜索
crxdl.com
在插件搜索中搜
proxy
下载其中一个,然后在谷歌浏览器打开地址
chrome://extensions
将下载到的安装包,修改.crx文件为.zip,直接拖进去即可
如果上面这种方式报错,需要在这个页面打开开发者模式
chrome://extensions
选择加载已解压的扩展程序
选择主文件夹,即可
最简单的设置
option中默认监听端口
开启拦截
开启后BP就在一直监听中,此时需要打开浏览器的BP代理
初始监听
以下是具体的含义
目前在火狐浏览器,输入百度网址,打开百度
baidu.com
浏览器会转圈,打不开网址
点击放行后
可以正常打开网址
丢弃后,浏览器显示
监听端口
对客户端发给服务端请求的数据进行处理
拦截服务器相应
对请求和相应做别的自动化替换
TLS穿透(不经过BP)
网站证书:
1.操作系统安装根证书,里面有CA的公钥
2.CA颁发的证书,包含机构的公钥,并且用CA的公钥对机构公钥摘要加签
3.浏览器利用CA的公钥对摘要进行验签,确定机构公钥合法
4.浏览器用机构的公钥与服务器协商会话密钥
5.浏览器与服务器用会话密钥通信
HTTPS
当BP没有安装证书的时候,浏览器会弹出安全警告
在浏览器和BP开启后,浏览器中输入
http://burp/
在BP中,Proxy,Options
选择导出
导出DER格式
下载好后,将证书导入浏览器
在浏览器设置中,输入“证书”,
在颁发机构中导入
并且信任
如果要对手机 App 或者 App 的服务器进行渗透,首先需要 抓到 App
首先电脑需要连接到 WiFi,不能使用有线网络,这样才能让 手机和电脑处于同一网络环境(如果台式机的有线和手机 WiFi 是同一个网络环境也可以)。
电脑打开 cmd,输入 ipconfig -all,查看 WLAN 的 IPv4 地 址:
比如当前 IP 是 192.168.10.142,记住它,等下要用到。 启动 Burp,打开 Proxy——Options——Add
在打开的添加窗口中,端口依然填写 8080,绑定地址选择 刚才看到的那个 IP 地址,如图:
点 OK 确定。 这时候监听器要勾选新建的这个而不是默认的:
首先将手机连接到与电脑相同的 WiFi 中。 从手机的“设置”,进入 WLAN 设置
长按当前连接的 WiFi 名字,点击弹出的“修改网络”。
在打开的窗口中,勾选“显示高级选项”
开启代理:点击代理开关,在弹出的窗口中选择“手动”。
开启代理开关之后,需要配置代理:
代理已经配置完了。接下来手机上所有的网络请求都会发送 到 Burp 上。
需要注意:并不是你在操作 App 的时候才会有网络请求。 手机上的 App 无时无刻都在访问网络,所以会抓到很多无关的 包。
建议在手动操作之前才打开 Burp 的拦截开关,这样可以准 确地抓到包。
在 Proxy——Intercept 打开拦截开关:
比如:手机浏览器打开百度搜索,通信包被电脑上的 Burp 抓到:
至此,抓包的设置就完毕了
对于 HTTPS 的网站,客户端需要用服务器的密钥加密消息 以后发出。
当配置了代理,客户端(浏览器)向 burp 请求证书,但是 burp 没有证书,浏览器就会提示不安全。或者,使用了服务器的 证书加密,burp 抓到的是加密以后的消息,是无法查看和修改的。
所以完整的流程是这样的:
客户端先用 burp 的密钥加密消息。burp 解密称明文以后, 再用服务器的密钥加密消息。
所以这里要在手机上安装 burp 的证书。
选择第一个,DER 格式证书,点 Next
选择保存的 CA 路径(比如 D 盘),文件后缀命名为.cer, 非常重要,因为手机只能安装.cer 的证书类型,默认的 der 格式 是不能被识别安装的。点击保存,然后 Next
导出完毕,关闭窗口:
把文件发送到手机,比如用微信的“文件传输助手”。在手 机上“用其他应用打开”。
选择“证书安装器”打开,仅一次
写入证书名称,选择 WLAN,确定,安装成功。
在设置里面搜索“证书”,用户凭据,查看证书:
可以看到已经安装的证书
如果不需要抓手机的包了,需要正常访问,取消代理即可。 长按 WiFi 名字进入设置——显示高级选项——代理,设置 为“无”,保存,即可
记录所有经过BP的流量
1、HTTP History按时间顺序记录
2、Target按主机或者域名分类记录
请求淘宝后,target按站点进行规划记录
作用
1、把握网站的整体情况
2、对一次工作的域进行分析
3、分析网站存在的攻击面
攻击面:
对一个软件系统可以采取的攻击方法集合,一个软件的攻击面越大,安全风险就越大
攻击面包括:字段、协议、接口、服务、硬件的攻击点
目的:记录什么流量,不记录什么流量
协议、域名和端口必须都相同才算一个域
目录、文件、参数可以不同
就像如下的表格中,除了第一行两个域名是同域,其余都不是同一个域
第二行协议不同
第三行主域名不同
第四行子域名不同
第五行端口不同
域1 | 域2 |
---|---|
http://www.baidu.com/ | http://www.baidu.com/admin?a=1 |
http://www.baidu.com/ | https://www.baidu.com/ |
http://www.baidu.com/ | http://www.baidu.cn/ |
http://www.baidu.com/ | http://blog.baidu.com/ |
http://www.baidu.com:80/ | http://www.baidu.com:7298 |
只拦截站点,不拦截站点中内容
白名单:只有这些我才拦截
黑名单:只要是这些就不拦截
例如
只拦截 https://www.baidu.com/
不拦截 https://www.baidu.com/blog
黑名单路经一般是白名单的子路径
1、限定Sitemap和HTTP history记录哪些域的内容
2、限定Spider抓取哪些域的内容
3、限定Scanner扫描哪些域的安全漏洞
高级的黑白名单规则设置
可以加正则表达式
目的:记录的结果保存
1、自动(爬行)
全面但耗费时间
2、手动(浏览器访问)
只记录一次的站点地图
要求设置好BP和浏览器的代理,并且在访问前关掉拦截
先删掉HTTP history和Target站点地图
在拦截,会出现所有的站点地图
默认拦截一些文件
直接右键就可以操作
意味着该域名,有一条白名单生成,除了该路经之外所有内容都不会记录到站点地图
发送到对应模块
在浏览器中打开
交互工具
查精确内容
查找img标签
查找注释
查找域下的脚本
查看网站来源
网页中很多超链接,想要知道从哪跳转来的,需要reference
作用:
告诉服务器当前请求是从哪个页面链接过来的
应用场景:
1、来源统计
2、防盗链
攻击面分析
显示动态链接、静态链接、参数有多少个
针对域发现内容
利用内置的字典做一个目录扫描,确定某些文件或文件夹是否存在
定时任务
暂停任务会影响很多任务
手动测试模拟器
对HTTP的两个响应结果作比较
比如使用不同账号,不同参数登录
漏洞扫描工具
AWVS、Appscan、Nessus、Openvas、Goby、 Xray、ZAP
两个功能,爬行和审计
主动扫描和被动扫描
主动扫描影响范围大,不推荐
主动扫描:
1、方式:爬取所有链接,检测漏洞
2、特点:发送大量请求
3、使用场合:开发、测试环境
4、针对漏洞:
客户端的漏洞,如XSS 、HTTP头注入、操作重定向。
服务端的漏洞,如SQL注入、命令行注入、文件遍历。
被动扫描:
1、方式:只检测经过BP代理服务器的地址,不爬取
2、特点:发送有限请求
3、使用场合:生产环境
4、针对漏洞:
(1)提交的密码为未加密的明文。
(2)不安全的cookie的属性,例如缺少HttpOnly和安全标志。
(3)cookie的范围缺失。
(4)跨域脚本包含和站点引用泄露。
(5)表单值自动填充,尤其是密码。
(6)SSL保护的内容缓存。
(7)目录列表。
(8)提交密码后应答延迟。
(9)session令牌的不安全传输。
(10)敏感信息泄露,例如内部IP地址、电子邮件地址、堆枝跟踪等信息泄露。
(11)不安全的ViewState 的配置。
(12)错误或不规范的Content-Type指令
选择New scan,在扫描地址中选择自己搭建的网站,pupstudy
如果扫描的地址需要登录(后端页面),需要给出账号和密码
设置好以后现在已经开始爬行
设置中选择crawl
选择View details查看详细内容
已经爬到了6个地址
在logger中记录了所有爬取到的地址
选择被动爬行
选择第一个,爬行和审计
先创建一个爬行配置
把这几个项目都点开,然后保存
然后再新建一个审计配置
显示正在爬行,必须在爬行结束才会进行审计,审计之前不会报出漏洞
选择被动扫描
在任务结束后,BP的报告可以导出(必须在结束后)
1、发起HTTP请求,分析响应
2、重放请求
新建窗口,
通过发送到该模块,点send,内容可修改
翻译:入侵者
最多用于密码爆破
原理
请求参数进行修改,分析响应内容,获得特征数据
本质:
1、自动化发起HTTP请求
2、基于现成字典或者生成字典
用途
1、猜测用户名、密码等
2、寻找参数、目录等
3、枚举商品ID、验证码等
4、模糊测试(FUZZ)
可替代工具:
wfuzz(全部功能)、dirb(目录扫描)、hydra(暴
破)……
敬请期待。。。。。。