跨站脚本攻击XSS

跨站脚本攻击与SQL注入攻击区别在于XSS主要影响的是客户端安全,SQL注入主要影响Web服务器安全。前端

 

1、反射式XSSweb

非持久型、参数型跨站脚本,主要用于将恶意脚本附加到URL地址的参数中。正则表达式

  1. low:安全

    服务器端核心代码:服务器


    观察到并无对name进行任何的过滤操做,xss

    那么输入<script>alert(123456)</script>观察到弹窗。函数


     

  2. Medium:3d


    看到有一个 $name = str_replace( '<script>', '', $_GET[ 'name' ] );blog

    这个函数将字符“<script>”换为NULL,那么因为函数只执行一次,有多种方法能够绕过。事件

    好比将这个标签双写绕过,可是只能过滤一次,就达成了咱们的目的。

    好比:<sc<script>ript>alert(123456)</script>


    或者使用大小写混淆的方法。

    <Script>alert(123456)</script>

     

  3. High:


    观察到使用了正则表达式来过滤:

    preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i'

    那么咱们就不能使用大小写绕过和重写的方法来绕过了。

    虽然没法使用<script>标签注入XSS代码,可是能够经过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。这样就会避免出现<script>标签被正则表达式匹配到。

    咱们可使用如下:

    <img src=" " onerror=alert('xss')>

    (由于src无咱们就能够将其路径设置为null)

     

  4. Impossible:

 

2、存储式XSS

持久型跨站脚本,更具威胁性,而且可能影响到web服务器自身的安全。XSS一般用于发动Cookie窃取、恶意软件传播(蠕虫攻击)、会话劫持、恶意重定向等。存储式XSS会保存在服务器上,有可能会跨页面存在,它不改变页面URL的原有结构,因此有时候还能逃过一些IDS检测。

从攻击过程来讲,反射式XSS通常要求攻击者诱使用户单击一个包含XSS代码的URL连接;而存储式XSS则只需让用户查看一个URL连接,这个连接中存储了一个脚本。

  1. low

    输入有限制,修改前端最大长度后插入<script>alert(123456)</script> 语句xss


     

  2. Medium

    仍是加一个<script>标签过滤,可使用上述方法进行绕过(重写或者大小写绕过)

    使用<Script>alert(/xss/)</Script>绕过:


     

  3. High

    一样正则过滤,使用

    <img src=1 οnerrοr=alert(/XSS/)>

     

  4. Impossible

相关文章
相关标签/搜索