xss跨站脚本漏洞总结

xss难点主要在挖掘.闭合绕过

XSS(cross-site script)跨站脚本自1996年诞生以来,一直被OWASP(open web appliaction security project)评为十大安全漏洞中的第二威胁漏洞。也有黑客把xss当做新型的"缓冲区溢出攻击",而javascript是新型的shellcode。

xss最大的特点就是能注入恶意的代码到用户浏览器的网页上。从而达到劫持用户会话的目的。

这里初步了解了xss的定义。那么什么是跨站脚本:

一种经常出现在web应用程序中的计算机安全漏洞,是由于web应用程序对用户的输入过滤不严而产生的。攻击者利用网站漏洞把恶意的脚本代码注入到网页中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采用cookie资料窃取,会话劫持,钓鱼欺骗等攻击手段。

XSS脚本实例


xss test 




这段代码使用alert函数来执行打开一个消息框,消息框中显示xss信息

使用xss弹出恶意警告框,代码为:

xss输入也可能是html代码段,如果网页不停的刷新,代码为

嵌入其他网站的链接的代码为:

xss的危害

  1. 网络钓鱼,包括盗取各类的用户账号
  2. 窃取用户cookie
  3. 窃取用户浏览会话
  4. 强制弹出广告页面、刷流量
  5. 网页挂马
  6. 提升用户权限,进一步渗透网站
  7. 传播跨站脚本蠕虫等

这里我们先了解一下javascript

JavaScript 是一种直译式脚本语言,是一种动态类型、弱类型、基于原形的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

document对象

  • document是一个对象,从JS一开始就存在的一个对象,它代表当前的页面(文档)。
  • 我们调用它的write()方法就能够向该对象中写入内容  即:document.write()
  • 可以在html引用外部js代码
  • js代码中写入
  • document.write("hello");

JavaScript变量

定义变量

  • var  变量名
  • var a;
  • var  b=1;
  • var c ="xxx"
  • var=False

JavaScrip流程控制

if-else控制语句

  • var a=1;
  • var b=2;
  • if(a>b){
  • alert("a=1");
  • }else{
  • alert("b=2");
  • }

do-while ,for循环,基本和编程其他语言差不多

javascript函数

  • function x(a,b){
  • var  c=a+b;
  • return c;
  • }
  • var xx=x(1,2)
  • console.log(xx)

javascript事件

onclick属性 点击事件

  • function x(){
  • alert(/xss/)
  • }
  • hello

看到这里基本上也对javascript有了基本了解,接下来详细了解xss

xss分类

  • 反射型xss
  • DOM型xss
  • 储存型xss

反射型xss

反射型跨站脚本也称作非持久型、参数型跨站脚本、这类型的脚本是最常见的,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中

例如:

http://www.xx.com/search.php?key=">

一般使用的将构造好的url发送给受害者,是受害者点击触发,而且只执行一次,非持久化

储存型xss

储存型xss比反射型跨站脚本更具有威胁性,并且可能影响到web服务器的自身安全

此类xss不需要用户点击特定的url就能执行跨站脚本,攻击者事先先将恶意javascript代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意的代码的页面就会执行恶意代码

xss漏洞挖掘

挖掘方法:

  • 手工挖掘
  • 工具挖掘

手工挖掘xss漏洞

从一个站点

www.xx.com/xx.php?id=1

攻击者会这样进行xss测试,将如下payloads分别添加到id=1;

可以测试用户输入地方,文件上传地方,flash等

闭合标签

"">

"">

如果在标签中间就闭合标签

标签属性中就

">

不知道该闭合那个标签全写出来,到时候是哪个,那个就闭合

'">

xss绕过限制

相信大家在做渗透测试的时候都有过这样的经历,明明一个xss的漏洞,但是却有xss过滤规则或者waf保护导致我们不能成功利用,比如我们输入,会被转化为这样的话我们的xss就不生效了

下面介绍简单的绕过xss的方法

  1. 绕过magic_quotes_gpc
  2. 编码     (复杂的关键字过滤)
  3. 改变大小写(简单的关键字过滤)
  4. 关闭标签

你可能感兴趣的:(web渗透笔记总结)