XSS - Labs 靶场笔记(上)
上周在网上看到的一个XSS平台,刷一波《doge
Less - 1:
1.进入主界面,由图二可知是GET请求,提交name=test,回显在页面

2.查看源代码可知
没有做任何过滤,显然存在反射型XSS漏洞
3.构造payload
<script>alert(/xss/)</script>

Less - 2:
1.在输入框输入的数据回显在上方

2.试试上一关的payload

3.查看源代码

发现被包在value中,因此进行闭合构造
4.payload
"><script>alert(/xss/)</script>

Less - 3:
1.按照第二关进行尝试并查看源码,发现$str被转义,对尖括号进行了过滤




2.因此可以构造标签事件进行过滤,在input标签中构造onfocus事件触发XSS
3.payload
' onfocus=javascript:alert(1) '

Less - 4:
第四关原理同第三关,过滤的时候注意单引号改成双引号即可

Less - 5:
1.带入第四关的payload观察源代码,

、

2.有源代码可知on,script都不可用而且strtolower()函数导致大小写绕过失效
因此考虑用构造a标签再尝试利用a标签的href属性执行javascript:伪协议
3.payload构造
"><a href='javascript:alert(1)'>

Less - 6:
1.带入"><a href='javascript:alert(1)'>发现失效,查看源代码


href等标签均失效,但相比于上一关,少了strtolower()函数,因此考虑大小写绕过
2.构造payload
"><sCript>alert(1)</sCRipt>

Less - 7:
1.带入"><sCript>alert(1)</sCRipt>发现依旧失效,查看源代码


将某些标签直接被空白代替,因此考虑使用双写绕过
2.构造payload
"><scrscriptipt>alert(1)</scrscriptipt>

Less - 8:(存储型XSS)
1.添加链接,先用javascript:alert(1)试一波,查看源代码可知,常见字段都被加下划线,


2.构造payload(注意:要在url栏中输入)
javascrip%0at:alert(1)
原理:
href属性引号中的内容可以使用空字符、空格、TAB换行、注释、特殊的函数,将代码隔开。 如:javas%09cript:alert()、javas%0acript:alert()、javas%0dcript:alert()。这些特殊字符在href中不会破坏原有的代码执行。
因为这里直接在输入框输入url编码的数据会被再次编码,所以我们在url直接提交,使用%0a(换行符)隔开
3.提交成功后,当鼠标指向“友情链接”,可以看到左下角出现了我们的JavaScript伪协议代码,点击后就会运行代码。

法二:html转换
1.
2.将javascript:alert(1)进行转换
javascript:alert(1)
3.此时需要带入输入框

Less - 9:
1.查看源代码可知,输入的必须含有http://


2.根据上一题的payload可做如下构造
javascrip%0at:alert('xss')<!--http://-->
javascrip%0at:alert('xss')//http://
javascrip%0at:alert('xss')/*http://*/
Less - 10:
1.查看源代码,可能有隐藏的表单,尝试提交t_link、t_history、t_sort变量,t_sort变量返回在了html的value中,但是过滤了尖括号


2.构造payload,点击按钮即可
&t_sort=click~~~" type="button" onclick="javascript:alert(1)

XSS - Labs 靶场笔记(上)的更多相关文章
- XSS - Labs 靶场笔记(下)
Less - 11: 1.观察界面和源代码可知,依旧是隐藏表单 2.突破点是 $str11=$_SERVER['HTTP_REFERER']; (本题为HTTP头REFERER注入) 3.因此构造pa ...
- Sqli - Labs 靶场笔记(一)
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...
- sqli-labs 靶场笔记
sqli-labs 靶场笔记 冲冲冲,好好学习 2020年1月12号 先来点铺垫 分类: 按照请求方法分类: 1.Get型注入:注入参数在get的参数里. 2.POST型注入:注入参数在POST的参数 ...
- pyqt样式表语法笔记(上) --原创
pyqt样式表语法笔记(上) pyqt QSS python 样式表 因为软件课设的原因开始学习使用pyqt4,才发现原来它也有样式表,而且语法跟css基本相同,而且一些功能实现起来感觉比js要简单方 ...
- Typora笔记上传到博客
Typora笔记上传到博客 Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版.它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML.PDF 以及本 ...
- (未完)XSS漏洞实战靶场笔记
记录下自己写的XSS靶场的write up,也是学习了常见xss漏洞类型的实战场景
- CSRF漏洞实战靶场笔记
记录下自己写的CSRF漏洞靶场的write up,包括了大部分的CSRF实战场景,做个笔记. 0x01 无防护GET类型csrf(伪造添加成员请求) 这一关没有任何csrf访问措施 首先我们登录tes ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- Bootstrap学习笔记上(带源码)
阅读目录 排版 表单 网格系统 菜单.按钮 做好笔记方便日后查阅o(╯□╰)o bootstrap简介: ☑ 简单灵活可用于架构流行的用户界面和交互接口的html.css.javascript工具集 ...
随机推荐
- MySql字符集与排序规则详解
前段时间往MySQL中存入emoji表情或生僻字.繁体字时,报错无法添加,研究后发现这是字符集编码的问题,今天就来分析一下各个字符集与排序规则 一.字符集 先说字符,字符是各种文字和符号的总称,包括各 ...
- sqlplus、lsnrctl命令工具不可用(libclntsh.so.11.1)
原因: libclntsh.so.11.1文件丢失了 解决方法: 在其他机器把这个文件拷贝到目标库安装目录底下的lib目录即可
- 【Go语言绘图】图片的旋转
在上一篇中,我们了解了gg库的基本使用,包括调整大小.调整圆形参数.设置颜色.保存图片.加载图片和裁剪.这一篇我们来学习一下图片的旋转. 加载图片 首先,我们先来一张黄图. func TestRota ...
- Restful规则及JPA导致内存溢出
HTTP动词 对于资源的具体操作类型,由HTTP动词表示. 常用的HTTP动词有下面五个(括号里是对应的SQL命令). GET(SELECT):从服务器取出资源(一项或多项). POST(CREATE ...
- Kafka消费者手动提交消息偏移
生产者每次调用poll()方法时,它总是返回由生产者写入Kafka但还没有消费的消息,如果消费者一致处于运行状态,那么分区消息偏移量就没什么用处,但是如果消费者发生崩溃或者有新的消费者加入群组,就会触 ...
- 移动端 CSS3动画属性
一.transform 转换属性 #1. translate位移 transform : translate(50px,100px); //把元素水平移动 50 像素,垂直移动 100 像素 tran ...
- 【Java】指定【微信】好友自动发送消息
package user.controller; import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt. ...
- JAVA的一些笔记
/*一般函数与构造函数的区别 构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化 一般函数:对象创建时,需要函数功能时才调用 构造函数:一个对象对象创建时,只调用一次 一般函数:对象创 ...
- vue3系列:vue3.0自定义全局弹层V3Layer|vue3.x pc桌面端弹窗组件
基于Vue3.0开发PC桌面端自定义对话框组件V3Layer. 前两天有分享一个vue3.0移动端弹出层组件,今天分享的是最新开发的vue3.0版pc端弹窗组件. V3Layer 一款使用vue3.0 ...
- TurtleBot3使用课程-第二节a(北京智能佳)
目录 1.[第3类]LRF(LDS)传感器 2 1.1 传感器包安装 2 1.1.1 传感器端口访问设置 2 1.1.2 运行hlds_laser_publisher节点 2 1.1.3 在RViz中 ...