Upload
wattan
View
36
Download
0
Embed Size (px)
DESCRIPTION
前端顽疾. xss 漏洞分析与解决. 顽疾的诊断 ---- 认清危害. 1 、 XSS 漏洞的危害并不因为页面访问量不高而减少。 2 、 XSS 漏洞等于获得了页面的最高管理权限 3 、 XSS 漏洞无需入侵服务器因而有较高的隐密性 4 、 XSS 漏洞扫描通过不代表就没有 XSS 漏洞 5 、后台 CGI 逐渐成为 XSS 攻击主要目标 备注:黑客攻击手段很多, XSS 主要被用于欺骗用户信任,一旦跳转到黑客页面用户的安全则得不到保障。. 顽疾的诊断 ---- 了解漏洞原理 1. 非持久性 XSS 攻击. 顽疾的诊断 ---- 了解漏洞原理 2. - PowerPoint PPT Presentation
Citation preview
前端顽疾xss 漏洞分析与解决
顽疾的诊断 ----认清危害
1 、 XSS 漏洞的危害并不因为页面访问量不高而减少。
2 、 XSS 漏洞等于获得了页面的最高管理权限
3 、 XSS 漏洞无需入侵服务器因而有较高的隐密性
4 、 XSS 漏洞扫描通过不代表就没有 XSS 漏洞
5 、后台 CGI 逐渐成为 XSS 攻击主要目标
备注:黑客攻击手段很多, XSS 主要被用于欺骗用户信任,一旦跳转到黑客页面用户的安全则得不到保障。
顽疾的诊断 ----了解漏洞原理 1
非持久性 XSS 攻击
顽疾的诊断 ----了解漏洞原理 2
持久性 XSS 攻击
顽疾的诊断 ----案例分析 1
http://member1.taobao.com/member/loginByIm.do?&errurl=http://www.koubei.com/export/cate/getstorecardhtml.html?callback=%3Cscript%3Elocation.href='http://gw.afufwtoin.com/a.taobao.com/tb1.asp?idc=7095';%3C%2Fscript%3E 攻击代码: %3Cscript%3Elocation.href='http://gw.afufwtoin.com/a.taobao.com/tb1.asp?idc=7095';%3C%2Fscript%3E
顽疾的诊断 ----案例分析 2
1 、 http://product.tech.qq.com/simp_search.php?locationid=1&subcatid=27&manuid=0&keyword=</script><script>alert(42)</script>&bgcolor=ffffff&status=1
2 、 http://t.qq.com/p/worldcup?g=1"><script>alert(document.domain)</script>
3 、 http://t.qq.com/p/city?s=44&c=3"><script>alert(1)</script><"
4 、 http://help.paipai.com/mutually_help_null.shtml?query=%3Cscript%3Ealert%281%29%3C/script%3E
信息来源: http://wooyun.org/corps/%E8%85%BE%E8%AE%AF
顽疾的治疗 ----了解 js的执行环境
• document.write “<script>alert('xss')</script>”;o innerHTML= "<script>alert('xss')</script>" 不执行o 明文出现的 "</script>" 将结束 "<script>", 哪怕是在字符串中。
• html 标签的 onload , onerror , onchange……o on load 中间加入空白字符、特殊字符、换行符依然能
够被识别为 onloado JaVaScRiPt 大小写一样能够被执行o j ,  等 UTF-8 字符也可以被转义后
执行• css expression• link , img , style 引入非 JS 后缀的 js 文件
顽疾的治疗 ----层层过滤
• 接收参数时:过滤危险代码、限定可处理参数范围• 前台提交前:过滤危险代码、对 HTML 进行转义• 后台接受后:过滤危险代码、对 HTML 进行转义• 后台输出前:过滤危险代码、过滤自定义回调函数名• 前台输出前:过滤危险代码、避免使用 document.write • 反跳页面:只对可信域和白名单进行跳转
顽疾的治疗 ----对症下药
URL 参数 :不应该带有任何可执行代码,因而强制过滤关键字,对其中符号“ +” 、“ -” 、“ <” 、“ >” 、“ '” 、“ "” 、“ /” 、“ &” 、“ $” 进行转义: encodeURIComponent()说明:escape() 不编码的字符: @*/+encodeURI() 不编码的字符: ~!@&;*()=:/,;?+''encodeURIComponent() 不编码的字符: ~!*()''
顽疾的治疗 ----对症下药
自定义回调函数名:作为 JS 自定义回调函数名,只应该包含 英文、数字、符号:“ .” 、“ _” ,其余皆为非法字符应予以过滤。
说明:&callback=window.callback1&callback=window.spuInfoCB&callback=</script><script>alert('xss')</script>
顽疾的治疗 ----对症下药
HTML 代码过滤:所有符号应转化为 HTML 字符实体
说明:显示结果 描述 实体名称 实体编号 空格  
< 小于号 < <
> 大于号 > >
& 和号 & &
" 引号 " "
/ 斜杠 /
顽疾的治疗 ----对症下药
范例:后台数据:{ nickName:"<u> 昊 </u>", uin:"316448"}模板 :<div> <p>{#nickName#}</p> <p>{#uin#}</p></div>
顽疾的治疗 ----对症下药
后台数据:{ nickName:"<u> 昊 </u>", uin:"316448"}
转化后:{ nickName:"<u> 昊 </u>", uin:"316448"}
顽疾的预防 ----警惕疫区
• 搜索关键词• 用户昵称• 富文本编辑器• url 跳转• cgi 自定义回调函数
XSS 测试用例分析
http://ha.ckers.org/xss.html
参考资料
安全漏洞http://wooyun.org/corps/%E8%85%BE%E8%AE%AF
XSS 测试用例http://ha.ckers.org/xss.html
HTML 实体表http://www.w3schools.com/cn/tags/ref_entities.asp