包含一些基础的XSS学习。

XSS跨站脚本分类

XSS漏洞介绍

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。故将其缩写为XSS。恶意攻击者往Web页面插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击者的目的

反射型XSS

非持久型XSS,这种攻击往往具有一次性。攻击者通过邮件等形式将包含XSS代码的连接发送给正常用户,当用户点击时,服务器接收该用户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码,触发XSS漏洞。

使用dvwa演示,演示时需注意设置dvwa安全性,否则可能无法成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

提交一个test_name,提交内容返回到页面

构造代码,输入并提交,触发代码,弹出对话框(包含对应Cookie值)

存储型XSS

持久性XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性(论坛、博客、留言板等,发帖过程中被嵌入XSS代码,帖子被目标服务器存储在数据库中,当用户进行正常访问时,触发XSS代码)

例如:dvwa中的Stored XSS

弹出弹窗以后,代码内容被保存,以后每次访问,都会触发代码

DOM型XSS

Document Object Model 使用DOM动态访问更新文档的内容、结构及样式。HTML标签都是节点,通过DOM可以对所有的节点进行修改。服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞。

例如:dvwa DOM XSS

点击select以后,在URL处直接修改为test,此时,修改的内容test直接反弹到了网页的选项中

XSS盗取Cookie

反射XSS盗取Cookie

存在反射型XSS漏洞的站点位置,利用以下链接盗取Cookie
url?uname=#

在本地文件夹下编写一个cookie.php

注意路径

提交以后,页面重定向

查看cookie.txt内容,cookie值被写入文件

利用cookie会话劫持

打开cookie.txt文件,找到cookie值,访问目标站点,修改cookie为cookie.txt中的内容,即可成功访问。

劫持会话后的操作

1.进入后台寻找上传点(一句话webshell)

2.修改配置

XSS篡改网页链接

XSS篡改链接

window.onload 当窗口加载时,执行匿名函数。
例如,将所有a标签的链接替换为自定义的链接:

将篡改代码注入到对应XSS位置,以dvwa 反射XSS为例,审查元素,此时链接为官方链接

将上述代码复制并提交,所有a标签链接发生改变

篡改链接指向流量URL

刷流量,某些站点的重定向。
例如:link[j].href = “http://qq.com”,点击以后跳转到腾讯网

篡改链接指向恶意URL

Beef进行恶意链接生成,利用hook.js执行其他命令

在kali中使用 beef-xss 生成恶意链接

使用 service apache2 start 开启服务器,使用leafpad打开/var/www/html下的index.html,将恶意链接添加进去

使用主机访问

返回kali查看beef,出现了一台新的机器,包含对应信息以及一些可执行的命令(绿色可用,红色不可用)

XSS盗取用户信息

盗取用户信息原理

克隆网站登录页面,利用存储XSS设置跳转代码,如果用户访问即跳转到克隆网站的登录页面,用户输入登录账号、密码被存储

setoolkit工具克隆网站

在kali下使用setoolkit,根据提示依次 set 1-2-3-2

复制目标网站的URL

在setoolkit中配置克隆网站的ip地址和被克隆网站的url

通过URL访问克隆网站,克隆成功

存储XSS跳转克隆网站

xss payload:

例如:在dvwa 存储型XSS中,将上述代码写入(长度受限制可通过审查元素修改)

提价以后页面跳转到克隆网站

查看盗取账号密码

当用户在克隆网站登录时,用户名和密码被发送给攻击者

没有过滤的XSS

实验环境:http://xss-quiz.int21h.jp/(一个日本安全研究员制作的练习靶场)

探测XSS过程

1.构造一个独一无二且不会被识别为恶意代码的字符串用来提交页面
例如:123thisisatestcode
2.进行代码审查,寻找构造的字符串是否在页面中显示

闭合文本标签利用XSS

1.简单payload:

提交以后,弹窗,可以进入下一关

2.闭合标签payload:(b标签表示加粗文本)
"
b标签被闭合,同样可以进入下一关,在payload前加自定义内容,效果一样

标签属性中的XSS

配置Chrome关闭XSS-Auditor

在实验过程中,如果无法正常提交,使用 --args --disable-xss-author 进行配置。右键属性,将上述命令填在目标位置后面

