谷歌在线appspot平台教你学Hacker(由浅如深)-XSS篇
练习链接
- http://google-gruyere.appspot.com/
- 点开是纯英文的 直接点翻译即可

一 .part1
http://google-gruyere.appspot.com/part1
看下 使用介绍:Using Gruyere
按照主页上的“所有代码段”链接查看其他用户的代码段。 还要看看他们的主页设置为什么。
注册一个帐户供自己在黑客使用时使用。 您的Gruyere帐户不要使用与您使用任何实际服务相同的密码。
填写您的帐户的个人资料,包括一个私人片段和一个将显示您的名字的图标。
创建一个包含你喜欢的笑话的片段(通过“新片段”)。
上传文件(通过“上传”)到您的帐户。
这涵盖了格鲁耶尔提供的基本功能。 现在让我们来打破它们!第一阶段没有什么营养 就是正常熟悉一个网站的业务
二 第二阶段 Cross-Site Scripting (XSS)
第二阶段就是熟悉XSS
no.1 文件上传xss 找到文件上传的地方
直接上传一个HTML,然后在我们的HTML里面加入相应的弹cookie的JS代码即可 然后上传
上传一个html 里面包含
<script>alert(document.cookie)</script>
上传后地址是
https://google-gruyere.appspot.com/618797293401537791985845103200180401152/admin/test.html

然后访问成功弹出

no.2 反射型 XSS
测试样例 直接在URL后 这是直接在URL后面输入的反射型XSS
全是<> 检查是否过滤
/%3e%3c
/%253e%253c
/%c0%be%c0%bc
/%26gt;%26lt;
/%26amp;gt;%26amp;lt;
/\074\x3c\u003c\x3C\u003C\X3C\U003C
/+ADw-+AD4-这会尝试>和<以许多不同的方式,可能能够通过网址,并得到不正确的渲染使用:逐字(URL%-encoding),双%编码,错误的UTF-8编码,HTML和编码,双 编码和C风格编码的几种不同的变化。 查看结果来源,看看是否有任何工作。 (注意:在URL中输入> <与%3e%3c是一样的,因为浏览器会自动%编码这些字符,如果你想要一个literal或者>,那么你需要使用curl这样的工具来发送 URL中的那些字符)
最终结果直接访问URL:
http://google-gruyere.appspot.com/618797293401537791985845103200180401152/%3Cscript%3Ealert(document.cookie)%3C/script%3E 成功弹窗

No.3 留言处的存储XSS
留言的框处有XSS 点击New Snippet 直接输入paload
" ><img src=x onerror =prompt(1)> <" OK




NO.4 html via 属性中的存储XSS
也可以通过向HTML属性注入值来执行XSS。 通过设置配置文件中的颜色值来注入脚本。
在profile配置界面的颜色属性输入payload即可 成功弹窗red' onload='alert(3)' onmouseover='alert(4)


Internet Explorer的动态CSS属性(又名CSS表达式)使这种攻击特别容易。
expression(alert(1))NO.5 ajax属性中的存储XSS( 失败)
To exploit, Put this in your snippet:
all "- (alert(1),"")
- "your base
no.6 ajax中的反射XSS
直接在分段的uid中直接插入XSS即可 uid是一个AJAX参数


