Pikachu–XSS

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写”CSS”冲突,故又称XSS。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
   输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
   输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
XSS相关介绍:Cross-Site Scripting(XSS)简介 – kabibo – 博客园 (cnblogs.com)

反射型XSS(get)

反射型XSS
修改最大输入字符

尝试输入<script>alert(1)</script>,发现字符受限,解决方法:

1直接在url地址栏中输入?message= <script>alert(1)</script> &submit=submit

2在前端更改输入限制

修改maxlength

反射型XSS(post)

登录后直接输入<script>alert(1)</script>

存储型XSS

直接输入 <script>alert(1)</script>

DOM型XSS

输入 <script>alert(1)</script> 检查元素发现不行

利用 ‘ 现将href闭合(我猜的),利用 onclick进行弹窗

输入 ‘ onclick=”alert(‘521’)”

也可以输入’#’ onclick=”alert(‘521’)”

DOM型XSS-X

随便输点什么,检查下元素

和上面的那个类似,直接输 ‘ onclick=”alert(‘xss’)” (与上面那个不同这个会在url里显示)

也可以输入’#’ onclick=”alert(‘521’)”

XSS之盲打

用户界面
后台界面

尝试直接利用<script>alert()<script>

test

XSS之过滤

大小写过滤

输入<SCRIPT>alert()</SCRIPT>

输入测试

XSS之htmlspecialchars

什么是 htmlspecialchars

把预定义的字符 “<” (小于)和 “>” (大于)转换为 HTML 实体:

详见PHP htmlspecialchars() 函数 (w3school.com.cn)

直接用’ onclick=”alert(‘1’)”

XSS之href输出

输入https://www.baidu.com测试

直接用javascript:alert(1)

XSS之输出

查看下源代码

发现输出是由<script>(不知道这么说对不对)

尝试 </script> <script> alert(1)</script>输入闭合(外面的<script>不能直接复制到WordPress?!)

总结

对于html语言不熟 js 不熟

上一篇
下一篇