属性中的XSS闭合引入script

Ctrl+F,发现提交的参数以属性输出

闭合并引入script脚本
">

属性中的XSS闭合引入事件

例如鼠标移动:
" οnmοuseοver=alert(document.domain)>
当鼠标移动到search文本框区域时,弹窗弹出

选择列表中的XSS

select标签:创建单选或多选菜单
option标签:可用选项
表单:搜集用户输入

burpsuite测试XSS

使用burpsuite修改提交参数

点击Forward发送包,显示内容为修改后的内容

闭合触发XSS

修改参数进行闭合 ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yMTAzNTQ4My01ZDM3NzhhMjM0N2JiMDJjLnBuZw?x-oss-process=image/format,png)

右键复制响应链接

在浏览器中访问,弹窗弹出,确定以后可进入下一关

选择参数中的XSS

HTML表单隐藏参数

隐藏域是用来搜集或发送信息的不可见元素
代码格式:

burpsuite抓包测试


审查元素,查找隐藏参数

HTML中svg

SVG(可缩放矢量图形)使用XML格式定义图像。SVG文件可以通过以下标签嵌入HTML文档:、、。也可以使用标签。

<svg/事件="">

闭合触发XSS

"><svg/οnlοad=alert(document.domain)>%0a(%0a替换空格)
例如:在前两个参数中,XSS被过滤,在第三个参数进行闭合
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ko4N0ygn-1596515414469)(https://upload-images.jianshu.io/upload_images/21035483-e73c15dbfdbfb829.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
点击Forward,弹窗弹出,可进入下一关

限制长度的XSS

1.text:定义常规文本输入
属性:
value:输入字段初始值
readonly:输入字段只读
disable:输入字段禁用,不可点击,不会被提交
size:输入字段尺寸(以字符计)
maxlength:输入字段最大长度
2.XSS Payload长度计算
快速计算:使用python内置函数 len()

3.修改源码
浏览器审查工具修改
4.Payload触发XSS漏洞

HTML事件中的XSS

通关使用客户端的javascript,可以将某些特定的事件处理器作为属性添加给特定的标签,并可以在事件发生时执行一个或多个JavaScript命令或函数。例如当鼠标单击时运行脚本等等。
1.XSS漏洞发现
设置独一无二的优良字符串,在响应中寻找
2.闭合思路
1、通过HTML事件来触发XSS,例如:
" οnmοuseοver="alert(document.domain)
2、闭合 input 标签,例如:
">

空格分隔属性的XSS

提交 test">,无弹窗

进行测试,提交 test"123,123在 value 后面

提交 test",效果类似

提交 test 123,123成了新标签

(test 123=123)

构造XSS代码进行测试:
test οnmοuseοver=alert(document.domain)

JavaScript伪协议的XSS

将JavaScript代码添加到客户端的方法是把它放置在伪协议说明符 javascript: 后的URL中。该协议类型声明了URL的主体可以是任意JavaScript代码,由JavaScript的解释权运行。
例如:
javascript:var now = new Database();“

The time is:

” + now
JavaScript URL还可以含有执行动作,但不返回值的语句。
例如:
javascript:alert(“hello world!”)

:超链接 href指定链接的目标

提交test寻找XSS漏洞

输入内容为URL,利用JavaScript伪协议构造XSS代码
javascript:alert(document.domain)

点击链接即可弹出弹窗

过滤的XSS

绕过过滤domain为空的XSS

输入test">,发现 domain 被替换为空

双写绕过

payload:test">
成功绕过

编码绕过

eval:执行字符串
atob:将加密的base64字符串(在线网站即可加密)转换为对应字符串
payload:test">
成功绕过

绕过替换 script 和 on 的XSS

输入test">,script被替换为xscript

输入test" οnmοuseοver="alert(document.domain),onmouseover被替换为onxxx

伪协议空格绕过

输入test">xss
javascript被替换为javaxscript

payload:test">xss
(注:此空格为Unicode编码转换后的空格,即编码 也可进行XSS注入)

利用IE特性绕过XSS过滤

在stage12中,尝试HTML事件触发XSS,输入
test" οnclick=“alert(document.domain)
双引号和空格被过滤去掉

尝试闭合input,利用外部标签触发XSS,输入
test”>
双引号和尖括号被过滤去掉

IE特性

IE中,两个反引号可以闭合一个左边双引号 payload: οnmοusemοve=alert(document.domain)

利用CSS特性绕过XSS过滤

background:url(“javascript:alert(document.domain);”); 设置背景颜色
目前IE支持(win10新版本不支持),其他浏览器不支持
payload:background-color:#f00;background:url(“javascript:alert(document.domain);”);

IE中利用CSS触发XSS

expression(css表达式) 可以在CSS中定义表达式来达到建立元素属性之间的联系等作用(IE5开始支持,IE8取消支持)
CSS中的注释//绕过对expression的过滤。例如:ex//pression
payload:xss:expre/**/ssion(if(!window.x){alert(document.domain);window.x=1;})

16进制绕过过滤触发XSS

可使用python(使用python2尽量)进行将字符串进行转换

输入">,双引号与尖括号被转义

双斜杠+16进制绕过

测试:\x3c \x3e

payload:\x3cscript\x3ealert(document.domain);\x3c/script\x3e

unicode绕过过滤XSS

可使用python(使用python2尽量)进行将字符串进行转换

输入:\x3cscript\x3ealert(document.domain);\x3c/script\x3e,并未输出尖括号

双斜杠+Unicode绕过

payload:\u003cscript\u003ealert(document.domain);\u003c/script\u003e

XSS漏洞基础学习(笔记)相关推荐

  1. 反射型XSS漏洞基础

    XSS漏洞基础(本文仅供技术学习与分享) 反射型XSS(GET)漏洞弹窗 实验准备: 皮卡丘靶场 实验步骤: 确认页面是否存在XSS漏洞:在对应的输入点输入危险字符,包括', ", < ...

  2. guido正式发布python年份_Python 基础学习笔记.docx

    Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...

  3. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

    http://blog.jobbole.com/85008/ ASP.Net MVC开发基础学习笔记(5):区域.模板页与WebAPI初步 2015/03/17 · IT技术 · .Net, Asp. ...

  4. Python3 基础学习笔记 C09【文件和异常】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  5. Python3 基础学习笔记 C08 【类】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  6. Python3 基础学习笔记 C07【函数】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  7. Python3 基础学习笔记 C06【用户输入和 while 循环】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  8. Python3 基础学习笔记 C05【字典】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  9. Python3 基础学习笔记 C04【if 语句】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

最新文章

  1. C++ assert 断言使用
  2. div+css兼容性
  3. matlab滤波仿真
  4. JavaScript:Scope(域)的基本指南
  5. javaScript面向对象编程学习(二)
  6. 后浪“95”获 CVPR 2020 最佳论文,前得主这样解读
  7. 2018北京ICPC H. Approximate Matching(AC自动机+DP)
  8. springboot情操陶冶-web配置(六)
  9. 文件上传之multer
  10. 2021-12-08 根据XPS 价带谱计算价带谱中心
  11. robocopy解决文件夹路径层级太深,windows右键功能无法删除和拷贝的问题
  12. oracle卸载msvcr71,msvcr71.dll丢失解决方法2则(附msvcr71.dll win7 64位下载)
  13. OpenGL法线贴图
  14. MIST浏览器不能连接私有链
  15. java super extend 区别_Java泛型中extends和super的区别
  16. 沉痛悼念恩师莫绍揆先生
  17. 好用的读书笔记app精选
  18. iis6独立安装供下载(原创)
  19. js复制、粘贴完整实例代码
  20. 工程师评测 | RK3568开发板上手测试

热门文章

  1. 华为超融合一体机助力深圳海关业务性能大幅提升
  2. yum安装Redis教程
  3. UnusualDeepLearning-task1
  4. 【Web前端】HTML—4.表格标签
  5. 哈工大计算机研究生院著名导师,哈尔滨工业大学研究生导师介绍:李海峰-中公研招网...
  6. Java支付宝身份验证接口接入指南(人脸验证)
  7. 用计算机弹不可说,智者懂得,三种话不可说,三件事不必问(值得一读)
  8. httpCanary app抓包
  9. 计算1900年1月1日到当前年份的日期之间一共有多少天
  10. 如何在Android上管理文件和使用文件系统