反射型xss主要测试url吗_跨站脚本攻击XSS笔记

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第1张图片

简介

XSS:Cross Site Scripting

Cross Site(跨站):对于跨站的理解是,XSS攻击是发生在目标主机的浏览器上的

Scripting(脚本):XSS攻击重点在于“脚本”,在目标服务器执行恶意的Script脚本从而达到攻击目的。

为什么会出现XSS?

浏览器怎样解析页面?

浏览器页面的内容可由html、css、Javascript三者相互配合形成,其中html贯穿整个页面,负责内容展示,css作为样式表展现各部分的形式,而Javasript脚本语言可以定义在html的标签和标签中,用于控制页面中的元素。譬如:

也就是说在某些用户输入的位置,用户通过输入向网站注入了JS代码,而网站没有进行检查,就直接显示在网页上,这就导致了JS代码的运行。

对于这个网页,设计url赋值q为,将q的值插入到html中,浏览器解析时遇到,可以造成反射型XSS。

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第2张图片

进入user界面查询自己账号时就会弹出窗口。

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第3张图片

这就是反射型XSS的效果。测试网页是否存在XSS漏洞时通常用alert(1)来进行测试,如果修改alert的参数为document.cookie,就可以弹出cookie。

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第4张图片

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第5张图片

存储型XSS

存储型XSS是存储在服务器中的,比如在发表个人信息、发表评论等等地方插入代码,代码存储到服务器内,那么当有用户访问该页面的时候就会执行。

设定攻击者的profile如下:

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第6张图片

该代码插入一张img图片,链接到一个特定的攻击者的地址,显然这个地址对应的并不是一张图片,但是img标签会对该地址发出请求,此时浏览器就会将cookie置于请求中发送给攻击者。

攻击者的php代码为:

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第7张图片

这个代码将收到的cookie结合时间、ip地址等信息保存在本地的txt文本中。

获取到的txt文本为:

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第8张图片

XSS Worm

存储型XSS可以用于造成蠕虫,实现更大规模的攻击与感染。

示例代码:

反射型xss主要测试url吗_跨站脚本攻击XSS笔记_第9张图片

这个代码的效果是,当别的用户查询攻击者的账户信息时,会自动向攻击者发送1个zoobar,并且将自己的profile也改成同样的形式,这样,当其他人再访问受害者的页面时也会造成攻击,达到感染的效果。

DOM Based XSS

待补充。

防御

对于XSS的防御,基本的思路就是“输入过滤,输出转义”:

输入过滤:设定白名单/黑名单,将可能造成攻击的标签过滤;

输出转义:将<、>等转变为普通字符。

对于针对cookies的攻击,可以设定httponly,防止javascript访问cookie。

你可能感兴趣的:(反射型xss主要测试url吗)