xss原理解析

xss->跨站脚本攻击

xss是指攻击者在网页中嵌入客户端脚本。通常是指javascript编写的一个危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。

-->javascript越强,xss就越强

危害:

1.盗取用户账号

2.盗取用户cookie资料,冒充用户身份进入网站

3.劫持用户会话,执行任意操作

4.执行弹窗广告

5.传播蠕虫病毒

属于客户端攻击,受害者是用户与浏览器,但由于网站管理人员也是用户 之一,从而也可以进行服务端攻击

挖掘xss

寻找脚本程序的输出显示程序,搜索关键字,显示输出某个变量,跟踪变量是否被过滤

一些web安全中常见名词解释

exp 漏洞的完整利用工具

poc 漏洞的验证与检测

shellcode 利用漏洞时执行的代码

payload 攻击载荷 sqlmap中payload为攻击代码的模板 msf 与shellcode类似,功能是建立与目标的连接

验证xss是否存在poc常用:

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

<script>confirm(/xss/)</script>

<script>prompt(/xss/)</script>

若提交的代码被当作字符串输出在html页面中,浏览器会根据[<script>]标签检测为js语句,并执行它,执行弹窗操作,

从而可执行其他js任意语句,可验证xss漏洞的存在。

反射型xss

非持久性,参数型的跨站脚本.

js代码在web应用的参数(变量)中,如搜索框的反射型xss.

存储型xss

持久性跨站脚本

体现在xss代码不是在某个参数中,而是写进数据库或文件中,可以永久的保持在数据的介质中

通常发现在留言板等地方.

DOM XSS

其中攻击的payload是由于修改受害者浏览器页面的DOM树而执行的

特殊的地方在于payload在浏览器本地修改dom树而执行,并不会传到服务器上

导致服务器端无法检测DOM XSS,导致DOM XSS比较难以发现,源代码中并无xss代码。

<script>

var a=document.URL;->变量a为现在的url地址

a=unescape(a);->对现在的url地址进行解码

document.write(a.substring(a.indexOf("message=")+8,a.length));->将message后的字符串截取然后打印出来

js中substring函数讲解

定义和用法

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

与substring()和slice()类似

语法

stringObject.substr(start,length)
参数描述
start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

返回值

一个新的字符串,包含从 stringObjectstart(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 startstringObject 的结尾的字符。

indexOf函数

定义和用法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(searchvalue,fromindex)
参数描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

posted @ 2020-08-17 22:29  LY2333  阅读(687)  评论(0编辑  收藏  举报