白帽子挖洞—跨站脚本攻击(XSS)篇

白帽子挖洞—跨站脚本攻击(XSS)篇_第1张图片

点击“合天智汇”关注,学习网安干货

0x00 介绍

跨站脚本(Cross-site scripting,简称XSS),是一种迫使Web站点回显可执行代码的攻击技术,而这些可执行代码由攻击者提供、最终为用户浏览器加载。不同于大多数攻击(一般只涉及攻击者和受害者),XSS涉及到三方,即攻击者、客户端与网站。XSS的攻击目标是为了盗取客户端的cookie或者其他网站用于识别客户端身份的敏感信息。获取到合法用户的信息后,攻击者甚至可以假冒最终用户与网站进行交互。

XSS漏洞成因是由于动态网页的Web应用对用户提交请求参数未做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是“>”、“<”),然后未加编码地输出到第三方用户的浏览器,这些攻击者恶意提交代码会被受害用户的浏览器解释执行。

对于初学者而言,找漏洞最好是基于白盒审计进行,所谓白盒审计可以简单地理解为就是看着代码找漏洞,那么在正式挖洞前,我们先看看开源的DVWA给出的四种级别的XSS的源代码。

0x01 基于dvwa的代码审计

DVWA 的代码分为四种安全级别:Low,Medium,High,Impossible。初学者可以通过比较四种级别的代码,接触到入门级别的代码审计的内容。

XSS主要可以分为两种,分别为反射型XSS和存储型XSS,DVWA中也是分开介绍的。两者的区别在哪儿呢?

反射型XSS:

    一般是url参数中的值能够回显到HTML中,且url的参数值没有过滤或过滤不严

存储型XSS:

    可以提交内容

    提交的内容可被管理员或其他用户看到

    提交的内容没有被过滤或过滤不严

我们这里在按照DVWA给出的代码进行介绍,先看看反射型XSS的代码:

Low级别代码

白帽子挖洞—跨站脚本攻击(XSS)篇_第2张图片

分析关键代码:

可以看到:
代码不经过滤与检查直接引用name参数,由此形成XSS漏洞

 

Medium级别代码:

白帽子挖洞—跨站脚本攻击(XSS)篇_第3张图片

分析关键代码:

可以看到:

代码使用str_replace()函数将输入中的

你可能感兴趣的:(白帽子挖洞—跨站脚本攻击(XSS)篇)