一)前言
我已经在之前详细的说明了burpsuite的安装过程,如果不了解的可以看 burpsuite安装教程 :http://t.csdn.cn/uVx9X 在这了补充说明一下,在安装完burpsuite并设置完代理后,会出现如果访问的url是使用http协议的就可以进行抓包,如果访问的url是使用HTTPS协议的就会出现如下图的错误提示:
这其实就是因为没有安装一个 CA 证书,我们只需值地址栏输入 http://burp
然后点击右上角的CA Certificate,这时会自动下载一个名为cacert.der的证书文件,如下图:
接着有两种导入CA 证书的方式,在这里讲解比较简单的一种方式,方便大家更快的解决问题。
方法:找到下载的 CA 的位置,双击打开它,根据提示安装这个证书,如下图:
接着在浏览器中导入证书,点击浏览器右上角栏→选项→右上角搜索处搜“证书”→导入,找到下载的证书,然后确定(新版的Firefox做了改进,证书导入被放在了:选项->隐私于安全->安全->证书->查看证书->导入证书->确定)
二)burpsuite功能介绍:
1 . user options模块:
1)设置BP 中的字体大小:
user interface :对其自带的功能模块的字体大小设置
HTTP Message Display :对下面的截获的包的选项内容字体进行大小设置
2 . Proxy模块:(可以截断、查看、修改所有在客户端和服务器端之间传输的数据)
1)配置浏览器代理:
先在Internet选项中进行设置,如下图(注意一定不能勾选 “对于本地地址不使用代理服务器”,否则就会出现用127.0.0.1但无法进行数据包的截获,只能用本机IP地址才可以的现象。
2)抓包改包:BP中 Proxy—intercept—intercept is on(intercept is off 表示关闭截断代理功能),接着在浏览器中访问一个网址,此时BP就会把请求包进行抓取(此时会抓取所有的请求的数据包,我们可以Forward直到看到想要的数据包,或者在http history中找所需的包),我们可以进行改包(Action将截获的HTTP或HTTPS请求发送到其他相应的模块进行一系列操作)点击 Forward将修改后的包发送给服务器并进行正常的访问;或者Drop把抓到的包丢弃;intercept下的Raw、Params、Headers、Hex 是以不同的格式显示截取的数据包
Raw:抓取的请求数据包
Params:请求数据包的参数信息,包括GET/POST请求的参数,cookie参数
Headers:请求数据包的头部信息
Hex:Raw中信息的二进制内容
Action中的选项:
其中:
1) Change request method 经过把所有相关的请求参数适当地搬迁到这个请求里来,就可以自动地把请求的方法在 POST 和 GET 中间切换。通过发送恶意的请求使用这个选项来快速测试应用程序的极限参数是多少。
2) Change body encoding 对于所有的请求,你可以在应用程序/X-WWW 格式的 URL 编码和多重表单/数据之间切换消息体的编码方式。
3)Copy URL 把当前的 URL 完整地复制到粘贴板上。
4)Cope as curl command 作为curl命令
5)Cope to file 这个功能允许你把选择一个文件,并把消息的内容复制到这个文件里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。复制操作是在选择的文本上进行的,如果没有被选中的内容,则是针对整个消息了。
6)Pase form file 这个功能允许你选择一个文件,并把文件里的内容粘贴到消息里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。粘贴操作会替换掉被选中的内容,如果没有内容被选中,则在光标位置插入这些内容。
7)Save item 这个功能让你指定一个文件,把选中的请求和响应以XML的格式保存到这个文件,这里面包括所有的元数据如:响应的长度,HTTP 的状态码以及 MIME 类型。
8)Don’t intercept requests 通过这些命令可以快速地添加拦截动作的规则来阻止拦截到的消息,这些消息和当前的消息有着相同的特征(如远程主机,资源类型,响应编码)。
10)Do intercept 仅对请求有效,这允许你可以对当请求和响应的进行强制拦截。
11)Convert seiection 这些功能让你能够以多种方案对选择的文本进行快速的编码和解码。
12)URL-encode as you type 如果这个选项被打开,你输入的像&和=这样的符号会被等价的 URL编码代替。
3 . 模块Repeater(改包,重放)
我们抓一个包来看看,抓取包之后,右键 Send to Repeater 发送到重发模块,
在 Repeater模块,我们可以随意修改数据包。修改完后点击 go 就可以发包了。之后,右边就会显示服务器回的包,如下图:
4 . Intruder模块(爆破)
Intruder爆破主要由四个模块组成:
1:Target 用于配置目标服务器进行攻击的详细信息。
2:Positions 设置Payloads的插入点以及攻击类型(攻击模式)。
3:Payloads 设置payload,配置字典
4:Options 此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改
Target选项:设置攻击的信息,如下图:
position选项:配置攻击类型和攻击点,Attack-type攻击类型,这里有四种可以选择:
1)Sniper:对变量依次进行破解,如果有多个攻击点,则多个攻击点依次进行。只能用一份密码字典
2)Battering ram:对变量同时进行破解,如果有多个攻击点,多个标记点同时进行。只能用一份密码字典
3)Pitchfork:每一个变量标记对应一个字典,取每个字典的对应项。最少设置2处攻击点,最多设置20处攻击点。每个攻击点设置一个密码字典。
4)Cluster bomb:每个变量对应一个字典,并且进行交集破解,尝试各种组合。最少设置2处攻击点,最多设置20处攻击点。适用于用户名+密码的组合。
例:现在有两份密码字典,每份密码字典里都有5个爆破字符的话。设置两处爆破点,Sniper会尝试10次,Battering ram会尝试5次,Pitchfork会尝试5次,Cluster bomb会尝试25次。
Payloads选项:配置攻击载荷payload
1)Payload Sets: 这里设置 payload 的数量类型。你可以定义一个或多个有效载荷,有效载荷的数量取决于攻击类型定义,对于未知标签中定义的攻击类型,可以为每个有效载荷提供有效载荷类型,并且每种有效载荷类型可以以不同方式定制,playload type:
Simple list:简单字典
Runtime file:运行文件
Custom iterator:自定义迭代器(可以在字典前后加任意字符)
Character substitution:字符替换
Case modification:实例修改
Recursive grep:递归
illegal unicode:非法字符
Character blocks:字符块
Numbers:数字组合
Dates:日期组合
Brute force:暴力破解
Null payloads:空payload
Username generator:用户名生成
copy other payload:复制其他payload
Payload Options[Simple list]: 该选项会根据Payload Sets的设置而改变。
Payload Processing: 对Payload进行编码、加密、截取等操作,如下图对payload进行base64编码:
Payload Encoding:bp 会默认自动对 payload 中的一些字符进行 URL 编码,我们可以勾选也可以取消,如下图:
Options选项:对请求头和请求过程以及请求结果的一些设置。该选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。可以在发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。
学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题(需要的可以后台私信“资料”自取)
同时每个成长路线对应的板块都有配套的视频提供: