XSS闯关小游戏通关笔记

2023-11-15

level1 — 无过滤

分析源码,没有任何的过滤。
在这里插入图片描述

直接在链接中构造最基本的XSS弹窗即可,弹窗内容为1.

<script>alert(1)</script>

在这里插入图片描述

level2 — input中未设置过滤

分析源码,发现在echo输出中有一个函数htmlspecialchars()

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。可以看成是对特定字符的过滤。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 <
> (大于)成为 >

所谓的HTML实体,即让输入的预留字符转换为预留字符本身的符号,就是一个普通的字符,不带有功能。比如<br>就是浏览器上的要显示的字符,而不会被解释为网页标签 换行符的<br>
在这里插入图片描述
从源码中可以看到,程序对输出进行了处理,但并未对输入进行处理,所以我们可以在input标签中构造语句,使得input标签被闭合,再执行之后的XSS语句。

"><script>alert(123)</script>

利用前面的">可以将input标签闭合,从而使后面的XSS语句得以执行。
在这里插入图片描述

level3 — 未过滤单引号

分析源码,在输入和输出中都使用了htmlspecialchars()进行过滤,在level2已经介绍了该函数,本关中再进一步介绍一下。

htmlspecialchars(string,flags,character-set,double_encode)

该函数有四个参数,其中只有string是必须的,其他三个可缺省,缺省状态下为默认值。其中,对于flags的使用如下:

可选。规定如何处理引号、无效的编码以及使用哪种文档类型。
可用的引号类型:
ENT_COMPAT - 默认。仅编码双引号。
ENT_QUOTES - 编码双引号和单引号。
ENT_NOQUOTES - 不编码任何引号。

在这里插入图片描述

所以,在本关中,flags处于默认缺省状态,未过滤单引号,其他几个都过滤。所以我们可以利用单引号配合鼠标事件来构造XSS语句。

'onclick=alert(123)//

其中单引号用于闭合前面的value(注意观察源码中的value也是用的单引号开始),//用于注释掉后方多余的符号或语句。因为采用的鼠标事件为点击事件,当提交XSS语句后需要点一下输入框即可通过。

level4 — 未过滤双引号

分析源码,输入的字符被str_replace()将 “<” 和 “>” 替换为空,即过滤了尖括号,下面介绍一下str_replace()函数:

str_replace(find,replace,string,count)
参数		描述
find	必需。规定要查找的值。
replace	必需。规定替换 find 中的值的值。
string	必需。规定被搜索的字符串。
count	可选。一个变量,对替换数进行计数。

举例:
把字符串 “Hello world!” 中的字符 “world” 替换成 “Peter”:

echo str_replace("world","Peter","Hello world!");
输出结果为:Hello Peter!

且value使用双引号进行闭合,相当于与level3相比,只是把level的单引号换成双引号即可构造出XSS语句
在这里插入图片描述

"onclick=alert(123)//

注意:
为什么鼠标事件不用>就能够闭合? 因为鼠标事件本身就添加在input标签中,就算这里能使用>将input标签进行闭合,剩下的onclick事件也不能触发。

在这里插入图片描述

level5 — 未过滤javascript

分析源码,先将输入字符全部转为小写,再用str_replace()将<script和on分别替换为<scr_ipt和o_n,这样便废掉了<script>和鼠标事件on
在这里插入图片描述
但我们还可以用a标签+javascript伪协议来触发XSS

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

">用以闭合input标签,//用于注释掉后方多余的符号和语句
提交后页面会出现一个超链接,点击超链接即可出发XSS语句
在这里插入图片描述
在这里插入图片描述

level6 — 大小写绕过

分析源码,乍一看相对于level5限制更多了,不但限制了script和on,还限制了data和herf。仔细观察后发现并没有限制大小写,SCript和script是不匹配的,因此本关采用大小写绕过即可。
在这里插入图片描述

"Onclick=alert(123)//
"><SCript>alert(123)</SCript>
"><a HRef="javascript:alert('xss')">//

在这里插入图片描述

level7 — 关键字过滤绕过

分析源码,一开始将输入的字符转换为小写,接下来几行将关键字进行替空操作,这种替空只能将连续的字符串找出来替换掉,因此可以采用双写关键字来绕过。
在这里插入图片描述
比如,将script写为scrscriptipt,处理机制会将中间的script匹配替空,但剩下的scr和ipt自然就组合到一起形成script,以此来达到绕过。

"><scrscriptipt>alert(123)</scrscriptipt>
"oonnclick=alert(123)//

在这里插入图片描述

在有的情况下,其实还有另一种方法,就是在写关键字的时候,用分隔符将其从中间分开,比如script写为scr ipt,中间用一个空格隔开。对此我们构造payload如下:

"><s cr ipt>alert(123)</scr ipt>
"o nclick=alert(123)//

但在本关中这样并不适用,可以作为一个积累。

level8 — HTML实体编码绕过

分析源码,这一关的过滤是当前遇到的过滤最严格的,小写转换,关键字过滤一应俱全,剩下一个单引号未过滤但起不了作用。捣鼓了一会儿没有思路,参考了其他师傅的方法,可以用HTML实体编码进行绕过。
在这里插入图片描述
将XSS语句进行实体编码后尝试触发XSS,发现失败。
在这里插入图片描述
F12开发者工具中查看,输入的HTML实体编码以及解码成为我们想要的XSS语句,但是为什么没有执行?
在这里插入图片描述

仔细观察,我们构造的XSS语句实际上是插入到了input标签下的a标签中,作为一个超链接。想一下要在a标签中出发XSS,在level5中是不是做过一个点击超链接触发XSS?

将XSS语句换成:

JavaScript:alert(123)

得到对应的HTML实体编码:

&#x4A;&#x61;&#x76;&#x61;&#x53;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x32;&#x33;&#x29;

提交后,点击友情链接,通过。
在这里插入图片描述
开发者工具中也可以看到我们构造的语句
在这里插入图片描述

level9 — HTML编码绕过

分析源码,相比于level8,本关多了一个判断语句,判断传入的内容中是否包含http://,如果不包含则提示链接不合法。
下面介绍一下本关中新出现的一个函数,strpos()

strpos() 函数查找字符串在另一字符串中第一次出现的位置。
注释:strpos() 函数对大小写敏感。

举例:

echo strpos("You love php, I love php too!","php");
输出结果为:9
若查找失败则输出值为空

在这里插入图片描述
因为程序中只是判断了有没有http://,但没有判断它出现的位置,所以我们可以把http://放在构造的代码最后面,并将其用//注释掉,构造的代码如下:

&#x4A;&#x61;&#x76;&#x61;&#x53;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x32;&#x33;&#x29;//http://

在这里插入图片描述

level10 — 隐藏标签触发XSS

打开题目页面,发现没有输入框。尝试在keyword中后构造各种语句均无效。
在这里插入图片描述

分析源码,发现三个input标签,但都是hidden属性,三个标签中只有t_sort会获取GET传入的值,因此该题便转化成了单个input标签中构造XSS语句。
在这里插入图片描述
源码中将"<“和”>"进行了过滤,因此考虑构造鼠标事件触发XSS。

"onclick=alert(123)//

在这里插入图片描述
将构造的语句提交上去,发现页面依旧没有出现input标签。F12在开发者工具中找出t_sort,将其属性改为text或者将hidden删除。
在这里插入图片描述
在出现的输入框中点击一下,XSS执行成功。
在这里插入图片描述

level11 — Referer触发XSS

本关出现了一个新的函数$_SERVER[‘HTTP_REFERER’]

$_SERVER(HTTP_REFERER):
引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。
并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。
简言之,该值并不可信。

分析源码,实际接受参数的为t_sort以及本关又增加的一个新的input标签t_ref。
在这里插入图片描述

对于t_sort传入的数据经过htmlspecialchars() 过滤后,只剩下单引号可以利用,而value的闭合条件又为双引号,对此我考虑过使用HTML实体编码,但将编码提交上去后并没有像之前的level8和9一样将编码解码,因此也不能触发XSS。
在这里插入图片描述
这时候注意力来到新的标签t_ref,从源码和上图可以看到,他的值为页面跳转之前的页面链接,也就是数据包中的Referer值,并且他的值只通过str_replace()将"<“和”>"过滤掉了。因此,我们可以考虑通过抓包修改数据包的referer值来触发XSS。

