零:名词解释
XSS:跨站脚本攻击
COOKIES:用户的凭据,通过凭据可以判定对方身份信息,保存到本地
PHPSESSID:和php网页会话后,建立的会话SESSION ID,保存到服务端
HttpOnly:HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险(如果浏览器支持的话)
通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。
一:原理
XSS(Cross Site Scripting)是一种常见的Web应用程序安全漏洞,其原理在于攻击者通过在网页中插入恶意的脚本代码(通常为JavaScript),当用户浏览该网页时,这些嵌入的脚本代码会被执行,从而实现攻击者的恶意目的。
二:分类
XSS分类:反射性、存储型、DOM型
1.反射性XSS:
三:平台以及工具
1.XSS平台
2.XSS工具
beef-xss
应对webshell箱子:从kali终端执行beef-xss,之后浏览器url输入kali的ip/ui/authentication.账号密码就是beef;beef.
其中,Example是xss语句
xsslabs
https://github.com/do0dl3/xss-labs
xss.haozi.me
4.XSS搭建自己的平台
https://zhuanlan.zhihu.com/p/390067540
四:绕过
1.HTTP ONLY
1、什么是http-only?
HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险(如果浏览器支持的话)
通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。
2、这个是干什么用的?其他相关点!
大多数XSS攻击都是针对会话cookie的盗窃。后端服务器可以通过在其创建的cookie上设置HttpOnly标志来帮助缓解此问题,这表明该cookie在客户端上不可访问。
如果支持HttpOnly的浏览器检测到包含HttpOnly标志的cookie,并且客户端脚本代码尝试读取该cookie,则浏览器将返回一个空字符串作为结果。这会通过阻止恶意代码(通常是XSS)将数据发送到攻击者的网站来使攻击失败。
3、绕过http only:
浏览器未保存账号密码值:需要XSS产生登录地址,利用表单劫持
浏览器保存账号密码值:产生在后台的XSS,储存型XSS,如留言等,浏览器读取账号密码
五:修复
xsslabs2:双引号过滤 "><script>alert(1)</script>
xsslabs3:过滤<>和"" 前提有表单 " οnclick="alert(1)
xsslabs5:关键字替换如on->o_n 1.在前端删除o_n中的_
2.添加一个html语句超链接 "><a href='javascript:alert(1)'>
xsslabs6:大小写过滤 把on换成ON
xsslabs6:双写on绕过
xsslabs8:&#xxxxx编码绕过
xsslabs9:php中//注释后面内容
xsslabs10:&t_sort="type="text" οnclick="alert(1)"