xss攻击实例

本文详细介绍了XSS攻击的三种类型——反射型、存储型和DOM型,阐述了其危害,包括盗取用户Cookie、控制浏览器等,并通过代码示例展示了攻击过程。同时,提出了相应的解决方案,如HTML转义、HTTPONLY标志和CSS安全编码等,旨在提高Web应用的安全性。
摘要由CSDN通过智能技术生成

Cross Site Script

攻击者利用应用程序的动态展示数据功能,在 html 页面里嵌入恶意代码。当用户浏览该页之时,这些嵌入在 html 中的恶意代码会被执行,用户浏览器被攻击者控制,从而达到攻击者的特殊目的。

1.分类

  • ?反射型跨站脚本攻击
    攻击者会通过社会工程学手段,发送一个 URL 连接给用户打开,在用户打开页面的同时,浏览器会执行页面中嵌入的恶意脚本。
  • 存储型跨站脚本攻击
    攻击者利用 web 应用程序提供的录入或修改数据功能,将数据存储到服务器或用户cookie 中,当其他用户浏览展示该数据的页面时,浏览器会执行页面中嵌入的恶意脚本。所有浏览者都会受到攻击。
  • ?DOM型跨站攻击
    由于 html 页面中,定义了一段 JS,根据用户的输入,显示一段 html 代码,攻击者可以在输入时,插入一段恶意脚本,最终展示时,会执行恶意脚本。DOM 跨站和以上两个跨站攻击的差别是, DOM 跨站是纯页面脚本的输出,只有规范使用 JAVASCRIPT,才可以防御。

2.危害

  1. 盗取用户 cookie,伪造用户身份登录。
  2. 控制用户浏览器。
  3. 结合浏览器及其插件漏洞,下载病毒木马到浏览者的计算机上执行。
  4. 衍生 URL 跳转漏洞。
  5. 让官方网站出现钓鱼页面。
  6. 蠕虫攻击

3.代码示例

  • 直接在html页面展示“用户可控数据”,将直接导致跨站脚本威胁
    • java实例,某jsp文件
while(rs.next()){
%>
<tr>
<td><%=rs.getInt("id") %></td>
<td><%=rs.getString("pname")%></td>
<td><%=rs.getString("pdesc")%></td>
<td><%=rs.getString("ptype")%></td>
</tr>
<%
}

代码中这几个加粗的变量“rs.getInt(“id”)、 rs.getString(“pname”)、rs.getString(“pdesc”)、 rs.getString(“ptype”)” ,被直接输出到了页面中,没有做任何安全过滤,一旦让用户可以输入数据,都可能导致用户浏览器把“用户可控数据”当成JS/VBS 脚本执行,或页面元素被“用户可控数据”插入的页面 HTML 代码控制,从而造成攻击。
- php实例

<tr>
<td><?=$row["id"] ?></td>
<td><?=$row["pname"]?></td>
<td><?=$row[
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值