Quantcast
Viewing all articles
Browse latest Browse all 12749

米斯特白帽培训讲义(v2)漏洞篇 XSS 米斯特 白帽培训 漏洞解析 XSS 跨站脚本攻击

米斯特白帽培训讲义 漏洞篇 XSS

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS 。恶意攻击者往 Web 页面里插入恶意 javascript 代码,当用户浏览器该页之时,嵌入 Web 页面里的代码会被执行,从而达到恶意攻击用户的目的。


Image may be NSFW.
Clik here to view.
米斯特白帽培训讲义(v2)漏洞篇 XSS 米斯特 白帽培训 漏洞解析 XSS 跨站脚本攻击

Payload

Payload 的中文含义是有效载荷,在 XSS 中指代攻击代码或攻击语句。

常见的 Payload 有:

正常弹窗
<script>alert(1)</script>
<img src=0 onerror=alert(1)>
弹出网站 Cookie 分类
<script>alert(document.cookie)</script>
<img src=0 onerror=alert(document.cookie)>

总共有三种

反射型:Payload 经过后端,不经过数据库

存储型:Payload 经过后端,经过数据库

DOM:Payload 不经过后端

原理:反射型

非持久化,需要欺骗用户点击链接才能触发 XSS 代码(数据库中没有这样的页面和内容)。Payload 一般存在于 URL 或者 HTTP 正文中,需要构造页面,或者构造 URL。

将这段代码保存为 xss.php

<?php
header('X-XSS-Protection: 0');
?>
<p>反射型 XSS 演示</p>
<form action="" method="get">
<input type="text" name="xss"/>
<input type="submit" value="test"/>
</form>
<?php
$xss = @$_GET['xss'];
if($xss!==null){
echo $xss;
}

我们看到,这段代码中首先包含一个表单,用于向页面自己发送 GET 请求,带一个名为 xss的参数。 然后 PHP 会读取该参数,如果不为空,则直接打印出来,我们看到这里不存在任何过滤。也就是说,如果 xss 中存在 HTML 结构性的内容,打印之后会直接解释为 HTML 元素。

我们部署好这个文件,访问 http://localhost/xss.php ,如图:


Image may be NSFW.
Clik here to view.
米斯特白帽培训讲义(v2)漏洞篇 XSS 米斯特 白帽培训 漏洞解析 XSS 跨站脚本攻击

我们直接输入一个 HTML 代码,比如 ,之后点击 test :


Image may be NSFW.
Clik here to view.
米斯特白帽培训讲义(v2)漏洞篇 XSS 米斯特 白帽培训 漏洞解析 XSS 跨站脚本攻击

我们可以看到弹窗,也就是我们输入的 HTML 代码被执行了。

之后我们查看元素,这表明,我们输出的内容直接插入到了页面中,解释为 注入到反射型 XSS 的演示页面中。


Image may be NSFW.
Clik here to view.
米斯特白帽培训讲义(v2)漏洞篇 XSS 米斯特 白帽培训 漏洞解析 XSS 跨站脚本攻击

提交之后页面没什么动静,但是我们查看利用平台,可以发现新增了一条数据:


Image may be NSFW.
Clik here to view.
米斯特白帽培训讲义(v2)漏洞篇 XSS 米斯特 白帽培训 漏洞解析 XSS 跨站脚本攻击


Viewing all articles
Browse latest Browse all 12749

Trending Articles