存储型XXS介绍
概念
存储型XSS是指应用程序通过Web请求获取不可信赖的数据,并且在未检验数据是否存在XSS代码的情况下,将其存入数据库。当程序下一次从数据库中获取该数据时,致使页面再次执行XSS代码。存储型XSS可以持续攻击用户,在用户提交了包含XSS代码的数据存储到数据库后,每当用户在浏览网页查询对应数据库中的数据时,那些包含XSS代码的数据就会在服务器解析并加载,当浏览器读到XSS代码后,会当做正常的HTML和JS解析并执行,于是发生存储型XSS攻击。
什么是XXS代码?
加载完毕自动触发事件:
使html某元素撑满整个页面:
增加属性触发事件(使用这个 页面一直弹弹窗,关闭不了):
在iframe标签中使用Data URI scheme直接嵌入文本:
常见案例
1、通过执行代码查询到对应的数据,未做任何处理直接进行展示:<%=data%>此处的data可能包含XXS代码。
2、在页面中直接通过el表达式:${data}、${data.name}都是存在安全漏掉的。
你如":下面ISPt设的能根据一个已知用广难()从属+询出该用的经名,示SP面上
.Statementstmt-conn.createStatementQ;
ResultSetrsStmt.executeQueryselectmurshiStringaddress-null?if(rs!null)rsnexti;
address-rsgetstringCaddress:%>家庭地址:<%-address%>如:d地esg值出用担的,入数用没有业行合到的做验,那么者可以上面的代摄业行型S
反射型XXS介绍
概念
反射型XSS是指应用程序通过Web请求获取不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户。反射型XSS一般可以由攻击者构造带有恶意代码参数的URL来实现,在构造的URL地址被打开后,其中包含的恶意代码参数被浏览器解析和执行。这种攻击的特点是非持久化,必须用户点击包含恶意代码参数的链接时才会触发。
常见案例
下面JSP代码片段的功能是从HTTP请求中读取输入的用户名(username)并显示到页面。
请求:http://www.xxxx.com/user?username=
XXS漏洞修复建议
修复建议
为了避免XSS攻击,建议采用以下方式进行防御:
1、对从数据库或其它后端数据存储获取不可信赖的数据进行合理验证(如年龄只能是数字),对特殊字符(如`<、>、'、"``
青锋开源产品
功能非常的多,开源多套系统,多个版本的内容,需要源码的朋友码云搜索青锋。或者私信留【V】。期待与您的一起交流。
开源产品包括且不限于:springboot、springcloud、vue、react、layui等等