学习
实践
活动
专区
工具
TVP
写文章

浅谈Burp Suite

浅谈Burp Suite

Burp Suite(简称bp) 是用于Web 应用安全测试工具的集成平台,包含许多工具。ctf比赛中我们会经常用到bp这个工具,接下来,我来介绍一下bp的一些常用模块及最近刷题见识到bp的新姿势~

一、Proxy :一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许拦截客户端发送到服务端的请求数据包

二、Intruder:一般用于爆破密码,用户名,还可以进行sql注入的测试,来查看过滤了哪些语句,关键词

三、Repeater:在Proxy拦截请求数据包后,发送到Repeater,在Repeater模块可以修改请求数据包的内容,单击Go按钮后,可以发送请求(request)数据包到服务端,并在右侧返回服务端发回的内容(响应response)

四、decoder:用于编解码

五、comparer:用于比较两段文字的差异,并可以得到一个可视化的差异

bp可以用来跳过前端验证即Javascript的验证

javascript属于前端验证,在浏览器未提交数据时进行验证,用来防止用户输入错误,而我们是在通过验证,并拦截HTTP请求后修改数据,javascript的验证根本起不了任何作用,由此可见,前端验证是不可靠的。服务器端的验证是为了防止恶意攻击。

bp首先需要从proxy的option中设置代理,和浏览器火狐或者是Google的代理一致,手动配置代理 127.0.0.1:端口,然后到intercept中 切换到intercept is on 刷新一下浏览器的页面即可拦截到发送的请求,此时浏览器会一直处于阻塞状态

学bp,首先要熟悉http协议,https://www.jianshu.com/p/80e25cb1d81a

bp一般就是用来拦截请求包然后修改,进行绕过服务器端的检测,比如大小写绕过,php别名绕过,%00截断,利用未知后缀名绕过等等,还有经常用来就是Intruder,利用字典 爆破密码,用户名,弱口令,还可以整理一份自己的sql注入语句字典(kali好像自带着有一份)来检测过滤了什么关键字等等,然后在利用未过滤的,可以影响数据库的标点关键字语句等等来构造payload

用三个题目来叙述一下最近发现的

bp新姿势

0x01 comparer:

记得前些天的TCTF,有一道杂项题,就是来比较两段文字的差异,而这差异就是一份文章是完整的,而另一份则是不完整的,隔几行就缺少了几个字母,最终把这缺少的字母连起来就是flag。当初队友是用了另外一个文件比对的工具,还要逐行的去找,看起来好麻烦的说

flag

0x02

i春秋-web-“百度杯”CTF比赛

十月场Login

常规先右键查看源代码,发现最下面有 可能是账号和密码 输入进去 进入到/member.php 发现(╯‵□′)╯︵┴─┴,没什么东西,用bp抓包看看,

发现response中的headers中的show 值为 0 一般,做题中常见的有sources 值为 0 ,这次又遇见了show 值为 0的 在计算机中 0代表假 1代表真 类似于信息隐藏吧,此值决定着是否开启on or off 隐藏的内容

此时我们从request的请求段中构造show: 1 然后go 出现源代码 开始php代码审计

想要得到flag 需要$login['user'] === 'ichunqiu' token属于cookie 把request得到的token先base64解密,在进行gzuncompress解压缩,然后在进行反序列化 最后赋值给变量login 如果此时的$login的值为ichunqiu 即可成功得到flag

array(key=>value) key='user' value='ichunqiu' 先序列化serialize() 再压缩 gzcompress() 最后在base64加密 得到最初的token 一个简陋的脚本

运行得到eJxLtDK0qi62MrFSKi1OLVKyLraysFLKTM4ozSvMLFWyrgUAo4oKXA==

我们从request的params中add一行

然后go 在response中可以看到flag

我觉得此题的原理就是利用token来验证身份,知道了token是什么,在请求中来添加token就可以通过验证 即可得到flag,token的由来 就是通过代码审计,网站的源代码泄露,导致我们可以看到源代码,进行代码审计来查看加密过程和通过条件,知道了这一切,写出算法程序解密,即可构造出payload

0x03

bugku-web-这是一个神奇的登录框

url中提示为sql注入 查看源代码 发现是用post方式提交数据 随便输入账号密码提交抓包右键copy to file 第一次见这么用bp的,,,

kali sqlmap sqlmap.py -r "绝对路径" -p admin_name --dbs -r为读文件 然后是保存file的绝对路径 -p选取admin_name为注入点 --dbs 是获取当前数据库

应该是bugkusql1 information_schema应该是sql注入中经常构造语句使用的数据库,此数据库记录了很多其他数据库的消息 爆出数据库后是 找表 再找列 最后爆出列所包含的内容字段

sqlmap.py -r "绝对路径" -D bugkusql1 -p admin_name --tables -D为 此时的数据库 --tables是查看此数据库的所有表

sqlmap.py -r "绝对路径" -D bugkusql1 -T flag1 -p admin_name --columns -T指定表 --columns 查看此数据库此表中的所有列

sqlmap.py -r "绝对路径" -D bugkusql1 -T flag1 -C flag1 -p admin_name --dump -C指定列名 --dump获取字段 得到flag

小结一下:

bp新用法 ,把请求的内容加载到文件中 ,用sqlmap来使用读取加载的文件,找到注入点,然后一路爆破,查看数据库 查看表 查看列 查看字段

ALL BY ZYT(WECHAT:Z962620891)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180607G1ZDC800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券