/****
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
(摘自pikachu)
存储型XSS也好,反射型XSS也罢。xss的本质问题就是让对方浏览器执行你插 入的JavaScript!
*****/
一、反射型XSS(get)
提交代码 <script>alert(1);</script> 反弹出窗口,植入成功。提交代码长度设限制,fn➕f12修改长度限制。
二、反射型XSS(post)
先暴力破解用户名和密码,之后步骤同上
三、存储型XSS
留言板提交<script>alert(1);</script>
//存储型只要提交过一次之后,该漏洞脚本会一直存在,只要submmit,机会出现弹窗,直到删除存储//
四、DOM型XSS
/***DOM它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。***/
(1)fn➕f12查看html,随便输入一个东西,看到html中有一行将我们的输入通过js写入,因此将该代码段闭合即可。但第一次使用常规将其闭合没有出现弹窗,不知道为什么。
(2)换另一种闭合思路,闭合<a>标签,然后在上一级嵌入<img src>标签,成功弹窗。
'> <img src="" onerror=alert(1)>
五、DOM型XSS-X
和上一个差不多,只是这次代码段需要在url中看到,从代码中能看到,点击“有些费尽心机......”可以调用上面的domxss函数。
因此需要闭合domxss函数中的"<a href='"+xss+"'>然后写入,写入后点击“有些费尽心机......”成功弹窗。
'><img src="" onerror=alert(1)>
六、xss盲打
/***
默认情况下一般是在原域名后面直接加admin/就可以进入后台的登陆页面;
打开后台的目录,里面可以找到后台登陆的页面,一般是admin_login.asp,也有login.asp,或者admin.asp。
该网站是admin_login.php
****/
受到攻击后前段不会有显示,但后台已经受到攻击,可登录后台查看
七、xss过滤
某些字符被转移,查看转义字符想办法绕过,这里采用大写绕过,成功弹窗
<SCRIPT>alert(1);</SCRIPT>
八、xss之htmlspecialchars
/*****
***/
htmlspecialchars默认不对'处理,那么我们就可以构造不包含<>等可以被处理的payload
' onclick=alert(1)>'
九、xss之href输出
/***
输入一些内容,发现他被写在了a标签里,关于a标签一个特性:
输出在a标签的href属性里面,可以使用javascript协议来执行js
***/
javascript:alert(1);
十、xss之js输出
/***
js输出漏洞:
输出点是在javaScript,通过用户的输入动态的生成JavaScript代码
javaScript里面是不会对tag和字符实体进行解释的,所以正常的输入得不到正常的输出,这不是我们需要的,所以,如果需要进行处理,就进行JavaScript转义处理,也就是用\ 对特殊字符进行处理。
————————————————
版权声明:本文为CSDN博主「老-男孩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43814486/article/details/89855663
***/
输入111测试,查看源代码发现被写入<script>标签里,想办法闭合 标签再写入
fine'</script><script>alert(1);</script>
///查看源代码发现彩蛋,输入tmac: