【网络安全】-xss跨站脚本攻击实战-xss-labs(1~10)

Level1:

检查页面源代码:

function函数:

javascript 复制代码
      (function(){
        try{
            let tn = '';
            if(tn.includes('oem')){
                Object.defineProperty(document, 'referrer', {
                    get: function(){
                    return '';
                    }
                });
            }else if(tn.includes('hao_pg')){
                if(!document.referrer.match('tn=')){
                    Object.defineProperty(document, 'referrer', {
                        get: function(){
                        return 'https://www.hao123.com?tn=' + tn;
                        },
                        configurable: false,
                    });
                }
            }
        }catch(e){

        }
      })();
            

分析:else if条件为false 假,反推if条件为真。

if(tn.includes('oem')) 检查变量tn是否包含字符串'oem'。由于在这个例子中tn是空字符串,这个条件永远不会为真。

如果tn是从外部源获取的值,则执行接下来的代码块。

使用用Object.defineProperty方法修改document对象的referrer属性的行为,get function(),跳到下一题,返回confirm("完成的不错!");

总结:插入恶意脚本<script>alert(1)</script>就行没什么特殊的。

Level2:

检查页面源代码:

分析:先插入恶意脚本发现与文本杂合,没有输出,所以我们要将恶意脚本闭合。

Level3:

输入框输入<script>alert(1)</script>,"><script>alert(1)</script><"无回显。

推断:script标签不中用

换回显脚本为:οnclick="alert(1)"

检查页面源代码:

value="οnclick=&quot;alert(1)&quot;"说明插入的脚本正确,需要修改一下闭合方式'οnclick='alert(1)

再点击输入框。

Level4:

与 Level3:回显相同,输入'οnclick='alert(1) 仍然无回显。

检查页面源代码:value=" 'οnclick='alert(1) " ->闭合方式错误

输入"οnclick="alert(1),再点击输入框。

Level5:

输入'οnclick='alert(1),自动在插入的恶意代码中插入_,成为'o_nclick='alert(1)

重新构造恶意代码"><a href=javascript:alert(1)>a</a>

解释:

<a>标签:HTML中用于定义超链接的元素。

a href=javascript:alert(1)即标签的href属性即被设置为javascript:alert(1)。

>a<:这是<a>标签的开始和结束标签之间的内容,即链接的可见文本是"a",即点击a浏览器会执行javascript脚本,弹出弹窗1。

Level6:

输入'οnclick='alert(1),自动在插入的恶意代码中插入_,成为'o_nclick='alert(1)

输入"><a href=javascript:alert(1)>a</a>,成为<a hr_ef=javascript:alert(1)>a</a>

重新构造恶意脚本......感觉没知识储备了。

试试绕过怎么样:

'oNclick='alert(1) ->闭合方式错误。

"oNclick="alert(1)

"><a href=javascript:alert(1)>a</a> 同理

Level7:

输入'oNclick='alert(1) ->on被删除了

试试双写绕过:'ooNnclick='alert(1)

绕过成功,只是闭合方式还有些问题,换一下就ok。

Level 8:

输入'oNclick='alert(1) ->on被删除了

试试双写绕过:'ooNnclick='alert(1) ->不行,但我们注意到输入的恶意脚本都被转化_。

尝试javascript 伪协议执行代码HTML中的数字字符引用来表示ASCII字符

https://www.matools.com/code-convert-unicode

javascript:alert(1) ->

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

点击有情链接:

Level 9:

与 Level 8类似,输入ASCII字符,但是并没有转义

http:// 并用注释符注释->进行转义

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */

Level 10:

没有登录框,页面源代码也没什么东西,无法构造url

只能作弊,查看php源代码试试?

?t_sort=" οnclick=javascript:alert() type="button

点击按扭(透明长方形框)

相关推荐
烛阴5 分钟前
C#异常概念与try-catch入门
前端·c#
钮钴禄·爱因斯晨5 分钟前
# 企业级前端智能化架构:DevUI与MateChat融合实践深度剖析
前端·架构
摆烂工程师24 分钟前
2025年12月最新的 Google AI One Pro 1年会员教育认证通关指南
前端·后端·ai编程
Gavin在路上31 分钟前
DDD之用事件风暴重构“电商订单履约”(11)
java·前端·重构
我命由我1234537 分钟前
VSCode - VSCode 颜色值快速转换
前端·ide·vscode·前端框架·编辑器·html·js
qq_12498707531 小时前
基于SpringBoot+vue的小黄蜂外卖平台(源码+论文+部署+安装)
java·开发语言·vue.js·spring boot·后端·mysql·毕业设计
CAE虚拟与现实1 小时前
C/C++中“静态链接(Static Linking)” 和 “动态链接(Dynamic Linking)释疑
开发语言·c++·dll·动态链接库·lib库
前端涂涂1 小时前
怎么设计一个加密货币 谁有权利发行数字货币 怎么防止double spending attack 怎么验证交易合法性 铸币交易..
前端
JuneTT1 小时前
【JS】使用内连配置强制引入图片为base64
前端·javascript
万邦科技Lafite1 小时前
一键获取淘宝店铺所有商品信息,实时监控商品数据
开发语言·数据库·python·api·开放api·电商开放平台·淘宝开放平台