select %3c %3e mysql_XSS绕过姿势

XSS的利用方式

浏览器的工作原理

访问一个链接(或者刷新一个页面),首先url解码,然后是html解码,

然后是JS解码,然后是DOM渲染。

利用h5的autofocus自动获取焦点

然后用onfocus来执行获取焦点的事件

这里可以用?截断后面的引号,把引号当作参数。

上面这些可以自动弹窗。

click me                                          正常成功

click me     HTML10进制成功

click me HTML 16进制成功

click me JS unicode失败

click me                JS unicode成功

click me                          JS 16进制失败

click me                          JS 8 进制失败

浏览器中使用

1.xss中最经常用到的编码

html实体编码(10进制与16进制):

如把尖括号编码[ < ]  -----> html十进制:

javascript的八进制跟十六进制:

如把尖括号编码[ < ]  -----> js八进制:\74  js十六进制:\x3c

jsunicode编码:

如把尖括号编码[ < ]  ----->jsunicode:\u003c

url编码:

如把尖括号编码[ < ]  -----> url: %3C

base64编码:

base64: PA==

2 各个编码的具体利用场景

(1)base64编码

Data协议使用方法   data:资源类型;编码,内容

到目前为止 我遇到使用base64编码的情况 大多数是这样

在这种情况下 如果过滤了<> ' " javascript 的话 那么要xss可以这样写 然后利用base64编码!

x整条base64编码为PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==

下面三组都可行

111

a的利用方式

test

这样当test A链接点击时 就会以data协议 页面以html/text的方式解析 编码为base64然后单点击a链接时base64的编码就被还原成我们原本的

x  然后成功弹窗!

(2)html实体编码(10进制(ASCII编码)与16进制)

浏览器是不会在html标签里解析js中的那些编码的!onerror较特殊,onerror里的内容是当js解析的,因此可以用JSunicode编码,但是不能全部编码只能编码函数名。如果全部编码是会出错的,如1这种可以弹窗。

十进制和十六进制编码的分号是可以去掉的。实体编码的数字前可以加上很多的0进行绕过WAF,如

如以下代码可成功执行  p

οnerrοr="alert('xss')">

=>[空格]    :  : =>[冒号]      =>[换行

HTML5 新增的实体命名编码,如

: => [冒号]     => [换行

如click

解析器一般将工作分配给两个组件——词法分析器(有时也叫分词器)负责将输入分解为合法的符号,解析器则根据语言的语法规则分析文档结构,从而构建解析树,词法分析器知道怎么跳过空白和换行之类的无关字符。

click

首先html编码被还原出来 然后就成了换行 跟冒号

click

为什么换行后还能够执行 是因为浏览器中的解析器中词法分析器 起的作用会跳过空白跟换行之类的无效字符。换行时必须用单双号围住,否则不会跳过。跳过回车和换行,不支持on事件.

然后就构造成了一个完整的语句

click 代码成功执行

(3)Javascript编码

Javascript伪协议在属性值中都可以使用, 如111点击111后触发弹窗。

javascript中只识别几种编码:Jsunicode js8进制 js10进制

第一种情况 你输入的值存入某个变量 然后最后出现在某个能把字符串当做js代码来执行的函数里!如:

eval()  setTimeout()   setInterval()

以上都是会将字符串当做js代码执行的函数!

第二种情况

var search = "可控点";

document.getElementById().innerHTML=search;

以上情况很多都是出现在你搜索后 然后显示的 你所查询的关键字

如果过滤了 <> ' " & % 等等这些!然后再输出到页面上!

按理说这样是安全了&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值