XSS攻击
跨站脚本攻击xss全称为: Cross Site Scripting, 缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。
XSS攻击通常指的是通过利用网页开发时留下的漏洞,攻击者通过巧妙的方法注入恶意指令代码到网页,当用户浏览网页时, 恶意代码会被加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JS,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
xss漏洞关键就是寻找参数未过滤的输出函数。
常见的输出函数有: echo printf print print_r sprintf die var-dump var_export
类型
从攻击代码的工作方式可以分为三个类型:
(1)反射型xss (非持久型):
攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的 页面和内容),一般容易出现在搜索页面。
(2)存储型xss (持久型):
代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不 严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)
(3)DOM跨站:DOM(document object model文档对象模型):
客户端脚本处理逻辑导致的安全问题。基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。
实战
话不多说, 直接通过实战来理解
目标为 webug4.0反射型xss的靶场:
仔细观察, 发现有id有在网页输出的地方, 尝试修改id值,
果然如此, 初步判断有反射型xss漏洞
尝试js脚本弹窗注入: <script>alert("You are attacked!")</script>
假设成立!
接下来开始获取cookie: <script>alert(document.cookie)</script>
got it !!
参考: