CTF-WEB:BurpSuite 工具应用

抓包

BurpSuite 是非常实用的抓包工具,使用 Burp Suite 之前需要先在 Firefox 设置代理。首先需要打开 Firefox 的设置页面,选择网络选项。

选择手动代理配置,BurpSuite 的 HTTP 协议默认代理是 127.0.0.1 的 8080 端口。

设置之后,Firefox 的 HTTP 包在发送请求之前,需要先发给 Burp Suite 看一遍,然后再由 Burp Suite 选择放包才能把包传出去。

例题:bugku-你必须让它停下

打开之后,看到页面不断在刷新,切换得很快使得无法看源码。

打开 BurpSuite 抓包,不停地 GOGOGO!

终于在抓到的某一个包中,看到了 flag。

例题:攻防世界-baby_web

打开网页,看到一个 “Hello,world!”,根据提示初始页面应该是 index.php,但是这里确实 1.php。

修改 url 后还是这个页面,怀疑是打开 index.php 之后马上跳转到 1.php 页面了。此时是没有办法看到 index.php 页面的,通过抓包查看响应报文得到 flag。

HTTP 报文修改

BurpSuite 在抓到包之后,可以对抓到的 HTTP 进行编辑,可以变更 HTTP 的请求方式或者添加字段。

经常需要添加的字段有 2 个,首先是 Referer 字段,它是 header 的一部分,用于告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。还有一个字段是 X-Forwarded-For,用来识别通过 HTTP 代理或负载均衡方式连接到 Web 服务器的客户端最原始的 IP 地址的 HTTP 请求头字段。

例题:bugku-web 基础 $_POST

打开网页,题目要求我们使用 POST 方法提交 flag 值上去。

这里可以使用火狐浏览器的 Hackbar 插件,也可以用用 Python 的 requests 库的 post 方法提交一个字典上去。也可以打开 BurpSuite 抓包,抓到的包是 GET 请求。

修改该请求为 POST,并且附加上“what=flag”的信息,放包。

例题:bugku-你从哪里来

打开题目,题目问我们是不是来自 google。

由于我们需要告诉服务器该网页是从 google 过来的,因此我们应该修改 HTTP 的 referer 头为 google 的。首先抓包:

然后在包中自己加上个 Referer 字段,内容为 “https://www.google.com”,上传就可以得到 flag。

例题:bugku-管理员系统


随便输个数字进去,获得提示“IP 禁止访问,请联系本地管理员登陆,IP 已被记录”。

也就是说现在我们需要伪装成本地登录,此时想到了“127.0.0.1”这个 IP 地址表示回送地址,本地机用来测试使用。因此我们应该要构造一个 X-Forwarded-For 来提交,值为本地测试地址:

X-Forwarded-For: 127.0.0.1


现在提交 HTTP 包,发现此时的输出已经变了。但是还没成功,现在考虑下用户名和密码。

用 F12 打开网页,发现一个可疑的字符串,是一段 base64 加密,解开是“test123”。

应该就是密码了,因为是管理员,就猜测用户名是 admin。现在把上述所有内容提交,获得 flag。

爆破

BurpSuite 支持对报文中的某些部分进行爆破,例如在已知用户名的情况下拿到一个登录页面,我们可以通过穷举法爆破密码来达到强行登录的效果。

爆破的操作是将 HTTP 包发给测试器,用 “$” 符号选定爆破操作的位置,选择合适的有效载荷(例如密码字典或自然数序列等)和攻击模式后就可以进行爆破。判断爆破结果是不是我们想要的方法是,看看返回的 length,在爆破样本中具有不同 length 的负载就可能是我们想要的东西了。

例题:bugku-输入密码查看 flag

打开网页,提示爆破 5 位密码。

首先随便写个密码,打开 BurpSuite 抓包,把包送到测试器后选择爆破类型为数字。

还没爆破完就有戏了,发现一个可疑密码“13579”,输入得到 flag。

例题:bugku-网站被黑

打开网页,网址后有 webshell,这是以 asp、php、jsp 或者 cgi 等网页文件形式存在的一种代码执行环境,是一种网页后门。

使用御剑扫描下后门,发现 3 个网页,其中 shell.php 最可疑。

打开,发现需要输入密码,那就使用 BurpSuite 爆破喽。

先随便填个密码进去,BurpSuite 抓到包后发给 Intruder 模块,使用狙击手攻击。

点击有效载荷,在有效载荷选项下的从列表中添加下的密码,然后开始攻击。

发现一个可以的密码 “hack”,它的长和其他的都不一样,那应该就是密码了,输进去获得 flag。

例题:攻防世界-ics-06

打开页面,看上去是个很高端的页面,翻一翻只有这个页面有反应,根据提示 flag 应该和这个页面有关。

F12、抓包和扫后台都没有什么有用的信息,观察到 url 上已经用 GET 方法传递了值进去,猜测 flag 可能需要修改 id 参数。随便改几个参数,页面没有什么变化。

此时大胆猜测当 id 等于某个值时就会出现 flag,但是人工尝试工作量很大。使用 Brup 爆破是比较好的做法,首先用 Brup 抓包。

把包传给 Intruder 测试器,攻击类型选 Sniper,设置爆破点为 id 参数。

设置有效载荷为数字,从 0 到一个比较大的数,增量为 1。

开始攻击后等上一会儿,爆破到 2333 时发现 length 不一样,也就是说当 id = 2333 时就能看到 flag。

原文地址:https://www.cnblogs.com/linfangnan/p/13546089.html