(跨脚本攻击)xss简介及三种类型

1.简介

xss攻击,通常指黑客通过注入"HTML注入",来篡改网页,插入恶意的脚本,从而在用户浏览网页的时候,控制用户浏览器的一种攻击。

那么什么是xss呢?看看下面的例子~~


正常情况下,用户向test提交的数据会显示在页面中,例如:

http://127.0.0.1/study/test.php?test=This%20is%20a%20test;

http://


此时查看页面源代码如图:


但是如果提交一段html代码:test=<script>alert('hack')</script>,就会发现,代码被执行了。

再查看源代码:


用户输入的script脚本已经被写入页面中,而显然这不是开发者不想看到的。

上面这个例子就是xss的一种:反射型xss.

xss根据效果不同,分为3类:

1.反射型xss

反射型xss就是简单的把用户输入的数据“反射”给浏览器。黑客需要诱使用户”点击“一个恶意链接,才能攻击成功。反射型xss也叫做"非持久型"xss.

2.储存型xss

储存型xss会把用户输入的数据“储存”在服务器端。这种xss具有很强的稳定性。

下面举例说明:

用户输入的内容还是没有过滤,没有显示页面上,而是插入到了数据库中。

新建一个php,内容如下:

该代码是用来读取之前插入数据库的内容的,并将页面显示在浏览器上。

创建一个数据库名为xss,表名为temp:

然后访问页面:


点击页面却不会显示,而实际上数据已经存入了数据库,输入代码:<script>alert('hack')</script>,出现页面:

3.DOM Based XSS

实际上这种xss并非按照数据是否储存在浏览器兑换来划分,DOM Based Xss 按效果来说也算是反射型xss,这里把它单独划分出来,是因为DOM Based Xss 的形成原因比较独特。

看如下代码:

<script>
function test()
{
    var str=document.getElementById("test").value;
    document.getElementById("t").innerHTML="<a href='"+str+"'>testLink</a>";
 }
</script>
<div id="t"></div>
<input type="text" id="text" value="" />
<input type="button" id="s" value="write" οnclick="test()" />

在点击wirte按钮后,会在当前页面插入一个超链接,其地址为文本框的内容:

在这里,“write"按钮的onclick调用了test()函数,修改了页面DOM节点,然后通过innerHTML把一段数据当作HTML写入到页面中,就造成了DOM Based Xss.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值