《Web应用安全与防护》课件 项目9:XSS漏洞利用与防护.pptx
项目9:XSS漏洞利用与防护
项目目标知识目标:1.了解xss漏洞的基本概念、分类2.理解xss漏洞的测试流程3.掌握xss漏洞的利用与加固能力目标:1.能利用xss漏洞获取用户信息,并能够防护与加固该漏洞情感目标:1.自主、开放的学习能力2.良好的自我表现、与人沟通能力3.良好的团队合作精神
1.跨站脚本xss概述1.1跨站脚本xss漏洞(1)跨站脚本攻击(Cross-SiteScripting)简称为“CSS”,为避免与前端叠成样式表的缩写“CSS”冲突,故又称XSS。使用字母X,而且更贴切的反应这是一种恶意攻击技术。(2)XSS漏洞一直被评估为web漏洞中危害较大的漏洞,发生在前端浏览器端的漏洞,其危害的对象也是前端用户。在OWASPTOP10的排名中一直属于前三的江湖地位。
1.跨站脚本xss概述1.2xss漏洞危害1、钓鱼欺骗?2、网站挂马?3、身份盗用?4、盗取网站用户信息?5、垃圾信息发送?6、劫持用户Web行为?7、XSS蠕虫……新浪微博的XSS攻击(2011年6月28日),新浪微博出现了一次比较大的XSS攻击事件。大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!范冰冰艳照真流出了”等等微博和私信,并自动关注一位名为hellosamy的用户。
1.跨站脚本xss概述1.3xss漏洞形成原因形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符(javascript)输出在前端时被浏览器当作有效代码解析执行从而产生危害。输入输出
1.跨站脚本xss概述1.4xss漏洞分类也称非持久型,这种类型的跨站脚本最为常见。主要用法是将恶意脚本附加到URL地址参数中,通常出现在网站查询类页面,比如搜索栏、用户登入口等地方,常用来窃取客户端cookies或进行钓鱼欺骗。交互的数据一般不会被存在数据库里面,一次性,所见即所得。(1)反射型xss:(2)存储型xss:(3)DOM型xss:
1.跨站脚本xss概述1.4xss漏洞分类也称持久型xss,攻击者直接将恶意js代码上传或者存储到服务器中,只要受害者浏览包含恶意javascript代码的页面就会执行恶意代码。持久型一般出现在网站的留言板,注册页面,评论或博客日志交互处。(2)存储型xss:
1.跨站脚本xss概述1.4xss漏洞分类不予后台服务器产生数据交换,是一种通过DOM操作前端代码输出的时候产生的问题,一次型也属于反射型。参考资料:(3)DOM型xss:
1.跨站脚本xss概述1.5xss漏洞攻击流程
1.跨站脚本xss概述1.6xss漏洞测试流程Step1:在目标站点上找到输入点,比如查询接口,留言板等Step2:输入一组“特殊字符+唯一识别字符“,点击提交后,查看返回的源码,是否有做对应的处理Step3:通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合)Step4:提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行,则说明存在xss漏洞。
2.跨站脚本xss漏洞利用实验演示:1.反射型xss漏洞2.存储型xss漏洞3.get型xss获取用户cookie4.post型xss获取用户cookie5.xss钓鱼攻击6.xss获取键盘记录7.beef-xss工具使用
3.跨站脚本xss漏洞防御xss常见的防御措施总的原则是:输入做过滤,输出做转义过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字。转义:所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义(html编码),输入到js面的进行js转义。
小结Xss漏洞的概念、分类、测试流程等Xss漏洞的利用Xss漏洞的加固
作业利用pikachu漏洞平台实现:get型xss获取用户cookiepost型xss获取用户cookiexss钓鱼攻击xss获取键盘记录利用beef-xss工具,获取网站结构