- 博客(94)
- 收藏
- 关注
原创 简单理解JS中的this关键字
利用这跟线函数体中的this 指向 函数作为方法被调用时所在的那个对象虽然有些不合理,但是确实能够较好的"解释"和记住this在各种情况下的情况。
2023-01-01 22:28:01
1097
原创 三星Note3 SM-N9009 国内天翼版本安装谷歌框架
Samsung Galaxy Note3 SM-N9009 get Google Framework
2022-09-05 18:02:54
876
原创 如何白嫖最新版BurpSuite Pro
而免费的BurpSuiteCommunityEdition功能不全,爆破的时候甚至每秒只能请求1次,完全不能满足爆破密码时候的需求。最近由于实验室远程漏洞检测项目难度升级,我被迫需要去使用Burp了,不能再像以前一样两个扫描器挂着等着成果来了。网上搜索过后发现这个项目可以去生成最新版BurpSuitePro的Lisence,实现免费激活。以下是优雅的在windows上运行BurpsuitePro的步骤。...
2022-07-20 22:43:09
813
原创 setTimeout第一个参数应该注意的地方
第一个参数应该是一个函数,而不是一个函数的调用。这样的语句看起来没什么问题,1000毫秒之后执行 console.log(‘23333’)。但这是完全错误的,在浏览器里你会发现,他没有等待1000毫秒,而直接输出了。而在node中会在立刻输出23333后报错。报错的提示是。我们知道,console.log的返回值就是undefined。所以在这里看起来是一个函数,而他实际上就是一个。所以我们可以有两种解决办法,一个是在后面传入参数。当参数很多的时候这就显得很麻烦,也不太好理解。更好的方法是把调用语句包装
2022-07-12 13:38:28
556
原创 红宝书第四版的一个错误?
在 JavaScript高级程序设计(第四版)的 8.4节,那一节在介绍类,在第253页,pdf的话是在278页。这里马特(红宝书第四版作者)想要说明的一个观点是,直接new 一个类,和new 类的构造函数 的结果是不一样的,然后它给出了一些代码,通过输出结果证明了确实不一样。但是这里马特犯了一个错误,他试图通过获得类里面定义的constructor,但是实际上constructor是定义在上的,所以应该通过来获得这个构造函数。以下是两者区别的直观显示。[外链图片转存失败,源站可能有防盗链机制,建议将图片
2022-07-10 14:23:54
334
原创 论构造函数的原型是谁
我们知道,作为构造函数,比如,它们都有一个属性,在new一个新的对象的时候,会把这个对象的原型设置为这个属性指向的对象。下面的语句可以证明这一点。我之前也一直以为,构造函数Object的原型也是,因为这个属性也太富有迷惑性了,光看名字很容易让人这样想。直到今天,我发现和不一样。我便陷入了疑惑,在我之前的认知里,作为一个不太规范的属性,是用来获得某个对象的原型的,而从字面意义很明显也是获得原型的。那按理说这两个属性应该是返回相同的值,现在却不一样了?现在我们用规范设定的标准方法来获取Object的原型,看
2022-07-09 21:38:36
435
1
原创 关于url编解码应该选用的函数
先给出所有的函数其中第一组已经被废弃了。因为它不支持unicode的编解码。可以看到escape对于中文无法获得正确的url编码。至于 encodeURI 和 encodeURIComponent之间的差别,前者适用于编码整个形成整个URI,而后者适合编码局部,比如search部分。可以看到encodeURI能够获得一个非常正常的可以访问的URI链接。而encodeURIComponent对于同样的参数的结果如下。可以看到,它把正常URI链接里面的 和等字符也给编码了,这就导致得到的字符串不再是一个合法的U
2022-07-08 13:14:12
525
原创 关于暂时性死区
如果我们要写一个for循环,我们可能非常熟练地写出以下代码我们也很知道,实际上for循环每次循环的时候都会重新初始化一个新的 i。所以每次的 i 不光值是不同的 它也是不同的变量。这也是为什么 for let能够解决定时器奇怪输出的原因。如果for的每次循环中的 i 是同一个,只是值得变化,那么由于定时器是宏任务,会在同步代码之后执行。那么它输出得应该是 5 5 5 5 5。但是现在输出得不同,说明 每次循环中 得 i 是不同的变量,而console.log(i)中的 i 由于函数闭包,可以访问到对应循
2022-07-07 16:16:54
180
原创 关于字符串截取函数应该使用哪个的拙见
如果我们要写一个for循环,我们可能非常熟练地写出以下代码我们也很知道,实际上for循环每次循环的时候都会重新初始化一个新的 i。所以每次的 i 不光值是不同的 它也是不同的变量。这也是为什么 for let能够解决定时器奇怪输出的原因。如果for的每次循环中的 i 是同一个,只是值得变化,那么由于定时器是宏任务,会在同步代码之后执行。那么它输出得应该是 5 5 5 5 5。但是现在输出得不同,说明 每次循环中 得 i 是不同的变量,而console.log(i)中的 i 由于函数闭包,可以访问到对应循
2022-07-06 13:58:28
772
原创 为什么不能在for循环中使用const声明迭代变量
如果我们要写一个for循环,我们可能非常熟练地写出以下代码我们也很知道,实际上for循环每次循环的时候都会重新初始化一个新的 i。所以每次的 i 不光值是不同的 它也是不同的变量。这也是为什么 for let能够解决定时器奇怪输出的原因。如果for的每次循环中的 i 是同一个,只是值得变化,那么由于定时器是宏任务,会在同步代码之后执行。那么它输出得应该是 5 5 5 5 5。但是现在输出得不同,说明 每次循环中 得 i 是不同的变量,而console.log(i)中的 i 由于函数闭包,可以访问到对应循
2022-07-05 23:34:36
1040
原创 for循环中var声明导致定时器输出奇特现象的粗略解释
代码输出的结果是这看起来不符合直觉,直觉的结果应该是 0 1 2 3 4。导致这个结果的实际上主要有两个原因var申明变量的作用域为函数作用域你可能会疑惑,这里也没有函数啊,实际上你可以把这整个代码想成一个大函数,大函数里的变量实际上就是全局变量了。所以每次setTimeout里面那个 i 指向的都是同一个 i 。但是 你可能会疑惑,是同一个 i 没错,但是 for 循环不就是让 i 的值在变化嘛?那样还是不一样的啊!这就引出了以下的原因。JS的事件循环机制,每次设置定时器都是往宏任务队列里面塞任务。但是
2022-07-05 23:03:25
341
原创 软件安全笔记
又考完一门试了,把笔记扔这里吧。第一章 软件安全概述1.1软件的概念软件 = 程序 + 数据 + 文档资料软件功能系统软件支撑软件应用软件软件规模微型、小型、中型、大型、甚大型、极大型服务对象的范围面向客户的项目软件面向市场的产品软件1.2软件安全的由来软件应用越来越广泛软件自身的原因Connectivity 互联性Extensibility 拓展性Complexity 复杂性黑客攻击方式的进化传统技术的不足.
2022-05-15 14:27:20
3773
原创 计算机系统安全笔记
考完试了,把笔记扔这里吧。一.绪论1.1信息技术的高速发展和网络空间安全态势1.2 网络空间安全的基本概念信息的安全属性机密性完整性可用性可控性可鉴别性1.3 网络空间面临的安全威胁安全威胁人为威胁 【有意和无意】环境因素 【自然因素和其他物理因素】威胁的来源 ISO15408环境因素、意外事件和故障无恶意的内部人员恶意的内部人员第三方 【合作伙伴 供应商恶意无恶意】外部人员攻击威胁的层次设备层系统层数据层应用层1.4 网络空间安全的技术.
2022-05-06 17:21:35
1207
原创 在JavaScript中使用最大优先队列
背景作为一个算法白痴,昨天晚上十点半第一次参加了Leetcode的双周赛,其中有一道**题目**是这样的。给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。(注意,在后续操作中你可以对减半过的数继续执行操作)请你返回将 nums 数组和 至少 减少一半的 最少 操作数。示例 1:输入:nums = [5,19,8,1]输出:3解释:初始 nums 的和为 5 + 19 + 8 + 1 = 33 。以下是将数组和减少至少一半的一种
2022-03-20 22:41:10
1094
原创 vscode 调试 typescript
运行typescript正常情况下typescript 需要被编译成js后再手动运行,十分麻烦。我们可以用npm全局安装ts-node来直接运行.ts文件,十分优雅。npm install -g ts-node 调试typescript当我们遇到一个比较难的题的时候,就需要调试发现问题的病症。普通的js文件我们安装node后会自动有调试环境。直接按F5然后选择Node,即可开始调试。但是typescript不行。我们需要手动创建launch.json然后输入以下配置{
2022-03-19 13:28:46
3198
原创 wsl2 能ping通主机但是无法访问主机代理解决方案
问题描述WSL2能够ping通主机WSL2设置setproxy后无法访问任何网站关闭windows防火墙后能够成功代理解决方案查看 https://github.com/Fndroid/clash_for_windows_pkg/issues/832后得知可能是TAP模式和WSL2冲突了。我把TAP Device和Service Mode全部卸载后成功实现代理。...
2022-03-15 10:54:14
2373
原创 docker命令push,pull等设置代理
我们都知道,docker pull等命令无法直接识别终端中设置的http_proxy。使得docker pull拉镜像的时候很慢。https://docs.docker.com/config/daemon/systemd/#httphttps-proxy官方文档明确写出了命令行设置代理的方法。实际上docker pull这种命令归docker daemon管,即docker的守护进程。而官方文档的操作正是把docker daemon进行代理。...
2022-02-25 22:41:50
3158
原创 RaiDrive NonProfit 非盈利版
背景寒假的时候因为想要在本地挂载阿里云盘发现了RaiDrive这个好东西。它支持多种协议,比如webdav、sftp协议的挂载,还支持许多网盘,比如onedrive和google drive等。以下是我现在挂载的一些网盘/NAS。你可以直接像在本地磁盘中一样,访问网盘中的文件,甚至直接用本地播放器直接播放视频。如果有服务器的同学,可以利用SFTP协议直接把你的云服务挂载到本地。这样你就能够像操作本地文件一样管理云服务器了。我之前实现类似的操作,借用的软件是winscp,但是现在已经不需要了。
2022-02-24 18:56:23
31674
11
原创 wsl2 ping不通windows主机问题速查
1. 用虚拟机内网ip能否ping通windows主机?在wsl2里面ping这个ip,看看能否ping通,如果可以直接跳到第二条。如果不行,则参照这个链接 https://zhuanlan.zhihu.com/p/365058237 。在powershell中以管理员权限输入以下命令New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
2022-02-18 21:33:29
17618
8
原创 天降公网ip | 你也许已经有公网IP了
背景之前因为家里是移动的宽带,不给你分配公网ip,所以你无法实现类似在逛街的时候远程连接家里的电脑之类的操作。相比于移动,我哥家里的宽带是电信的,他一个电话过去,电信立马给了公网ip,所以他可以随时随地远程控制他的电脑,这令我很羡慕。内网穿透之旅当然了,在过去一个学期里,随着知识和经验的进步,我学会了内网穿透。简单的理解起来,它干的工作类似于端口转发,只不过我们把本地的服务转发到了一台有公网ip的云服务器上。上个学期我购买了一台阿里云轻量级应用服务器,然后利用开源的内网穿透工具 fatedier/
2022-02-18 20:15:43
9105
12
原创 利用rsa公钥 免密登录Linux服务器
背景由于实验室远程检测的项目需要从实验室的机器上进行扫描,如果直接在宿舍用我的机械革命来扫描的话,按理来说是非法的。一般情况下我都远程连接到的的实验室主机,然后开始扫描,为了提高效率,我都会同时开很多个终端类似这样。但是每次去开新终端的时候,都需要输入密码来进行ssh连接。有时候手贱很多次都输不对,今天便打算着手实现密钥登录,告别密码。过程在windows主机上新建一个密钥ssh-keygen -t rsa然后全部回车使用默认设置即可。图中框起来的就是rsa公钥了,我们需要将此
2021-12-08 13:32:59
1499
原创 机械革命Z2air实现 Wake On Lan 远程开机
背景几个月前,我就想要实现远程开机笔记本。配合上RD Client实现真正意义上的远程。但是当时遇到了各种问题,首先是进不了BIOS,还一度卡开机logo。后来查明原来是硬盘的原因,便慷慨地把那块512G的SSD送给了wy同志2333。wy同志回赠了我一个1T的移动硬盘,事实证明移动硬盘更符合我的需求。笔记本自带的512G已经完全能够满足平常的需要了。平时若有想备份的东西便可以放在移动硬盘里,而不必插一块大容量ssd在笔记本里,一直供着电但空空如也。当时解决了BIOS问题后,还在网卡设置里进行了一番探
2021-09-03 18:15:24
5884
5
原创 CTFHUB——文件上传之前端验证
网页源码<body> <h1>CTFHub 文件上传 - js前端验证</h1> <form action="" method="post" enctype="multipart/form-data" onsubmit="return checkfilesuffix()"> <label for="file">Filename:</label> <input type="file"
2021-09-01 12:49:37
1016
原创 CTFHUB——反射型XSS详解
背景本来看ctfhub上有xss的题目,打算好好学习一波,结果点开一看,只有一道题2333。便现在dvwa上熟悉了一波。所谓反射型是相对于存储型来讲的。如果黑客的xss注入是通过某种方式储存到了数据库中,那就是存储型的,这种xss的特点就是每次访问该页面都会收到xss攻击,因为js语句已经放在数据库里了。而反射型xss则不是这样,每次触发只能手动输入和点击才能触发。我认为xss产生的原因主要是对便签审查不严格造成的。dvwa xss例题下面写一下dvwa中的三种难度的反射型xss。<?
2021-09-01 02:23:26
7712
2
原创 CTFHUB——Cookie、User-Agent、Referer注入 writeup
背景我们一般做sql注入的时候,注入点一般都是一个文本框,然后我们可以通过输入某种特殊的语句来获得数据库中的信息,但是有时候这种注入点可不一定给你一个文本框,而可能在请求包中的其他地方。接下来我分享一下CTFHUB中的三道题,它们的注入点分别是请求包中的Cookie、User-Agent和Referer。它们只是注入点不同,基于的的注入方式都是最基本的union联合注入。所以它们的payload都十分简单和相似。在这次做题过程中,我还尝试了强大的sqlmap,成功得到了一些结果。SQL注入——Coo
2021-08-29 12:41:20
775
原创 CTFHUB SQL注入——时间盲注 附自己写的脚本
介绍时间盲注和上一篇布尔盲注一样都是盲注,都需要借助length,ascii,substr这些神奇的函数来猜测各项信息。它们的差别是猜测成功的依据。布尔盲注的话如果查询有结果,一般会有一个success_flag,比如在上一题里就会返回query successfully。我的脚本也就是request返回值里有没有这个文本来判断是否查询成功的。但是时间盲注不一样,它不光不给你查询的内容的回显,不给你报错信息,甚至连布尔盲注里的success_flag也不给你。也就是什么情况呢?你在那里查询,它什么信息
2021-08-28 21:14:32
2414
2
原创 CTFHUB——SQL布尔盲注自动化脚本的实现
背景很久以前做过布尔盲注的题目,但是当时用的是网上的代码,跑出来flag了也是一知半解,没有收获。今天花了一下午的时间写了一个布尔盲注的脚本。介绍布尔盲注使用场景的特征十分明显,即界面不会给出查询的具体结果,也不会给你报错信息。而只会告诉你查询成功还是查询失败。这就需要我们去利用一些神奇的函数比如substr,ascii,length来猜测。猜测什么呢?首先猜测数据库的长度,知道了长度,就去猜数据库每个字符。知道了数据库,就去猜数据表的个数,表名长度,具体表名等等等等。也就是所有的一切都是你需要
2021-08-27 19:54:20
1674
5
原创 PHP Docker镜像如何开启拓展
背景很久之前,有一个ctf比赛,大家都在俱乐部里使劲。当时我做到了一道php的题目,里面需要用到php插件中的压缩,但是当时我不知道如何开启插件,当时非常苦恼,想着一定要解决一下这个问题,不然以后再遇到这个问题就麻烦了。今天在做sql盲注的时候,想现在本地实践一番,写出个脚本再开题目。结果本地上来就给我一个mysqli找不到。我便花了很长时间去寻找开启插件的方法。在php.ini里试了一下,但是都没有成果,最终我开了一眼dockerhub的php镜像说明,豁然开朗,原来镜像开始拓展如此简单。解决办法
2021-08-26 21:05:45
523
1
原创 CTFHUB——SQL 报错注入三种方法全解
背景Sql注入主要有三种方法,extractvalue和updatexml函数形成的xpath报错,这算两种。还有一种就是floor实现的group by主键重复,这算另外一种。本篇文章将对CTFHUB中的SQL报错注入题目从头到尾对这三种方法进行实践。利用extractvalue来xpath报错。1 and (select extractvalue(1, concat(0x7e, (select database()))))1 and (select extractvalue(1, conc
2021-08-25 15:24:16
3001
2
原创 关于SQL中group by主键重复报错注入 适用版本问题的探讨
背景今天在做ctfhub的sql注入的题目。做到了报错注入这一个,还没有开环境,就先想在本地试一下报错注入的大体流程。根据xpath报错的两个函数extractvalue和updatexml都复现的很好。但是用floor函数让group by主键重复,从而产生报错信息的复现始终失败。我试了windows、wsl、ubuntu的mysql环境,全部都是以下的结果。ERROR 1022 (23000): Can't write; duplicate key in table '/tmp/#sql73d_a_
2021-08-25 13:47:17
751
2
原创 JavaScript自动切换并播放视频 | Tampermonkey
JavaScript自动切换并播放视频 | Tampermonkey背景:接上篇文章。昨天的脚本已经实现了自动在视频播放过程中点击突然出现的按钮使之继续播放,但是这还存在很多问题。每次视频播放完需要自己切换到下一个视频每次视频都需要手动在控制台中输入代码如何获取需要播放的视频?观察源代码。<li class=""> <a style="width:70%;color:red" href="/fzdx/play?v_id=1119&r_id=410
2021-07-10 21:11:58
13410
5
原创 党旗飘飘平台正确打开方法 | JS定时点击按钮
党旗飘飘平台正确打开方法 | JS定时点击按钮背景:最近学校发展对象需要在"党旗飘飘"平台上观看党课视频。而这个平台不支持视频调速,而且时不时跳出来一个按钮,点击后视频才会播放,十分麻烦,于是就想办法解决。最狠的办法在控制台中输入以下代码,直接将视频跳转到最后一秒。var video = document.getElementsByTagName("video")[0];video.currentTime = video.duration-1;比较好理解,利用getElementsByTa
2021-07-08 19:18:06
11601
5
原创 英语诗歌选读 | 期末总结
诗歌内容分析SONNET 18莎士比亚在此诗终有一个重要意象,那就是夏天。对于英国人来说夏天是最美丽的季节,所以speaker将爱人比作夏天,是令人惊叹的比喻。但是夏天会苍老,每人也会根据自然规律慢慢凋谢。但是speaker对爱人自信的说道:你的夏天将长盛不衰,不朽的诗将于你同在,只要人类能够睁眼和呼吸,这首诗就会赋予你生命。莎士比亚死于1616年,400年后的我们仍然在学习这种诗,诗中speaker的爱人也确实得到了永生,将会一直有人记住她,只要诗不衰亡。SONNET 19这首诗在最后也提出了诗歌
2021-07-04 23:12:35
4231
原创 一份将数据存入图数据库文件的分析
graph_test.py和import_hg.py文件的分析话接上篇,我们已经研究了re_web_scraping.py这份爬虫文件,它的内容是将CVE有关信息从网页上爬取下来存入MongoDB中。今天我们再来研究一下import_hg.py文件和graph_test.py文件。最长并且最难的graph_generator4.py放到下次研究。graph_test.py源代码# -*- coding: utf-8 -*-from PyHugeGraph import PyHugeGraphCl
2021-06-03 23:19:13
264
1
原创 一份爬虫文件的分析
一份爬虫文件的分析最近实验室学长布置下来了任务,是有关将各种CVE的信息整合后形成一张攻击图的。下面的代码是最开始的步骤,目的是通过python爬虫将CVE的四个目标信息从两个网站上爬取下来,并存入mongodb数据库。源代码# Script to web scrape vulnerability information into mongodbfrom bs4 import BeautifulSoupfrom pymongo import MongoClientfrom urllib.r
2021-06-02 00:35:01
390
原创 Cache-主存地址映射
Cache-主存地址映射这几天十分懒惰,都没有复习计组,现在勉强把第四章看完了,最后一个内容Cache-主存地址映射一开始看不懂,现在终于差不多懂了,再把做题的步骤写下来供下次参考题目一假设主存容量为512K,Cache容量为4KB,每个子块为16个字,每个字32位。(1)Cache地址有多少位?可容纳多少块?题目没有说是按字访存,所以默认就是按照字节来访存。所以Cache的地址有多少位呢,我们就先看看它有多少个字节。Cache的容量是4KB,所以一共有4K个字节。所以Cache地址的位数就
2021-05-31 00:12:44
8384
6
原创 英语诗歌中的格律与韵 | Meter & Rhyme
英语诗歌中的格律与韵 | Meter & Rhyme这学期的英语选了英美诗歌选读,到目前为止已经学习了许多诗歌专业术语,下周到对术语进行测试,同时我还要做Presentation。所以在这里写一下两个最重要的概念——Meter & Rhyme。Meter我们在这里把它翻译为格律。其实格律就是诗歌中节奏[Rhythm,区分Rhyme]的模式。格律由音步[Foot]的类型和数量来描述。The pattern of rhythm is an English poem is calle
2021-05-27 19:10:35
16011
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人