跨站跟我们语言上面是没有什么关系,大部分都是前端的一个漏洞
在变量接收数据的时候,数据可以写成js脚本类似的代码。如果对方把你输入的数据进行一个回显操作,就是我们常说的输出操作,调式操作,由于这个数据是javascript的代码,是可以被浏览器识别,执行的,而它执行的结果是弹窗,alert(1)就是用来控制弹窗的值,所以我们这里看到的就是一个弹窗的效果
这就是一个简单的跨站漏洞的演示,通过这个漏洞我们可以很清楚的知道跨站漏洞的原理,就是一个可以控制的变量,一个输出的变量
网站或代码在对数据进行显示或调式的时候,出现了安全问题,因为我们经常访问网站的时候,会发现网站会显示一些内容,如果这个内容受你控制的话,你可以让页面显示其它内容,如果其它内容可以由javascript代码去显示的话,那么这个页面就会执行js代码,js代码是可以做常规操作的,比如获取浏览器的一些信息呀,js代码能干啥,跨站漏洞就能干啥
在前端
常见的输出类函数,输出一个变量,输出一个我们能控制的值,这个地方就是产生跨站漏洞的地方
危害受到js语句的影响,通过js代码实现对我们的攻击
我们在触发这个漏洞的时候,浏览器的版本和内核会决定这个漏洞执行情况
因为js代码是脚本,像这种常见的浏览器,他有些安全策略或者版本高的话,有一些安全机制,会阻止一些js脚本的执行,即使有漏洞的话,如果对方在触发这个漏洞的时候,采用的浏览器是一个比较安全的浏览器,这个时候即使有漏洞,你也是无法利用成功的,所以它是有一个鸡肋的地方,大家一定要记住
如果说大家点击了漏洞地址,但是就是没有攻击成功,其中有个原因就是浏览器过滤了
从产生层面,具体区别,危害等级等讲解
存储型xss攻击会一直持续到你注入的数据被删除为止
#' οnclick="alert(2)">
onclick 鼠标触发事件
前几年的QQ空间,写日志界面出现过跨站漏洞,对方只需要在QQ空间里面,写一篇日志,日志上面写上一些跨站代码,诱使别人去访问,这个时候凡去看他日志的人,统统中招,如果是留言板或者评论区有跨站的话,你通过你的评论写入跨站代码插入到评论区,当下一个游客去看这些东西的时候,就会触发你之前的跨站语句,只要是你之后的访问者都会被触发,这就是存储型跨站漏洞攻击。
反射型跨站在有些SRC网站上面是不接收的,但是存储型是可能会接收的
浏览器看到的源代码只是编译、执行之后的结果,那并不是他的源代码
dom型是给了前端代码,没有给到后端语言处理
我们采用模糊测试,慢慢的测试出来xss,我们没有看程序的源代码,因为他是后端处理,但是如果是dom型的,可以通过看前端代码看出来
我们前期可能要测试sql注入或者其它漏洞,最终确定为dom型跨站,如果我们代码能力强,就能够很快的知道,这个地方存在dom型跨站漏洞
xss一些输出性的东西造成的情况,也就是说我们能够控制页面的显示内容,那么就可以进行跨站漏洞的测试,留言板是一个很经典的地方
如果我们把跨站语句写到电话、地址、昵称那里,那么对方在后台看订单信息的时候,是不是相当于会把信息在页面当中进行展示,这个时候,我们写的是跨站代码,对方就会执行跨站代码,代码的效果就是获取当前后台登录人的cookie,我们就可以通过cookie,登录到他的后台,把之前的订单全部给他搞出来,以前最喜欢的跨站攻击就是搞这种事情,这个xss得是存储型的
搜索xss平台,xss平台大部分是免费的,我们也可以自己搭建,如果我们用的是对方的平台,因为数据都是储存到他那边的,我们攻击的效果他那边都能进行查看,如果我们搞得事情比较敏感,不希望外人知道,你也可以自己搭建,如果无所谓,那就在上面搞个免费的用户用一下就行了
https://xssaq.com/
这上面的模块并不是都是可以的,在实战当中可能会失败
#cookie session
用户凭据: 通过凭据可以判断对方身份信息
cookie 存储本地 存活时间较长 小中型公司
session 会话 存储服务器 存活时间较短 大型公司
我们经常使用银行APP,我们当前还在操作app,但是过来一分钟之后,没有操作他,或者说你重新切换了下页面,然后你再来到这个app页面的时候,他会让你重新在登录,这个就是很明显的session验证,session验证就像打电话一样,你打给对方,对方接到和你正在通话,当你没有说话,对方就会挂掉,然后你再想跟对方通话的时候,就需要重新再打
cookie验证就不一样了,你登录到网站上面,过一会时间,你在去刷新这个页面的时候,还是登录状态,这就是cookie登录
session会比cookie更加安全,因为session是存储到服务端的,所以它会占用服务器的存储空间,如果这个网站有成千上万个用户的话,他登录一次就会产生一个session文件,登录一次就会产生一个session文件,这个用户类的处理量对服务器是有很大的资源损耗,所以小型网站不会用到session,因为他会损耗服务器资源,这个session使用起来,要比cookie麻烦一些。所以造成小中型网站会使用cookie
我们说的xss盗取cookie,也指的是盗取对方的信息,其实也包括session数据,它也能获取到,但是有一点,你获取到session,对方没有在操作,session会话会失效,但是cookie不一样,一般只要不是很长时间,都能用,这个要看对方具体服务器和配置,就像我们说的登录保存的时间,或者对方登录服务器的保存时间
网上有两种攻击方式,一种是盗取cookie,一种是会话劫持,会话劫持指的是我们说的session
我们在网站登录的时候会有一个选项,保存3天还是一个月的用户凭据到你电脑上面,我们用xss盗取就是盗取这个凭据,如果你自己没有登录这个网站后台的话,对方即使攻击你的话,他攻击获取的cookie也不是用户的cookie,仅仅只是一个没有登录用户的cookie
像普通用户的cookie,比如说游客,登录的普通用户,这个cookie就没有什么用,因为我们目前大部分盗取cookie,是要获取对方管理员的cookie,如果对方不登录,我们就没办法了,这就是跨站漏洞不被很多人喜欢的原因,就是他的限制条件实在是很多,比如我们用cookie盗取操作的话,如果对方浏览器阻止了,那也是GG,如果对方没有登录后台,产生它自身的cookie,你盗取也没有用,必须是你想要的用户的cookie才可以
你经常登录网站,选择保存,下回你登录网站就不需要你输入账号,自动帮你输上去,这个操作记录的就是当前浏览器的信息,如果对方无痕浏览或者说对方没有登录,他自己也是管理员,他也可以不登录,看一下而已,或者不保存也可以,他登录一次,他就退出一次,清除一次,那也没办法攻击成功
我们攻击成功的条件:对方有漏洞,对方浏览器不会阻止脚本的运行,对方登录浏览器并保存了它的cookie,网站对xss过滤的不严谨,对方触发了这个漏洞。登录之后,我们要获取对方的登录cookie,获取到cookie之后,就可以登录到对方的后台
xss漏洞利用起来是有很多条件的,这也造成跨站漏洞,网站不收,我们在发现这个漏洞,也不会去利用的原因。但是这个漏洞有,还是可以根据实际情况尝试利用一下的
网站管理员打不打开这个钓鱼链接,取决于网站管理员而不是我们,但如果是订单页面,他绝对会去看,这种情况,成功率绝对会高,其它的,我们就不要去利用了
反射型跨站不用想,直接不用去看,直接GG
前期我们演示有价值的,大部分都是存储型跨站,就像留言板或者数据交互的地方,数据发送过去,对方必定要看的,像这样子的地方就是有利用的必要