web渗透测试-从入门到放弃-04XSS漏洞

XSS(跨站脚本)概述

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

从一个基础的反射性xss来认识xss漏洞

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQgbA5A2-1572275883662)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572273746610.png)]我们首先在这个输入点输入一些特殊的字符:’"<>6666,用于测试我们输入的特殊字符是否又被过滤掉,再验证输入的是否被输出,特殊字符是否有被处理或者转义。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qp2IVfOj-1572275883664)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572273848311.png)]发现我们的输入都被直接输出了,我们再来查看下页面的源码,右键查看页面源代码,按下ctrl+f,对刚刚输入的’"<>6666进行搜索。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BDTDE2Be-1572275883666)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572273928670.png)]可以看到,我们刚刚输入的特殊字符原封不动的输出到了p标签中,那如果我们输入了一些正确js代码,它是否也会原封不动的返回回来呢?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dc16W3Fs-1572275883667)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572274062151.png)]然后发现输入到这个地方的时候,就输入不进去了,一般来说,很多前端会对输入的长度做一个限制,但是这些再前端的操作并不能起到真正的效果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ky99UJ3J-1572275883668)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572274314772.png)]这里我们点击框框,右键查看元素,这里我们可以看到,这个maxlength,我们把它修改为2000,然后我们发现可以继续输入了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pgQxDSma-1572275883669)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572274483752.png)]我们点提交
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-71EZWIAC-1572275883669)(C:\Users\嘻嘻嘻\AppData\Roaming\Typora\typora-user-images\1572274584272.png)]然后我们发现,我们的输入的js代码,在输出时直接被执行了,按照我们的预期,弹出了1.
在这里插入图片描述

形成的原因:

$html='';
if(isset($_GET['submit'])){
    if(empty($_GET['message'])){
        $html.="<p class='notice'>输入'kobe'试试-_-</p>";
    }else{
        if($_GET['message']=='kobe'){
            $html.="<p class='notice'>愿你和{$_GET['message']}一样,永远年轻,永远热血沸腾!</p><img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/kobe.png' />";
        }else{
            $html.="<p class='notice'>who is {$_GET['message']},i don't care!</p>";
        }
    }
}

后端对整个输入和输出,这个过程都没有做一个对应的防xss处理,这个形成了这个反射型的xss漏洞。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值