本文目录一览:
- 1、有什么 绕过 htmlentities 进行 xss 攻击的方法吗
- 2、如何xss攻击输入经过html编码的网站
- 3、XSS 攻击时怎么绕过 htmlspecialchars 函数
- 4、怎么使用htmlspecialchars避免XSS
有什么 绕过 htmlentities 进行 xss 攻击的方法吗
函数:htmlentities(string,quotestyle,character-set)
参数二是可选的。
规定如何编码单引号和双引号。
ENT_COMPAT - 默认。仅编码双引号或不成对的单引号。
ENT_QUOTES - 编码双引号和单引号。
ENT_NOQUOTES - 不编码任何引号。
参数三也可选的,是转换的字符集类型。
有这么一种情形:当我们使用这个函数的时候,使用了参数二。设置了过滤掉双引号很单引号这些东西(或许不编码)就容易出现XSS。
如:
?php
echo htmlspecialchars($_GET[url], ENT_QUOTES);
?
替换掉url里面的单引号和双引号,看起来是过滤的不错的,但是如果这个url没有出现单引号或双引号呢?或者双引号和单引号以另外的情况出现呢(二次编码)?
关于二次编码:
scriptalert(document.cookie)/script
如UTF-7编码后的
+ADw-SCRIPT+AD4-alert(document.cookie)+ADw-/SCRIPT+AD4-
最终为:
%2bADw-SCRIPT%2bAD4-alert(document.cookie)%2bADw-%2fSCRIPT%2bAD4-
可以考虑用于对付那些没有设置字符集,并且过滤了 的情况。
如何xss攻击输入经过html编码的网站
div id="main" h1HTML Injection - Reflected (POST)/h1 pEnter your first and last name:/p form action="/bWAPP/htmli_post.php" method="POST" plabel for="firstname"First name:/labelbr / input type="text" id="firstname" name="firstname"/p plabel for="lastname"Last name:/labelbr / input type="text" id="lastname" name="lastname"/p button type="submit" name="form" value="submit"Go/button /form br / Welcome 1234scriptalert(123)/script 123456/div
XSS 攻击时怎么绕过 htmlspecialchars 函数
绕 所谓绕挑程序员忘记确转码手 注意并非htmlspecialchars万事吉同需要同转码所所谓绕htmlspecialchars能指漏洞点用htmlspecialchars转码压根确
怎么使用htmlspecialchars避免XSS
在PHP服务器端,对POST过来的值,进行实体化.用函数htmlspecialchars()进行过滤一下就可以了.
例如:
$name = htmlspecialchars($_POST['name']);