1 XSS简介
通常指黑客通过html注入篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。
分类:
反射型XSS 只是简单的把用户输入的数据反射给浏览器,攻击者事先做好链接,诱惑用户点触。
存储型XSS 会把用户输入的数据存储在服务器端,代码存储在服务器,具有较强稳定性。
DOM BASED XSS 通过修改页面的dom节点形成的XSS。
2.1 XSS攻击进阶之初探XSS Payload
首先xss payload 实质就是javascript
一个最常见的xss payload,就是通过读取浏览器的cookie对象,从而发起“cookie劫持”攻击,进而直接登陆进用户账户。
后来出现的cookie 中的HttpOnly标识可以防止cookie劫持。另外将cookie与客户端IP绑定,也可以解决呦!
2.2攻击进阶之强大的XSS Payload
1构造Get 与Post 请求
攻击者可以通过插入一张图片来发起一个Get请求
还可以通过JavaScript发出一个post请求:方法一:构造一个form表单,然后自动提取这个表单
方法二:通过XMLHttpRequest发送一个post请求
(举例:xss payload 读取Qmail用户的邮件文件夹,xss payload 的思路就是先获取到sid的值,然后录取构造完整的URL,并使用xmlhttprequest请求此URL,应该就能够得到邮件列表了。)
2.3攻击进阶之XSS钓鱼
前面的攻击过程都是自动进行的,缺少了用户交互的过程。下面有两个交互的行为。
验证码行为,攻击者可以在远程后台接受当前的验证码。
修改密码的行为,钓鱼思路,利用JavaScript在当前页面伪造一个登录框,用户输入后,信息发送到黑客的服务器。
2.4攻击进阶之识别用户浏览器
最直接的莫过于通过XSS读取浏览器的UserAgent对象。
后来因为上面的useragent可以伪造,利用不同浏览器之间的差异编写代码识别即可啦!
2.5攻击进阶之识别用户安装的软件
在IE中,可以通过判断active控件的classid是否存在,来推测用户是否安装了该软件。
一些三方软件会泄露信息,如flash的system.capabilities 对象,能够查询客户端电脑的硬件信息。
浏览器的扩展和插件也能被xsspayload扫描出来。
2.6 CSS History Hack
之前通过css,来发现一个用户曾经访问的网站,后来Firefox修复了这个暴露用户隐私的问题。
2.7获取用户的真实IP地址
很多时候,用户电脑使用了代理服务器,或者在局域网中隐藏在NAT后面,网站看到的客户端Ip地址,是内网的出口IP地址,并非用户电脑真实的本地IP地址。
此时,若客户端安装了java环境,那么XSS就可以通过调用JavaApplet的接口获取客户端的本地地址。
网友评论