burp抓包,将Referer的值修改成构造的XSS语句。
在这里插入图片描述
放行数据包后,可以在开发者工具中看到,t_ref的值已经变成我们构造的XSS语句,将标签属性改为txt或者删去hidden后将会显示输入框,点击输入框后即可触发XSS。
在这里插入图片描述

level12 — User-Agent触发XSS

分析源码,和level11相比,只是将 S E R V E R ( H T T P R E F E R E R ) 换 成 了 _SERVER(HTTP_REFERER)换成了 SERVER(HTTPREFERER)_SERVER[‘HTTP_USER_AGENT’],也就是说,现在t_ua的值为数据包中User-Agent的值。同修改Referer的方法一样,抓包进行修改即可。
在这里插入图片描述

level13 — Cookie触发XSS

分析源码,这一次又换成了Cookie,触发方法参考level11
在这里插入图片描述

level14 — EXIF信息未过滤触发XSS

说实话一进来不知道这是个啥,看了源码也不知道是干啥。
在这里插入图片描述
分析源码,用iframe标签套了一个地址:http://www.exifviewer.org/,不知道是想用来干啥?
在这里插入图片描述
随便点了一个,感觉都是些广告,啥卖相机的都来了??
在这里插入图片描述
在这里插入图片描述
在网上找了一番,发现先知社区有一篇关于本关的writeup,文中讲到本关需要用到图片的exif信息来触发XSS,但是我们的源码引入的网址不一样。
在这里插入图片描述

后面又在另一个师傅那找到了他自己写的源码来复现该过程。

<h1>Test EXIF XSS</h1>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" id="File" name="file"/>
    <input type="submit"  name="submit" value="submit">
</form>
<?php
//error_reporting(0);
if(isset($_POST['submit'])){
    $file = $_FILES['file'];
    $filetmps = $file['tmp_name'];

    $exif = exif_read_data($file['tmp_name'], 0, true);

    foreach ($exif as $key => $section) {
        foreach ($section as $name => $val) {
            echo "$key.$name: $val<br />\n";
        }
    }
}
?>

换上新的源码,页面变成了一个提交文件的页面,结合我们之前查到的信息,使用exiftool修改图片信息。
在这里插入图片描述
修改之前先说一下什么是EXIF:

