XSS得原理分析与解剖.docx

上传人:b****3 文档编号:27058095 上传时间:2023-06-26 格式:DOCX 页数:12 大小:388.89KB
下载 相关 举报
XSS得原理分析与解剖.docx_第1页
第1页 / 共12页
XSS得原理分析与解剖.docx_第2页
第2页 / 共12页
XSS得原理分析与解剖.docx_第3页
第3页 / 共12页
XSS得原理分析与解剖.docx_第4页
第4页 / 共12页
XSS得原理分析与解剖.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

XSS得原理分析与解剖.docx

《XSS得原理分析与解剖.docx》由会员分享,可在线阅读,更多相关《XSS得原理分析与解剖.docx(12页珍藏版)》请在冰豆网上搜索。

XSS得原理分析与解剖.docx

XSS得原理分析与解剖

XSS得原理分析与解剖

2014-08-1318:

47Black-HoleFreeBuf字号:

T|T

xss就是一门又热门又不太受重视得Web攻击手法,为什么会这样呢,原因有下:

耗时间、有一定几率不成功、没有相应得软件来完成自动化攻击、就是一种被动得攻击手法等。

AD:

0×01前言:

《xss攻击手法》一开始在互联网上资料并不多(都就是现成得代码,没有从基础得开始),直到刺得《白帽子讲WEB安全》与cn4rry得《XSS跨站脚本攻击剖析与防御》才开始好转。

我这里就不说什么xss得历史什么东西了,xss就是一门又热门又不太受重视得Web攻击手法,为什么会这样呢,原因有下:

1、耗时间

2、有一定几率不成功

3、没有相应得软件来完成自动化攻击

4、前期需要基本得html、js功底,后期需要扎实得html、js、actionscript2/3、0等语言得功底

5、就是一种被动得攻击手法

6、对website有-only、crossdomian、xml没有用

但就是这些并没有影响黑客对此漏洞得偏爱,原因不需要多,只需要一个。

Xss几乎每个网站都存在,google、baidu、360等都存在。

0×02原理:

首先我们现在本地搭建个PHP环境(可以使用phpstudy安装包安装),然后在index、php文件里写入如下代码:

1. 

2. 

3. 

4.XSS原理重现 

5. 

6. 

7. 

8. 

9. 

10.

 

11.


 

12.

php 

13.$xss = $_GET['xss_input']; 

14.echo '您输入得字符为
'、$xss; 

15.?

16. 

17. 

18. 

然后,您会在页面瞧到这样得页面

我们试着输入abcd123,得到得结果为

我们在瞧瞧源代码

我们输入得字符串被原封不动得输出来了,那这里我们提出来一个假设,假设我们在搜索框输入下面得代码会出现什么呢?

1. 

如果按照上面得例子来说,它应该存在第12行得[br]与[/boby]>之间,变成:

1.
 

之后,应该会弹出对话框。

既然假设提出来,那我们来实现下这个假设成不成立吧。

我们输入

1. 

得到得页面为

成功弹窗,这个时候基本上就可以确定存在xss漏洞。

我们在瞧瞧源代码

瞧来,我们得假设成功了,这节就说说XSS得原理,下面几节说说xss得构造与利用。

0×03xss利用输出得环境来构造代码 :

上节说了xss得原理,但就是我们得输出点不一在[br]与[/boby]里,可以出现在html标签得属性里,或者其她标签里面。

所以这节很重要,因为不一定当您输入下面代码就会出现弹窗。

 

1. 

先贴出代码:

1. 

2. 

3. 

4.XSS利用输出得环境来构造代码 

5. 

6. 

7.

 

8.

把我们输入得字符串 输出到input里得value属性里
 

9. 

10.

请输入您想显现得字符串
 

11.
 

12. 

13. 

14.


 

15.

php 

16.$xss = $_GET['xss_input_value']; 

17.if(isset($xss)){ 

18.echo ''; 

19.}else{ 

20.echo ''; 

21.} 

22.?

23.

 

24. 

25. 

下面就是代码得页面

这段代码得作用就是把第一个输入框得字符串,输出到第二个输入框,我们输入1,那么第二个input里得value值就就是1,下面就是页面得截图与源代码得截图(这里我输入下面得代码来测试)

1. 

 

明显得可以瞧到,并没有弹出对话框,大家可能会疑惑为什么没有弹窗呢,我们来瞧瞧源代码

我们瞧到我们输入得字符串被输出到第15行input标签里得value属性里面,被当成value里得值来显现出来,所以并没有弹窗,这时候我们该怎么办呢?

聪明得人已经发现了可以在

1. 

前面加个">来闭合input标签。

所以应该得到得结果为

成功弹窗了,我们在瞧瞧这时得页面

瞧到后面有第二个input输入框后面跟有">字符串,为什么会这样呢,我们来瞧瞧源代码

这时可以瞧到我们构造得代码里面有两个">,第一个">就是为了闭合input标签,所以第二个">就被抛弃了,因为html得容错性高,所以并没有像php那样出现错误,而就是直接把多余得字符串来输出了,有得人就是个完美主义者,不喜欢有多余得字符串被输出,这时该怎么办呢?

这里我问大家一个问题,我之前说得xss代码里,为什么全就是带有标签得。

难道就不能不带标签么?

答:

当然可以。

既然可以不用标签,那我们就用标签里得属性来构造XSS,这样得话,xss代码又少,又不会有多余得字符串被输出来。

还就是这个环境,但就是不能使用标签,您应该怎么做。

想想input里有什么属性可以调用js,html学得好得人,应该知道了,on事件,对得。

我们可以用on事件来进行弹窗,比如这个xss代码我们可以写成

1." onclick="alert('xss') 

这时,我们在来试试,页面会发生什么样得变化吧。

没有瞧到弹窗啊,失败了么?

答案当然就是错误得,因为onclick就是鼠标点击事件,也就就是说当您得鼠标点击第二个input输入框得时候,就会触发onclick事件,然后执行alert('xss')代码。

我们来试试瞧

当我点击后,就出现了弹窗,这时我们来瞧瞧源代码吧

第15行,value值为空,当鼠标点击时,就会弹出对话框。

这里可能就会有人问了,如果要点击才会触发,那不就是很麻烦么,成功率不就又下降了么。

我来帮您解答这个问题,on事件不止onclick这一个,还有很多,如果您想不需要用户完成什么动作就可以触发得话,i可以把onclick改成

Onmousemove当鼠标移动就触发

Onload当页面加载完成后触发

还有很多,我这里就不一一说明了,有兴趣得朋友可以自行查询下。

别以为就这样结束了,还有一类环境不能用上述得方法,

那就就是如果在[textarea]标签里呢?

或者其她优先级比script高得呢?

就下面这样

这时我们该怎么办呢?

既然前面都说了闭合属性与闭合标签了,那能不能闭合完整得标签呢,答案就是肯定得。

我们可以输入下面得代码就可以实现弹窗了。

1. 

0×04过滤得解决办法

假如说网站禁止过滤了script这时该怎么办呢,记住一句话,这就是我总结出来得“xss就就是在页面执行您想要得js”不用管那么多,只要能运行我们得js就OK,比如用img标签或者a标签。

我们可以这样写

1.当找不到图片名为1得文件时,执行alert('xss') 

2.

alert('xss')>s 点击s时运行alert('xss') 

3.

alert('xss');height=0 width=0 />

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1