图像处理 resultMap post primefaces hyperlink ldap 后台模板下载 mysql卸载重装 maven插件 单片机开发板工作原理 idea全局替换 vue与html5 java对象 java入门新手教程 linux中sudo ie模拟器 python教程视频 计算机电子书 volist js图片上传 subscribe wow怎么赚钱 js小数点保留2位 明解c语言 js刷新当前页 facetime要钱吗 diskman 模拟邻居 文件批量更名 燃烧之血十字架 8700和8700k pr脱机文件怎么恢复 curdate 欧米伽小队提莫 total同级生2下载 东莞证券财富通下载 同级生游戏下载 笔记本摄像头软件 win7显卡驱动下载 橙子助手
当前位置: 首页 > 学习教程  > 编程学习

XSS跨站脚本攻击读书笔记

2021/1/9 2:02:51 文章标签: 跨站攻击

0x00测试环境 1、firefox浏览器、firebug插件。 2、Apache服务器,php环境。 3、背景知识:跨站脚本攻击XSS,(cross site script)缩写是CSS,但是为了和层叠样式表(cascading style sheet ,css)…

0x00测试环境

1、firefox浏览器、firebug插件。

2、Apache服务器,php环境。

3、背景知识:跨站脚本攻击XSS,(cross site script)缩写是CSS,但是为了和层叠样式表(cascading style sheet ,css)区别,在安全领域叫做“XSS”。

XSS攻击,通过HTML注入修改网页,插入恶意脚本,从而在用户浏览时候,控制用户浏览器的一种攻击。由于刚开始攻击演示的案例是跨域的,所以叫做“跨站脚本”

(1)第一种类型,反射型XSS(非持久型XSS)

将下列php编辑好命名为test.php,放在Apache目录下,在浏览器运行该文件。

<?php


$input = $_GET["param"];               //注入点


echo "<div>".$input."</div>";          //注入输入数据显示


echo "这是一个测试XSS代码!!";


?>



2.png

3.png

4.png

我提交一个参数在地址后面localhost/test.php?param=这是一个XSS测试

6.png

可以用firebug插件看到网页代码发生了改变。(图中红色框框)

我在尝试改变一下后面的参数localhost/test.php?param=<script>alert(/xss/)</script>

7.png

出现注入提示。点击确定后,网页代码放生了变化。

8.png

用户输入的script脚本已经写入了网页中,这就是反射型XSS攻击,把用户输入的数据放射给浏览器,也叫非持久型XSS。攻击者将恶意代码填入请求的参数中,页面输出执行了攻击者输入的恶意代码(反射型 XSS,非持久化,需要欺骗用户自己去点击链接才能触发 XSS 代码)

(2)存储型XSS(持久型XSS)

存储型 XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。

(3)DOM Base XSS

反射型XSS的一个分支,通过修改页面DOM节点形成的XSS。该漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞。DOM 是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM 中有很多对象,其中一些是用户可以操纵的,如 URI ,location,refelTer 等。客户端的脚本程序可以通过 DOM 动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得 DOM中的数据在本地执行,如果 DOM 中的数据没有经过严格确认,就会产生 DOM-based XSS 漏洞。

测试DOM代码如下:

<script>
function test()
{
       var str=document.getElementById("text").value;                            
       document.getElementById("t").innerHTML="<a href='"+str+"' >testLink</a>"; //调用innerHTML将用户数据当中HTML写入到网页中,注入点
 
}
</script>
 
<div id="t" ></div>
<input type="text" id ="text"value="" />                                        //取文本框里面的值
<input type="button" id="s"value="write" οnclick="test()" />                   //调用test()函数

网页中会出现一个文本框和一个按钮,当点击按钮就会出现一个连接(test()函数)。运行该javascript代码。

9.png

点击按钮后会调用test()函数,在文本框上出现一个链接。

我构造一个数据' οnclick=alert(/xss/) // ,写入的数据中前一个单引号闭合了href 语句中第一个单引号,最后//注释掉最后一个单引号。

10.png

输入完数据后,点击按钮,再点击链接地址teskLink,就会出现如下图:

11.png

另外一种注入测试:

构造一个新的事件,选择闭合掉原来代码中<a>,插入一个新的HTML标签。'><img src=# οnerrοr=alert(/xss2/) /><'

12.png


**********************************************************************

by:答案

time:2017-2-28

**********************************************************************

本文链接: http://www.dtmao.cc/news_show_1100250.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?