当前位置:   article > 正文

(25)【XSS跨站合集】反射型、存储型、DOM类XSS原理;输出在HTML、CSS、Javascript代码中_xss学习xss原理,请大家利用dvwa环境复现“反射型”、“存储型”、“dom型”xss攻

xss学习xss原理,请大家利用dvwa环境复现“反射型”、“存储型”、“dom型”xss攻

目录

一、理解XSS:

1.1、介绍:

1.2、原理:

1.3、利用地方:

1.4、成功执行条件:

1.5、XSS跨站危害:

1.6、利用的过程:

第一步:先判断是否可能存在XSS漏洞

第二步:构造漏洞利于语句

二、XSS分类:

按漏洞成因:

输出点的不同:

三、漏洞成因分类

3.1、分类:

3.2、反射型XSS(非持久型):

简介:

原理:

前提:

利用过程:

3.3、存储型XSS(持久型):

简介:

原理:

利用过程:

3.4、DOM型XSS:

简介:

原理:

利用过程:

onmouseover 事件(补充):

onclick 事件(补充):

四、按输出点分类

4.1、输出在HTML标签中

4.2、输出在CSS代码中

4.3、输出在Javascript代码中


一、理解XSS:

1.1、介绍:

跨站脚本攻击,英文全称(Cross-Site Scripting),缩写为CSS(因为层叠样式表Cascading Style Sheets,缩写为CSS),所以就改为XSS了。

它也是代码注入的一种,XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。

1.2、原理:

由于服务器对用户提交的数据过滤不严,导致用户将恶意Script代码插入到Web页面的HTML代码中,并被浏览器当成了JS代码并返回给客户端执行,进而实现对了客户端的攻击

(注:XSS跨站漏洞利用不仅仅限于JavaScript语言,还包括flash等其它的脚本语言)

1.3、利用地方:

现代网站为了提高用户体验往往会包含大量的动态内容,即Web应用程序根据用户环境和需要来输出相应的内容。


经常遭受跨站脚本攻击的典型应用有:邮件、论坛、即时通信、留言板、社交平台等。

浏览器URL地址中提交了参数的地方

留言、提交表单、订单……

1.4、成功执行条件:

1、成功在web页面中插入恶意代码

2、被插入的恶意代码能够被浏览器成功执行并返回给用户

3、等待或欺骗用户去访问含有XSS漏洞的页面

1.5、XSS跨站危害:

窃取cookies

读取用户未公开的资料

模拟GET、POST请求操作用户的浏览器。使用JavaScript模拟浏览器发包

钓鱼、挂马

通过CSS,来发现用户曾经访问过的网站

劫持浏览器会话,达到执行任意操作,如非法转账、发送电子邮件等

进行大量的客户端攻击,如DDoS攻击

获取用户电脑的真实IP

重定向页面

获取键盘记录

1.6、利用的过程:

第一步:先判断是否可能存在XSS漏洞

就是进行上传一些特殊的数据字符等,查看是否上传成功(即检测是否存在过滤机制)

如果没有过滤机制,则说明可能存在XSS漏洞


第二步:构造漏洞利于语句

视情况而定,根据不同的XSS分类,进行区别对待



二、XSS分类:

按漏洞成因:

分为反射型、存储型、DOM型。


输出点的不同:

输出在HTML属性中、输出在CSS代码中、输出在JavaScript中



三、漏洞成因分类

3.1、分类:

是否存储在服务器中:反射型XSS、存储型XSS

第三类:DOM型XSS(基于DOM树)

 3.2、反射型XSS(非持久型):

【XSS跨站脚本】反射型xss(非持久型)icon-default.png?t=M7J4https://blog.csdn.net/qq_53079406/article/details/126482371?spm=1001.2014.3001.5501


3.3、存储型XSS(持久型):

【XSS跨站脚本】存储型XSS(持久型)icon-default.png?t=M7J4https://blog.csdn.net/qq_53079406/article/details/126483144?spm=1001.2014.3001.5501


 3.4、DOM型XSS:

【XSS跨站脚本】DOM型XSSicon-default.png?t=M7J4https://blog.csdn.net/qq_53079406/article/details/126486385?spm=1001.2014.3001.5501



四、按输出点分类

4.1、输出在HTML标签中

XSS攻击Payload输出在HTML属性中时,攻击者需要在闭合相应的HTML属性后注入新
属性,或者在闭合标签后直接注入新标签

eg:输入:" οnclick="alert(/xxs/)


原型:<input name="user" value="{{ your input }}"/>

输出:<input name="user" value="" οnclick="alert(/xss/)"/>


eg:输入:"><script>alert(/xss/)</script>

直接闭合input标签,注入新的script标签

输出:<input name="user" value=""><script>alert(/xss/)</script>"/>

4.2、输出在CSS代码中

XSS攻击Payload输出在CSS代码中时,攻击者需要闭合相应的CSS代码

eg:输入:#000; background-image: url('javascript:alert(/xss/)')

闭合前面的color属性,注入background-image属性


原型:

<style type="text/css">
body {
color: {{ your input }};
}
</style>


输出:

<style type="text/css">
body {
color: #000; background-image: url('javascript:alert(/xss/)');
}
</style>

4.3、输出在Javascript代码中

XSS攻击Payload输出在Javascript代码中时,攻击者需要闭合相应的Javascript代

eg:输入:'+alert(/xss/)+'

闭合前面的单引号,注入攻击代码


原型:

<script>
var name='{{ your input }}';
</script>


输出:

<script>
var name=''+alert(/xss/)+'';
</script>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/150269
推荐阅读