xss学习笔记1 反射型XSSReflected Cross Site Scripting

在学习xss,推荐一本红书《XSS跨站脚本攻击剖析与防御(完整版)》,这个有钱的自己买,没钱的pdf  ,看完了就差实践了,谢谢诶

先从DVWA的xss开始学习吧,网上学习xss的少,起码比sql少

等级先调成low

Username:admin      Security Level:low     PHPIDS:disabled

Reflected Cross Site Scripting (XSS) --low

这里没有进行过滤任何参数,直接引用了name参数,输入

<script>alert(xss)</script>弹窗爆出xss.


Medium

`$name = str_replace('<script>'', $_GET['name'] );`

这里过滤了<script> ,采用了黑名单的方式,这里学过sql绕过的筒子应该知道的,所以可以用双写,或者大小写绕过啊

<Script>alert(/xss/)<sCript>  大小写可以是随机的

或者<s<script>cript>alert(/xss/)</sc</script>ript> 双写的位子也可以是随机的,学过绕过的应该都知道,我就不说了。

High

`$name=preg_replace('/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i','',$_GET['name'] );` 这里用正则过滤了会出现<script>的每个单词,就是说大小写和双写没用了,但是由于它只过滤了<script>还可以用其他的js标签来弹窗,比如 img的onerror报错,<img src=1 onerror=alert(xss)>    onerror指的是在找不到指定图片或者网速贼慢的时候执行的另一个事件,通过一个错误的图片让弹窗执行即可

<body onload=alert(xss)> 同理 在页面加载之后立即执行一段 JavaScript

Impossible

`$name = htmlspecialchars( $_GET['name'] );`

在Impossible里面用了htmlspecialchars把预定义的字符&、”、’、<、>转换为HTML实体,也就是说不能用作html元素了,这样就不能构造代码了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容