XSS的原理分析与解剖

CracerCracer 2016-3-25 渗透测试 931 0 3

xss是一门又热门又不太受重视的Web攻击手法,为什么会这样呢,原因有下:耗时间、有一定几率不成功、没有相应的软件来完成自动化攻击、是一种被动的攻击手法等。

0×01 前言:

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

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

1、耗时间
2、有一定几率不成功
3、没有相应的软件来完成自动化攻击
4、前期需要基本的html、js功底,后期需要扎实的html、js、actionscript2/3.0等语言的功底
5、是一种被动的攻击手法
6、对website有http-only、crossdomian.xml没有用

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

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

0×02 原理:

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

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  4. <title>XSS原理重现</title> 
  5. </head> 
  6. <body> 
  7. <form action="" method="get"> 
  8. <input type="text" name="xss_input"> 
  9. <input type="submit"> 
  10. </form> 
  11. <hr> 
  12. <?php 
  13. $xss = $_GET['xss_input'];  
  14. echo '你输入的字符为<br>'.$xss;  
  15. ?> 
  16. </body> 
  17. </html>

然后,你会在页面看到这样的页面

XSS的原理分析与解剖

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

XSS的原理分析与解剖

我们在看看源代码

XSS的原理分析与解剖

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

  1. <script>alert('xss')</script> 

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

  1. <br><script>alert('xss')</script></boby> 

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

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

我们输入

  1. <script>alert('xss')</script> 

得到的页面为

XSS的原理分析与解剖

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

我们在看看源代码

XSS的原理分析与解剖

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

转载请注明来自Cracer,本文标题:《XSS的原理分析与解剖》

喜欢 (3) 发布评论
发表评论


Top