​可交换图像文件格式常被简称为Exif(Exchangeable image file
format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif 可以被附加在 JPEG、TIFF、RIFF等文件之中,为其增加有关数码相机拍摄信息的内容和缩略图或图像处理软件的一些版本信息。

首先查看图片未修改之前的exif信息如下:

root@kali:~/ctf# exiftool test.jpg
ExifTool Version Number         : 12.07
File Name                       : test.jpg
Directory                       : .
File Size                       : 82 kB
File Modification Date/Time     : 2020:10:28 23:11:05-04:00
File Access Date/Time           : 2020:10:28 23:25:26-04:00
File Inode Change Date/Time     : 2020:10:28 23:25:26-04:00
File Permissions                : rw-------
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Exif Byte Order                 : Big-endian (Motorola, MM)
Orientation                     : Unknown (0)
X Resolution                    : 72
Y Resolution                    : 72
Resolution Unit                 : inches
Modify Date                     : 
Y Cb Cr Positioning             : Centered
Exif Version                    : 0221
Components Configuration        : Y, Cb, Cr, -
Light Source                    : Unknown
Flashpix Version                : 0100
Color Space                     : sRGB
Exif Image Width                : 750
Exif Image Height               : 750
Scene Capture Type              : Standard
Compression                     : JPEG (old-style)
Thumbnail Offset                : 364
Thumbnail Length                : 13804
Image Width                     : 750
Image Height                    : 750
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 750x750
Megapixels                      : 0.562
Thumbnail Image                 : (Binary data 13804 bytes, use -b option to extract)

使用exiftool将图片的作者信息修改:

root@kali:~/ctf# exiftool -artist='"><img src=1 οnerrοr=alert(123)>' test.jpg
    1 image files updated

修改后的exif信息如下,可以看到XSS语句已经写入到exif信息中:

root@kali:~/ctf# exiftool test.jpg
ExifTool Version Number         : 12.07
File Name                       : test.jpg
Directory                       : .
File Size                       : 82 kB
File Modification Date/Time     : 2020:10:28 23:26:38-04:00
File Access Date/Time           : 2020:10:28 23:26:38-04:00
File Inode Change Date/Time     : 2020:10:28 23:26:38-04:00
File Permissions                : rw-------
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Exif Byte Order                 : Big-endian (Motorola, MM)
Orientation                     : Unknown (0)
X Resolution                    : 72
Y Resolution                    : 72
Resolution Unit                 : inches
Modify Date                     : 
Artist                          : "><img src=1 onerror=alert(123)>
Y Cb Cr Positioning             : Centered
Exif Version                    : 0221
Components Configuration        : Y, Cb, Cr, -
Light Source                    : Unknown
Flashpix Version                : 0100
Color Space                     : sRGB
Exif Image Width                : 750
Exif Image Height               : 750
Scene Capture Type              : Standard
Compression                     : JPEG (old-style)
Thumbnail Offset                : 410
Thumbnail Length                : 13804
Image Width                     : 750
Image Height                    : 750
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 750x750
Megapixels                      : 0.562
Thumbnail Image                 : (Binary data 13804 bytes, use -b option to extract)

在这里插入图片描述
将图片进行上传,直接触发了XSS
在这里插入图片描述
由函数exif_read_data()将我们图片的exif读取出来,由于未设置过滤,导致exif信息中构造的XSS语句直接被执行。
在这里插入图片描述

level15 — AngularJS 触发XSS

分析源码,与之前关卡不同的是,本关卡一开始就引入了一个外部的JS文件:https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js,在下方php代码中还出现了一个新的函数ng-include,代码不长就贴上来吧。

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

对于ng-include的定义和用法,详细参考菜鸟教程

ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include 属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。

也就是说,GET所传入的参数src在经过htmlspecialchars()处理后,又被ng-include当作html文件所包含到了当前页面。这是不是有点像文件包含?只是包含的对象为html文件。

我们尝试在靶机内新建一个html网页,里面写上要执行的话。或者利用ng-include去包含其他关卡的php文件,用通过其他关卡的方法通过本关。

我这里才用了通过自建html来进行实验,首先我们在靶机上新建一个test.html,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>这里填写标题</title>
<script>alert(123)</script>
</head>
<body>
</body>
</html>

代码中的script脚本为我们想执行的XSS语句。接下来在关卡中通过src=去传参,尝试包含html,结果并未通过,且将XSS语句换为鼠标事件和img标签也不行。

http://192.168.159.128/XSS/level15.php?src=test.html

在这里插入图片描述
参考一下先知社区的成功案例,我的思路是对的,唯一不一样的就是先知的payload外是由单引号或者双引号引起来的。尝试构造:

http://192.168.159.128/XSS/level15.php?src='test.html'
http://192.168.159.128/XSS/level15.php?src="test.html"

果然通过了,但是为什么外面要加一个引号?
在这里插入图片描述
经过查阅,在一篇博客中发现了一条结论:

1.ng-include,如果单纯指定地址,必须要加引号
2.ng-include,加载外部html,script标签中的内容不执行,不能加载,如果需要控制器处理需要在主页中注册
3.ng-include,加载外部html中含有style标签样式可以识别
4.ng-inclue,记载外部html中的link标签可以加载

这就可以解释为什么必须加引号才能成功包含test.html并执行其中的语句了。除此之外还收获了ng-include在加载外部html,script标签中的内容不执行,不能加载,如果需要控制器处理需要在主页中注册。

其实,我们还可以通过修改源代码来验证这一说法。第一个箭头所指的是一个处理报错的机制,源码中默认将报错信息关闭了,我们将其注释掉。将 s r c 的 值 设 置 为 " t e s t . h t m l " , 将 src的值设置为"test.html",将 src"test.html"str的值设置为$src,保存再加载level15。
在这里插入图片描述
打开页面后,就出现我们最开始构造的不加引号的payload那种情况,页面并没有成功包含test.html。

如果我们把$src的值设置为"‘test.html’",保存后再刷新页面,即可成功执行XSS语句。
在这里插入图片描述

在这里插入图片描述

level16 — 空格过滤绕过

分析源码,处理程序将script、空格 、/均用str_replace做了转义。
在这里插入图片描述
我们可以采用换行符%0d(回车)或者%0a(换行)作为分隔符代替空格,再配合鼠标事件即可完成绕过,payload如下:

http://192.168.159.128/XSS/level16.php?keyword=test<input%0dname="%0d"%0dtype="text"%0donclick=alert(123)>

在这里插入图片描述
只要知道还可以用换行符%0d、%0a可以绕过空格过滤,做起来比前两关还是要容易一点。
在这里插入图片描述

level17 — embed标签触发XSS

分析源码,采用embed标签嵌入了一个flash,使用GET传入两个参数arg01和arg02,并且用htmlspecialchars() 对两个参数进行了过滤。
在这里插入图片描述
仅采用htmlspecialchars() 进行过滤,又可以采用熟悉的鼠标事件来绕过。
但不知道为什么这里不可以采用onclick()来进行绕过,我试了一下没有成功,但是可以用onmousemove、onmouseover等其他鼠标事件来完成绕过。
使用onmousemove只需要提交后移动一下鼠标,使用onmouseover的话就需要将鼠标移动到flash上才可触发。

http://192.168.159.128/XSS/level17.php?arg01=a&arg02=a%20 onmouseover=alert(123)

在这里插入图片描述

level18

分析源码,这不和level17一样的吗?
在这里插入图片描述

尝试构造鼠标事件XSS,和level17的一模一样
在这里插入图片描述

level19和20两关都是flash的漏洞利用,目前技术有限就不再深入了

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

XSS闯关小游戏通关笔记 的相关文章

  • 当url中有空格时htaccess重定向

    我想从仍然出现在谷歌搜索中的旧网址重定向到新网址 旧的网址是这样的 http www marionettecolla org file 20 mostra milano mostra marionette milano htm 我想将其重定
  • 使用 REST API 进行正确的会话管理

    我已经完成了 RESTful API 的设计 其中我使用作为参数发送的 API 令牌对每个请求进行身份验证 现在我想创建一个客户端界面 我想知道什么是管理每个客户端的会话的正确安全方法browser客户 我想过一个流程来保持服务器端无状态
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • 在 html 中创建子页面 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设我有一个网站http www example com http www example com 如何为此页面创建更多子页面 即 w
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • HTML if 语句在 CDN 失败时加载本地 JS/CSS

    当从 CDN 或任何外部服务器加载 CSS JS 文件时 有可能 即使概率很低 由于外部故障而丢失该文件 在这种情况下 html 页面将因缺乏适当的 CSS 和 JS 而被损坏 有没有一种实用的方法可以在 CDN 故障时加载本地版本 IF
  • 如何保护我的网站免遭 HTTrack 或其他软件的翻录?

    我最近获得了批准的网站模板主题森林 http themeforest net 我的网站流量过多 并注意到我在 Themeforest 上的演示被 HTTrack 等某些软件破坏 如果这种情况持续下去 该产品的销量最终可能会下降 那么 有什么
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • System.Web.HttpException 无法加载类型“[命名空间].???”

    这开始于无法加载类型 全局 错误 在我尝试了一些方法后 没有找到删除 Global asax 文件的位置 现在错误是无法加载类型 namespace 在哪里 是我尝试加载的每个页面的类名 该网站 在 VS2008 本地开发计算机中执行时 工
  • 为什么要使用除 div 以外的任何东西? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • VSTS 构建失败/发布无法在 bin 文件夹中找到 roslyn\csc.exe

    我们有一个网站项目 安装了以下 nuget 软件包 Microsoft CodeDom Providers DotNetCompilerPlatform 1 0 8 Microsoft Net Compilers 2 4 0 The web
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • 发送变量后的 wsdl 服务响应,php

    我是 SOAP WSDL 函数的新手 我有一位客户从一家从事汽车测试的公司获得了 wsdl 文件 我的客户是他们的分包商 他们告诉我们上传有关车牌 类别等信息 一旦详细信息发送完毕 服务器就会做出成功或失败的响应 请您协助 浏览不同的信息
  • powershell Invoke-WebRequest WebSession 不起作用

    我无法让以下代码工作 它似乎已登录 但随后返回带有 response 的登录页面 我猜这与回发有关 有办法解决这个问题吗 谢谢 login Invoke WebRequest Uri http www sqlpass org UserLog
  • 如何获取dart中当前和调用函数的名称?

    C has System Reflection MethodBase GetCurrentMethod Name Dart 是否有类似的东西 但返回当前正在运行的函数以及调用当前运行函数的函数的名称的结果 我编写了一个简单的类 它提供当前函
  • Laravel htmlspecialchars() 期望参数 1 是我的项目中给出的字符串、对象?

    所以我正在尝试编写一个简单的网站表单 但它有这个 htmlspecialchars 错误 我尝试制作 message 但没有成功 有同样的错误 这是我的控制器
  • CSS3 与 JavaScript

    所以我试图在网页上创建一个动画 并试图找到一种使用 CSS3 来实现它的方法 但我对如何做到这一点感到非常困惑 我需要发生的是 当用户单击链接元素时 我希望 div 展开并填充特定于所单击的链接元素的内容 例如 当用户单击标题为 About
  • 如何在您的网站中连接两个人

    有一款名为 Verbosity 的游戏 这是一款有目的的游戏 位于此链接上www gwap com 在游戏中 他们随机连接两个玩家互相玩 游戏是玩家1应该向他的搭档 玩家2 描述一个单词 而玩家2应该猜测这个单词 我正在尝试建立一个网站来执
  • 什么时候最好清理用户输入?

    用户等于不可信 永远不要相信不可信的用户输入 我明白了 但是 我想知道清理输入的最佳时间是什么时候 例如 您是否盲目存储用户输入 然后在访问 使用时对其进行清理 或者您是否立即清理输入 然后存储此 清理 版本 也许除了这些之外还有一些我没有
  • 如何在 Cakephp 3 中创建按字段集分组的多个复选框

    我在阅读本文档时遇到问题 Cakephp3 Cookbook 表单 创建选择选择器 http book cakephp org 3 0 en views helpers form html creating select pickers我尝

随机推荐

  • 1.centOS7 下载安装教程

    1 下载镜像 我选择的是阿里的镜像没去官网 官网下载太慢 阿里云开源镜像站 阿里巴巴开源镜像站 OPSX镜像站 阿里云开发者社区 点击centos下面选择版本 根据自己需要选择 我选择的是isos 后面的名称 我下面为大家一一介绍下 DVD
  • Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明

    陈拓 2023 03 24 2023 03 29 1 Arduino CNC Shield V3 00电机驱动扩展版 注意 板子左侧中间的玻璃管是玻封保险丝 Arduino CNC Shield可以搭载A4988 DRV8825等步进电机驱
  • js逆向(MD5)

    实现中关村MD5登录 比较简单 网址 https www zol com cn 点击登录按钮输入自己的账号和密码 先注册自己的账号和密码 防止ajax请求不到 找到加密的参数 输入账号和密码 调出开发者工具 在fetch xhr这一栏中也是
  • conda和docker的环境打包

    conda 需安装conda pack 命令 conda pack n env o env tar gz ignore editable packages 如果安装了可编辑的包 加上 ignore editable packages doc
  • google api设计指南-简介

    简介 这是联网 API 的通用设计指南 它自 2014 年起在 Google 内部使用 是 Google 在设计 Cloud API 和其他 Google API 时遵循的指南 此设计指南在此处共享 以便为外部开发者提供信息 并使我们所有人
  • 一句Python命令启动一个Web服务器

    利用Python自带的包可以建立简单的web服务器 在DOS里cd到准备做服务器根目录的路径下 输入命令 python m Web服务器模块 端口号 默认8000 例如 python m SimpleHTTPServer 8080 然后就可
  • Top K问题的两种解决思路

    Top K问题在数据分析中非常普遍的一个问题 在面试中也经常被问到 比如 从20亿个数字的文本中 找出最大的前100个 解决Top K问题有两种思路 最直观 小顶堆 大顶堆 gt 最小100个数 较高效 Quick Select算法 Lee
  • vscode中,CMakelists.txt不在根目录下,cmake tools如何写配置文件(指定文件夹cmake)

    当在vs code使用cmake tools搭建cmake环境时 有时CMakeLists txt文件不在根目录下面 而在某个子文件夹里 可以通过修改 vscode下的settings json文件夹 指定配置文件夹 cmake sourc
  • 我的第一台电脑

    男生 有两个亲姐 各相差4岁 我初一的时候 二姐高一 大姐大一 我用过的第一台电脑 差不多是2014年的时候 用过的第一台电脑来自于我大姐的那台联想的i5 4代CPU的笔记本 硬盘甚至不是固态 现在看来非常卡顿 当时用起来感觉还很顺滑 这台
  • 傻白入门芯片设计,芯片键合(Die Bonding)(四)

    目录 一 键合 Bonding 1 什么是键合 Bonding 2 芯片键合步骤 3 芯片拾取与放置 Pick Place 4 芯片顶出 Ejection 工艺 5 使用环氧树脂 Epoxy 实现粘合的芯片键合工艺 6 使用晶片黏结薄膜 D
  • 怎样创建字符串数组

    使用char 数组或string数组 string month Number January February March April May Jun July August September October November Decem
  • useContext详细说明与使用

    一 什么是useContext 在Hooks之前 react开发者都是使用class组件进行开发 父子组件之间通过props传值 但是现在开始使用方法组件开发 没有constructor构造函数 也就没有了props的接收 所以父子组件的传
  • 关于B站的R语言数据分析报告

    一 研究背景及问题提出 2023年1月初 B站在港交所公布的业绩报告显示 从2022年第二季度开始 公司合计统计移动应用和PC端的活跃用户 截至2022年9月30日 公司平均月活跃用户为3 33亿人 环比增加2690万人 创下历史新高 同期
  • DevExpress 本地资源文件的下载和使用

    目的 汉化软件运行时一些控件的文本显示效果 注意无法达到设计时汉化的需求 这个还是需要开发者熟悉英文 1 从官网或者广大网友手里下载获得zh Hans的汉化资源文件包 各个版本都有各自的汉化文件 2 在bin路径下创建文件夹zh Hans
  • 转 C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题)

    实现HTTP访问的流程包括以下几步 1 首先我们打开一个Session获得一个HINTERNET session句柄 2 然后我们使用这个session句柄与服务器连接得到一个HINTERNET connect句柄 3 然后我们使用这个co
  • 第8章 生成式深度学习

    生成模型根据一些规则y 来生成新样本x 本章主要介绍常用的两种 变分自动编码器 VAE 和 生成式对抗网络 GAN 及其变种 GAN是基于博弈论 目的是找到达到纳什均衡的判别器网络和生成器网络 而VAE基本根植贝叶斯推理 其目标是潜在地建模
  • 直流有刷电机驱动设计与分析

    直流有刷电机的驱动是实现电机正转和反转的关键 而H桥电路是常用的驱动电路之一 本文将介绍H桥电路的原理 设计和分析 并介绍一种常用的驱动芯片L298N H桥电路是由4个三极管和一个电机组成 通过导通对角线上的一对三极管 可以控制电机的正转和
  • yum仓库服务

    yum仓库服务 一 YUM仓库的相关概述及部署 YUM仓库 通过YUM仓库完成rpm软件包的安装 升级 卸载等任务 能够自动查找并解决rpm 包之间 的依赖性关系 适用环境 拥有大量的Linux主机的本地网络中 可构建一台YUM源服务器来缓
  • 服务器怎么增加独立显卡,dell服务器设置独立显卡(dell服务器加显卡)

    网页上说的方法 比如什么选什么电源属性 我都试过了 但是性能没感觉提高啊 尊敬的用户您好 以下方法供您参考 bios里可将显卡显示改成可切换显卡 方法如下 进人bios设置界面 选择 config 项目 切换到 display 设置页 找到
  • XSS闯关小游戏通关笔记

    level1 无过滤 分析源码 没有任何的过滤 直接在链接中构造最基本的XSS弹窗即可 弹窗内容为1 level2 input中未设置过滤 分析源码 发现在echo输出中有一个函数htmlspecialchars htmlspecialch