XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施

XSS盲打演示和讲解

当只有后台会看到前端输入的内容而前端无法判断是否存在XSS时,我们可以插入XSS代码。这个时候由于后端的安全考虑往往不会很严格,所以当管理员登陆的时候就会被X。
在pikachu上具体的实验演示;
1.在XSS盲打模块根据前端的提示输入相关信息,发现输入的信息只会反馈给后台,在前端无法显示。这里就可以不管别的直接输入跨站脚本的内容
例如:进行尝试。
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第1张图片
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第2张图片
2.虽然前端没有任何的反馈,但是可以通过pikachu’站点的提示以管理员身份登陆后台,发现出现弹窗。攻击成功。
本质:XSS的存储性质,较为危险。

XSS绕过思路讲解和案例演示

一.xss绕过-过滤-转换
0,前端限制绕过,直接抓包重放,或者修改html前端代码
1,大小写 例如:
2,拼凑:pt>alert(111)pt>
3,使用注释进行干扰:pt>alert(111) ript>
二.xss绕过-过滤-编码
核心思路:后台过滤了特殊字符,比如
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第3张图片
点击提交后发现成功弹窗。这就表明绕过成功了。

XSS绕过关于htmlspecialchars()函数

htmlspecialchars()函数把预定义的字符转换为HTML实体。
预定义的字符是:
&(和号)成为&
“(双引号)成为"
‘(单引号)成为'
<(小于)成为< >( 大于)成为>
可用引导类型:
ENT_COMPAT-默认。仅编码双引号
ENT_QUOTES-编码双引号和单引号
ENT_NOQUO0TES-不编码任何引导
在pikachu XSS-specialchars的项目中进行实际的演示:
1.输入1111’”<>&点击提交
2.查看页面源码,
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第4张图片可以看到输出点在a标签的href中,而唯独单引号没有被实体编码,可见这里用了默认的htmlspecialchars进行后台的过滤。构造payload:q'onclick='alert(1111)'
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第5张图片点击后成功弹窗

XSS常见防范措施:

总的原则:输入做过滤,输出做转义
过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号码式的数字。
专义:所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面进行js转义。
在pikachu环境进行实际的演示操作:
1.在href输出点输入javascript:alert(1111)进行尝试点击会进行弹窗。
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第6张图片
查看源代码根据提示可知,在进行XSS防御的时候只使用htmlspecialchars是不够的,同时在href中需要只允许http和https开头的协议。
XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第7张图片
2.在js输出点随便输入11111进行尝试查看页面源码可知:输入内容被放到了js中。这就可以进行闭合的构造。XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施_第8张图片
输入构造的闭合:111'成功弹窗。

你可能感兴趣的:(XSS盲打演示和讲解;XSS绕过思路讲解和案例演示;XSS绕过关于htmlspecialchars()函数;XSS常见防范措施)