首先,确保你了解问题。
只要有可能,请通过模板功能进行清理,而不是在源代码中调用转义函数。这样,所有的转义都在一个地方完成,您的产品可以受益于为模板系统设计的安全技术,以验证其正确性或实际上为您逃脱。另外,请熟悉模板系统的其他安全功能。
采用与XSS相关的良好测试规范。
不要写你自己的模板库:)
谷歌在线appspot平台教你学Hacker(由浅如深)-XSS篇的更多相关文章
- jQuery Text-to-Speech 谷歌在线语音
<!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" ...
- python解析谷歌在线表格链接,转化为数组形式,图片转化为链接
在线表格已成为趋势,传统的表格导入导出已经不能满足现在企业的发展. 必须支持在线表格的导入,只需要输入在线表格的链接,就能将数据读取出来. 而且相比相传表格,能够将图片信息一块读取.在线表格中的图片也 ...
- 小白学数据分析--聚类分析理论之K-means理论篇
小白学数据分析--聚类分析理论之K-means理论篇 聚类分析是一类广泛被应用的分析方法,其算法众多,目前像SAS.Splus.SPSS.SPSS Modeler等分析工具均以支持聚类分析,但是如何使 ...
- 跟我一起学.NetCore之MVC过滤器,这篇看完走路可以仰着头走
前言 MVC过滤器在之前Asp.Net的时候就已经广泛使用啦,不管是面试还是工作,总有一个考点或是需求涉及到,可以毫不疑问的说,这个技术点是非常重要的: 在之前参与的面试中,得知很多小伙伴只知道有一两 ...
- 一步一步学EF系列【4、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- 【小白学C#】浅谈.NET中的IL代码
一.前言 前几天群里有位水友提问:”C#中,当一个方法所传入的参数是一个静态字段的时候,程序是直接到静态字段拿数据还是从复制的函数栈中拿数据“.其实很明显,这和方法参数的传递方式有关,如果是引用传递的 ...
- 一步一步学EF系列【5、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- 阿里云学生机——Mysql配置---教小白入门篇
首先,我的学生机默认配置为:CentOS 7.2 64位 + Tomcat 8 + Jdk8 + MySQL5.7.16 扩展:Linux 如何查看 MySQL 版本号----使用命令 mysql - ...
- Flutter 即学即用系列博客总结篇
前言 迟到的总结篇,其实大家看我之前发的系列博客最后一篇,发文时间是 3 月 29 日.距离现在快两个月了. 主要是因为有很多事情在忙,所以这篇就耽搁了. 今天终于可以跟大家会面了. 系列博客背景 F ...
随机推荐
- jquery源码解析:代码结构分析
本系列是针对jquery2.0.3版本进行的讲解.此版本不支持IE8及以下版本. (function(){ (21, 94) 定义了一些变量和函数, jQuery = function() ...
- python的数据结构分类,以及数字的处理函数,类型判断
python的数据结构分类: 数值型 int:python3中都是长整形,没有大小限制,受限内存区域的大小 float:只有双精度型 complex:实数和虚数部分都是浮点型,1+1.2J bool: ...
- 2,ThreadGroup 概念以及用法
当一个任务需要多个子线程去处理业务,这时候不希望这些子线程杂乱无章, 就需要把这些线程统一管理起来,这时候线程组就产生了. ThreadGroup 常用方法讲解 activeCount() 返回 ...
- DHCP应用案列
环境:centos7 需求:让员工实现0配置即可接入网络,但公司内部的若干文件服务器和打印机服务器需要使用固定的ip 部署dhcp服务很简单,首先安装dhcp,yum -y install dhcp. ...
- Easyui里面动态设置输入框的可见性
JQuery EasyUI 动态隐藏 一.隐藏datagrid某一列 $('#dg').datagrid('hideColumn', 'field'); 二.隐藏html的lable.input标 ...
- 进阶篇:2)DFMA方法的运用
本章目的:DFMA方法运用,引导后面的章节.(运用比只理解重要!) 1.DFMA概述 1.1 DFMA的由来 工艺粗略可分为装配工艺和制造工艺.在这里,我们所讲的“制造”是指产品或部件的某个零件的制造 ...
- 论文阅读 | FoveaBox: Beyond Anchor-based Object Detector
论文阅读——FoveaBox: Beyond Anchor-based Object Detector 概述 这是一篇ArXiv 2019的文章,作者提出了一种新的anchor-free的目标检测框架 ...
- 腾讯地图添加多个Marker
//重置地图 init(){ var self = this; this.wSize = { wHeight: window.innerHeight-, wWidth: window.innerWid ...
- (转)shell变量及扩展
1.shell变量 shell变量赋值语句为”name=[value]“,等号两边不能有空格,可以给shell变量追加内容”name+=value“,取消shell变量的设置使用”unset name ...
- Oracle rownum
本问参考自Oracle中ROWNUM的使用技巧.纯属读书笔记,用于加深记忆 rownum是oracle中的一种伪列,它会根据返回的记录生成一个序列化的数字,利用rownum,我们可以得到一些原先难以得 ...