之前一直都是做的Android客户端安全,也发现了一些安全问题。但后来,渐渐觉得Android App层安全,尤其是偏上层的安全,往往利用条件比较鸡肋,即使是危害比较大的漏洞。所以从今天起,基本放弃App层上层漏洞挖掘工作,后面像两个方向发展,一是Android App的逆向和加固技术,二是web安全。先从web安全开始!本篇记录XSS基础知识学习过程。
一、XSS分类
XSS漏洞分成三类,反射型XSS,存储型XSS以及基于DOM的XSS。
1. 反射型XSS
反射型XSS的一个重要特征是需要用户上钩,也就是需要诱骗用户访问URL。反射型XSS:用户在某个输入中,或者某个执行操作常用一个变量,其后,这个变量被html作为节点值加载。并且,程序没有对那个输出值做有限过滤,这样当出入的是js脚本时,脚本被执行。
反射型XSS实施步骤(参照了《黑客攻防技术宝典web实战篇第二版》):
(1)用户登录正常登陆应用程序,比如www.test.com;
(2)攻击者构造链接发送给用户,含载荷(payload),比如www.tes.com/xxx/?msg=<script>js for another website</script>;
(3)用户点击URl;
(4)服务响应,响应中包含XSS利用的js代码;
(5)用户浏览器执行js代码;
(6) 想攻击这回传会话令牌等。
主要用途:恶意js代码执行,回话令牌窃取等。
一个问题:反射型XSS需要用户触发,即需要用户主动点击某个链接发送URL请求,为何不直接利用钓鱼等手段而是利用XSS漏洞?
答:浏览器同源限制,不同网站之间不能互相访问数据却可以传递js脚本,所以利用XS