本文目录一览:
- 1、哪有放XSS跨站脚本工具的第三方工具/
- 2、excel里这个是什么东东?起什么作用?如何引用?(如下) =EMBED("Forms.Image.1","")
- 3、html 引用swf文件,swf项目的图片路径引用错误
- 4、这个xss有过滤方案么
- 5、HTML的embed标签是干什么的?
- 6、phpcms iframe问题
哪有放XSS跨站脚本工具的第三方工具/
不修改网站程序,使用第三方工具来防范XSS跨站式脚本攻击
网站要怎么防范常见的XSS跨站式脚本攻击呢,我们先从XSS跨站式脚本攻击的原理来说起。
网站遭受XSS跨站式脚本攻击的基本原理
1.本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
其攻击过程如下所示:
A给B发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。
2反射式漏洞,这种漏洞和本地利用漏洞有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
其攻击过程如下:
A经常浏览某个网站,此网站为B所拥有。B的站点运行A使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。
C发现B的站点包含反射性的XSS漏洞。
C编写一个利用漏洞的URL,并将其冒充为来自B的邮件发送给A。
A在登录到B的站点后,浏览C提供的URL。
嵌入到URL中的恶意脚本在A的浏览器中执行,就像它直接来自B的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在A完全不知情的情况下将这些信息发送到C的Web站点。
3存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
其攻击过程如下:
B拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
C注意到B的站点具有存储式的XXS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人如A浏览该信息,其会话cookies或者其它信息将被C盗走。
类型A直接威胁用户个体,而类型B和存储式漏洞所威胁的对象都是企业级Web应用。
网站遭受XSS跨站式脚本攻击的基本方式
1. DOM-based cross-site scripting
页面本身包含一些DOM对象的操作,如果未对输入的参数进行处理,可能会导致执行恶意脚本。如下面一些DOM操作:
document.URL
document.URLUnencoded
document.location (and many of its properties)
document.referrer
window.location (and many of its properties)
举个例子,假如某个脆弱的页面的代码如下:
HTML
TITLEWelcome!/TITLE
Hi
SCRIPT
var pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length));
/SCRIPT
BR
Welcome to our system
…
/HTML
攻击者使用如下的URL访问时,则非常危险:
;scriptalert(document.cookie)/script
试了一下,貌似IE、FireFox等浏览器默认 对scriptalert(document.cookie)/script进行了编码,阻止了脚本的执行。但是对于 DOM操作还是要更加谨慎啊,比如把上面的页面修改一下,安全性就增强了不少:
SCRIPT
var pos=document.URL.indexOf("name=")+5;
var name=document.URL.substring(pos,document.URL.length);
if (name.match(/^[a-zA-Z0-9]$/))
{
document.write(name);
}
else
{
window.alert("Security error");
}
/SCRIPT
2. Reflected cross-site scripting
也被称为None-Persistent cross-site scripting,即,非持久化的XSS攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL,当 URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常浏览网页时,站点从数据库中读取了非法用户存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方出现。
实施方式
我们来试一把Reflected cross-site scripting。当我们在某网站输入参数XXX,发现参数XXX原样的出现在了页面源码中:
1. input type="text" class="cff9-2572-cc20-eb82 Seach" name="w" value="XXX" /
OK,可以开始做文章了,我们将XXX替换为:abc"/scriptalert('haha')/scripta href=",返回的HTML代码如下:
1. input type="text" class="2572-cc20-eb82-eeb7 Seach" name="w" value="abc"/
2. scriptalert('haha')/script!--" /
这样,scriptalert('haha')/script被执行了。这里再举例一些XSS攻击行为:
1. IMG SRC="javascript:alert('XSS');"
2. IMG SRC=javascript:alert('XSS')
3. IMG SRC="javascript:alert(String.fromCharCode(88,83,83))"
4. IMG SRC="jav ascript:alert('XSS');"
5. SCRIPT/XSS SRC=""/SCRIPT
6. SCRIPTalert("XSS");///SCRIPT
7. iframe src=
8. INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');"
9. BODY BACKGROUND="javascript:alert('XSS')"
10. BODY ONLOAD=alert(document.cookie)
11. BODY onload!#$%()*~+-_.,:;?@[/|"]^`=alert("XSS")
12. IMG DYNSRC="javascript:alert('XSS')"
13. IMG DYNSRC="javascript:alert('XSS')"
14. BR SIZE="{alert('XSS')}"
15. IMG SRC='vbscript:msgbox("XSS")'
16. TABLE BACKGROUND="javascript:alert('XSS')"
17. DIV STYLE="width: expression(alert('XSS'));"
18. DIV STYLE="background-image: url(javascript:alert('XSS'))"
19. STYLE TYPE="text/javascript"alert('XSS');/STYLE
20. STYLE type="text/css"BODY{background:url("javascript:alert('XSS')")}/STYLE
21. ?='SCRIPTalert("XSS")/SCRIPT'?
22. A HREF="javascript:document.location=''"XSS/A
23. IMG SRC=javascript:alert('XSS')
24. EMBED SRC="" AllowScriptAccess="always"/EMBED
25. a="get";
26. b="URL(""";
27. c="javascript:";
28. d="alert('XSS');"")";
29. eval(a+b+c+d);
总结一下,要防止XSS跨站式脚本攻击主要是要在查询字符串(QueryString),表单数据(PostData)以及Cookie甚至HTTP报头(Header)中防止掉一些javascript关键字和一些敏感的字符(单引号,分号)以及SQL语言的关键字,以及防止他们使用encode编码。
用ASP或者PHP脚本来实现上面的这些想起来就很麻烦。下面就来介绍下用一个第三方工具IISUTM来处理上面我们说到的问题。
准备工作:先去下载最新的IISUTM版本。
根据IISUTM网站防火墙安装及操作手册 中的说明把IISUTM部署到你的服务器上来,这里需要注意的是使用Windows 2003+iis6的服务器,需要开启iis中“以IIS5.0 隔离模式运行 www 服务”选项才能正常使用该软件。
安装完成,通过浏览器访问IISUTM的配置管理界面默认的是,这个是私有地址,只能在该服务器上访问,你需要任何地方都能访问的话,可以在安装的时候IP地址的选项那里填入你服务器的公网IP地址,和你所开放的端口。这样你就可以通过你配置的地址进行访问,或者你可以在iis中直接管理名为IISUTM的站点。
登陆管理界面后点击上面导航栏中的“基本设置”,然后点击左边菜单的“防XSS攻击”链接。
开启该链接里所有的选项,选中之后IISUTM会自动保存配置,下面的“使用不允许的发送序列”是该软件提供的XSS攻击关键字的特征库,你可以根据你网站的情况进行更改(最好不要修改)。
确认以上的配置以后,你可以返回到IISUTM管理界面的首页,这里会列出最近服务器遭受到的攻击以及详细,赶紧去看看你的网站是不是随时有人在进行SQL注入吧,以及哪些攻击被IISUTM处理掉了。
excel里这个是什么东东?起什么作用?如何引用?(如下) =EMBED("Forms.Image.1","")
①EMBED的语法
{ EMBED ClassName [Switches] }
插入支持 OLE 的其他应用程序所创建的对象。使用“插入”菜单中的“对象”命令、“编辑”菜单中的“选择性粘贴”命令或工具栏
(工具栏:包含可用于执行命令的按钮和选项的栏;要显示工具栏,请按 Alt 然后按 Shift+F10。)按钮插入对象(如 Microsoft Excel
工作表对象)时,Microsoft Word 将插入 EMBED 域。
OLE说明:一种可用于在程序之间共享信息的程序集成技术。所有 Office 程序都支持 OLE,所以可通过链接和嵌入对象共享信息。)
“域”对话框中没有 EMBED 域,不能手动插入该域。但可以直接修改已有的 EMBED 域中的开关;
参数说明:
ClassName:容器应用程序名,如 Microsoft Excel。不能修改此指令。
开关
\*MERGEFORMAT
将上次结果所用的尺寸和裁剪应用于新的结果。如果在更新域时要保持上次应用的尺寸和裁剪,请不要从域中删除此开关。
②EMBED实例说明
1、插入图片
下列域显示嵌入
(嵌入:将某程序创建的信息(例如图表或公式)插入其他程序中。嵌入对象后,该信息即成为文档的一部分。对该对象所作的任何更改都将在文档中反应出来。)文档中的“Microsoft
图形”对象。
{ EMBED MSGraph.Chart.8 \* MERGEFORMAT }
2、插入CAD图形
例如: 你在 autocad 复制一图形,在 excel 做粘贴动作就出现如下
=EMBED("AutoCAD.Drawing.16","") 这样可以实现 CAD 和 EXCEL 切换编辑
在网页可做成动态链接。
③总体来讲EMBED
我们不需要理会EMBED用法及其参数,因为EMBED参数不能修改。
我们只需要懂得如何利用就足够了,总的来说,用法为:
执行菜单操作“插入”→“对象”;弹出对话框,在对话框中切换到“由文件创建”,之后,点击“浏览”按钮,选择好对象所在的文件路径及名称,即可将对象插入或嵌入到表格中。这样,在对应的单元格的FX函数输入框中,就自然会出现
=EMBED("","") 了。
比如,当您通过上述的方法,将PDF文件嵌入到excel中,往后,如果需要查看该PDF文件,那么,只需要点击一下该对象,自然就会自动打开PDF目标文件进行浏览了。
你的应该为插入了文档。
html 引用swf文件,swf项目的图片路径引用错误
你好,你说的swf引用图片,应该是幻灯片一类的flash。
这个swf文件一般是要读取配置文件的,根据配置文件来读取文件夹下的图片。
1、看看你的swf有没有.xml文件,如果有的话,用记事本打开看看里面的图片路径配置。
2、也有可能这个路径是写入flash文件中的,那得有flash源码才能修改。
这个xss有过滤方案么
方案一:
避免XSS的方法之一主要是将用户所提供的内容输入输出进行过滤,许多语言都有提供对HTML的过滤:
可以利用下面这些函数对出现xss漏洞的参数进行过滤:
PHP的htmlentities()或是htmlspecialchars()。
Python 的 cgi.escape()。
ASP 的 ServerEncode()。
ASP.NET 的 ServerEncode() 或功能更强的 Microsoft Anti-Cross Site Scripting Library
Java 的 xssprotect(Open Source Library)。
Node.js 的 node-validator。
方案二:使用开源的漏洞修复插件。( 需要站长懂得编程并且能够修改服务器代码 )
HTML的embed标签是干什么的?
embed是HTML5中新增的标签,可以在页面中嵌入任何类型的文档。用户的机器上必须已经安装了能够正确显示文档内容的程序,一般常用于在网页中插入多媒体格式可以是。rm .mid .wav等,IE、Firefox等最新浏览器都能支持。
一、基本语法
代码如下:
embed src=url
说明:embed可以用来插入各种多媒体,格式可以是 Midi、Wav、AIFF、AU、MP3等等,Netscape及新版的IE 都支持。url为音频或视频文件及其路径,可以是相对路径或绝对路径。
示例:
代码如下:
embed src="your.mid"
二、属性设置
1、自动播放:
语法:autostart=true、false
说明:该属性规定音频或视频文件是否在下载完之后就自动播放。
true:音乐文件在下载完之后自动播放;
false:音乐文件在下载完之后不自动播放。
示例:
代码如下:
embed src="your.mid" autostart=true
embed src="your.mid" autostart=false
2、循环播放:
语法:loop=正整数、true、false
说明:该属性规定音频或视频文件是否循环及循环次数。
属性值为正整数值时,音频或视频文件的循环次数与正整数值相同;
属性值为true时,音频或视频文件循环;
属性值为false时,音频或视频文件不循环。
示例:
代码如下:
embed src="your.mid" autostart=true loop=2
embed src="your.mid" autostart=true loop=true
embed src="your.mid" autostart=true loop=false
3、面板显示:
语法:hidden=ture、no
说明:该属性规定控制面板是否显示,默认值为no。
ture:隐藏面板;
no:显示面板。
示例:
代码如下:
embed src="your.mid" hidden=ture
embed src="your.mid" hidden=no
4、开始时间:
语法:starttime=mm:ss(分:秒)
说明:该属性规定音频或视频文件开始播放的时间。未定义则从文件开头播放。
示例:
代码如下:
embed src="your.mid" starttime="00:10"
5、音量大小:
语法:volume=0-100之间的整数
说明:该属性规定音频或视频文件的音量大小。未定义则使用系统本身的设定。
示例:
代码如下:
embed src="your.mid" volume="10"
6、容器属性:
语法:height=# width=#
说明:取值为正整数或百分数,单位为像素。该属性规定控制面板的高度和宽度。
height:控制面板的高度;
width:控制面板的宽度。
示例:
代码如下:
embed src="your.mid" height=200 width=200
7、容器单位:
语法:units=pixels、en
说明:该属性指定高和宽的单位为pixels或en。
示例:
代码如下:
embed src="your.mid" units="pixels" height=200 width=200
embed src="your.mid" units="en" height=200 width=200
8、外观设置:
语法:controls=console、smallconsole、playbutton、pausebutton、stopbutton、volumelever 说明:该属性规定控制面板的外观。默认值是console。
console:一般正常面板;
smallconsole:较小的面板;
playbutton:只显示播放按钮;
pausebutton:只显示暂停按钮;
stopbutton:只显示停止按钮;
volumelever:只显示音量调节按钮。
示例:
代码如下:
embed src="your.mid" controls=smallconsole
embed src="your.mid" controls=volumelever
9、对象名称:
语法:name=#
说明:#为对象的名称。该属性给对象取名,以便其他对象利用。
示例:
代码如下:
embed src="your.mid" name="video"
10、说明文字:
语法:title=#
说明:#为说明的文字。该属性规定音频或视频文件的说明文字。
示例:
代码如下:
embed src="your.mid" title="第一首歌"
11、前景色和背景色:
语法:palette=color|color
说明:该属性表示嵌入的音频或视频文件的前景色和背景色,第一个值为前景色,第二个值为背景色,中间用 | 隔开。color可以是RGB色(RRGGBB)也可以是颜色名,还可以是transparent (透明)。
示例:
代码如下:
embed src="your.mid" palette="red|black"
12、对齐方式:
语法:align=top、bottom、center、baseline、 left、right、texttop、middle、absmiddle、absbottom
说明:该属性规定控制面板和当前行中的对象的对齐方式。
center:控制面板居中;
left:控制面板居左;
right:控制面板居右;
top:控制面板的顶部与当前行中的最高对象的顶部对齐;
bottom:控制面板的底部与当前行中的对象的基线对齐;
baseline:控制面板的底部与文本的基线对齐;
texttop:控制面板的顶部与当前行中的最高的文字顶部对齐;
middle:控制面板的中间与当前行的基线对齐;
absmiddle:控制面板的中间与当前文本或对象的中间对齐;
absbottom:控制面板的底部与文字的底部对齐。
示例:
代码如下:
embed src="your.mid" align=top
embed src="your.mid" align=center
phpcms iframe问题
phpcms 有过滤函数的 把iframe这个标签过滤了,当有这个标签的时候就会进行HTML转义,如果你真的需要添加的话可以 把这个过滤删掉或者修改一下,不过需要修改PHP文件的,在/phpcms/libs/functions/global.func.php 这个文件里面 大约89行,你可以打开这个文件然后直接搜索iframe,然后再前面或者后面加个什么字母改变它,例如ssiframe,这样添加文章的时候就不会过滤了。
function remove_xss($string) {
$string = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S', '', $string);
$parm1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'linkss', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');