XSS实战漏洞挖掘

接下来一年时间将会主要研究渗透测试方向的众多问题,文章中的内容也会在后面定期更新。本文主要记录了一些XSS漏洞挖掘中的实用心得和学习笔记。

漏洞描述

漏洞描述:跨站脚本攻击的英文全称是Cross Site Script,为了和样式表区分,缩写为

XSS。发生的原因是网站将用户输入的内容输出到页面上,在这个过程中可能有恶意代码被

浏览器执行。跨站脚本攻击,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户

浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。已

知的跨站脚本攻击漏洞有三种:1)存储式;2)反射式;3)基于DOM。1、 存储型跨站脚本攻击涉及的功能点:用户输入的文本信息保存到数据库中,并能够在页面展示的功能点,例如用户留言、发送站内消息、个人信息修改等功能点。

2、 反射型跨站脚本攻击涉及的功能点:URL参数需要在页面显示的功能点都可能存在

反射型跨站脚本攻击,例如站内搜索、查询功能点。

3、 基于DOM跨站脚本攻击涉及的功能点:涉及DOM对象的页面程序,包括(不限这

些):

document.URL

document.URLUnencoded

document.location

document.referrer

window.location

测试方法:

  1. 在输入的参数后逐条添加以下语句,以第一条为例,输入

http://www.exmaple.com/page.xxx?name=\<script>alert(123456)</script>

只要其中一条弹出显示123456的告警框,就说明存在跨站漏洞,记录漏洞,停止测试。

  1. 如果没有弹出显示123456的告警框,则在返回的页面上单击鼠标右键,选择"查看源文件"。

  2. 查找网页源文件中是否包含完整的字符串<script>alert(123456)</script>,则不管有没有弹出显示123456的告警框,都表明存在跨站脚本漏洞。

  3. 由于有些HTML元素(比如<textarea>或")会影响脚本的执行,所以不一定能够正确弹出123456告警框,需要根据返回网页源文件的内容,构造value的值,比如多行文本输入框:

</textarea><script>alert(123456)</script>

文本输入框:

</td><script>alert(123456)</script>

'><script>alert(123456)</script>

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

</title><script>alert(123456)</script>

--><script>alert(123456)</script>

img\]javascript:alert(123456)\[/img

<scrip<script>t>alert(123456)</scrip</script>t>

</div><Script>alert(123456)</script>

需要对页面上所有可以提交参数的地方进行测试。具体跨站脚本的测试语句根据实际情况的不同而不同,可自行构造,以及触发事件等切换,这里只列出了一些最常见构造语句。

基本用例

从攻的角度探讨以下用例

1、利用<>标记注射脚本

最简单的就是<script>alert(123456)</script>,但是XSS。filter首当其冲要进行过滤和转义的就是<>和<script>这类字符。

2、利用HTML标签属性值

可以利用HTML中标签的属性值,很多HTML标记中的属性都支持jcavscript:[code]的伪协议形式,例子如下:

<img src="javascript:alert('XSS');">

但这个方式由于浏览器的升级局限性较高

3、使用空格回车键

在引号中使用额外的换行和分隔来跳过过滤,因为JS语句通常以分号结尾。

例子:

<img src ="javas

ceript:

alert(/xss/)" width=100>

4、对标签属性转码:

支持ASCII形式

5、产生自己的事件

6、使用CSS进行xss

7、扰乱过滤规则

使用不同的大小写、使用单引号、不使用引号等方式

相关推荐
white-persist18 分钟前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
Mr_Meng_De18 分钟前
AI环境下的网络安全人才的发展方向
安全·web安全
新中地GIS开发老师1 小时前
Cesium 军事标绘入门:用 Cesium-Plot-JS 快速实现标绘功能
前端·javascript·arcgis·cesium·gis开发·地理信息科学
Superxpang1 小时前
前端性能优化
前端·javascript·vue.js·性能优化
Rysxt_1 小时前
Element Plus 入门教程:从零开始构建 Vue 3 界面
前端·javascript·vue.js
隐含1 小时前
对于el-table中自定义表头中添加el-popover会弹出两个的解决方案,分别针对固定列和非固定列来隐藏最后一个浮框。
前端·javascript·vue.js
大鱼前端1 小时前
Turbopack vs Webpack vs Vite:前端构建工具三分天下,谁将胜出?
前端·webpack·turbopack
你的人类朋友1 小时前
先用js快速开发,后续引入ts是否是一个好的实践?
前端·javascript·后端
知识分享小能手1 小时前
微信小程序入门学习教程,从入门到精通,微信小程序核心 API 详解与案例(13)
前端·javascript·学习·react.js·微信小程序·小程序·vue