XSS原理:
XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。作为一种HTML注入攻击,XSS攻击的核心思想就是在HTML页面中注入恶意代码,而XSS采用的注入方式是非常巧妙的。在XSS攻击中,一般有三个角色参与:攻击者、目标服务器、受害者的浏览器。由于有的服务器并没有对用户的输入进行安全方面的验证,攻击者就可以很容易地通过正常的输入手段,夹带进一些恶意的HTML脚本代码。当受害者的浏览器访 问目标服务器上被注入恶意脚本的页面后,由于它对目标服务器的信任,这段恶意脚本的执行不会受到什么阻碍。而此时,攻击者的目的就已经达到了。
XSS攻击的过程:
下面我们以一段简单的JavaScript脚本为例,来描述整个XSS攻击的过程:<script>alert(document.cookie);</script>上面这段脚本的执行具体内容就是弹出一个对话框显示用户的Cookie信息。攻击者在向目标服务器的某个页面进行数据输入的过程中,通过正常的输入方式夹带进这段脚本。假如一切正常的时候,生成的页面代码如下形式:<html>…text //正常输入的数据…</html>如果用户的输入为text<script>alert(document.cookie);</script>,而目标服务器又没有对这个输入进行检验的话,则会生成如下形式的页面代码:<html>…text<script>alert(document.cookie);</script>…</html>
可以看到,这段脚本已经成功嵌入到该页面当中。当受害浏览器访问这个页面的时候,这段脚本也将被认为是页面的一部分,从而得到执行,即弹出对话框显示受害浏览器的Cookie信息。
DVWA靶场实验:
实验步骤,
第一步:判断是否存在XSS漏洞
第二步:判断是什么类型的XSS漏洞
第三步:根据不同类型的XSS漏洞去执行不同的操作,去做自己的目标操作
第一步:判断是否存在XSS漏洞
在LOW级别的XSS里面,首先是判断该目标站点是否存在XSS漏洞,这里以DVWA平台为例,
输入<script>alert('hack')</script>,得到页面结果如图所示,由此,我们可以得知,该页面没有对输入的数字,进行过滤,直接提交的数据,直接可以操作页面
第二步:判断是什么类型的XSS漏洞
由于此,再次尝试<script>alert(document.cookie)</script>,看是否,能直接获得该站点的cookie信息,基于此,判断为xss(reflect)类型的漏洞
结果即获得了对应的cookie信息,
第三步:根据不同类型的XSS漏洞去执行不同的操作,去做自己的目标操作,
<iframe src="https://www.cvedetails.com/index.php" name="iframe_a" width="1500px" height="900px"> </iframe>
<p>修改密码:<a href="www.baidu.com" target="iframe_a">MIMA.COM</a></p>
<iframe src="[输出]"></iframe>
这里我们采用
<iframe src="https://www.cvedetails.com/index.php" name="iframe_a" width="1500px" height="900px"> </iframe>
这里使用<iframe>标签即,里面嵌套一个展示的页面,
总结:
通过这个去搞,XSS的原理即如此,即向目标嵌入js脚本,这里我只以XSS(Reflected)为例,展示了基本的操作过程,有兴趣的同学可以自定义js脚本去干自己想干的事情