第一次组装自己的电脑的经历
开头搬到新校区,宿舍终于不断电了,考虑了很久的台式机计划终于可以搞了,加上第三个项目预支了4000的项目款,终于可以组一台自己的电脑了
配置声明:我没有仔细挑过。而且这方面可以说是一窍不通,看了一周视频速成了一下。
主板: 华硕 TUF B550M-PLUS WIFI Ⅱ
显卡:5700G的核显
CPU:锐龙7 5700G 盒装(带风扇)
内存:科赋雷霆马甲条3600MHz 16G ×2
电源:艾湃电竞金牌全模组650W
硬盘:三星980 1TB版
机箱:长城 阿基米德9PRO
散热:原装
因为买的时候打算当传家宝来用了,所以有些配置是冗余的,价格偏贵。至于总共价格,留到后面再说。
组装组装电脑的过程还是挺有趣的,虽然遇到了不少问题。机箱是最先到的,结果拿到手后才发现机箱有点大过头了,毕竟可以兼容E-ATX主板。
首先先是主板,装主板可以说是最复杂的了。不仅有许多排线,还有很多螺丝需要拧。
第一步,先装CPU,拆开CPU的时候,没想到CPU竟然这么重,沉甸甸的,感觉发热会不小。
小心翼翼地打开主板的卡扣,然后小心翼翼地取出CPU,看着密密麻麻的针脚,真想给他全部薅弯。装的时候,我和舍友研究了好一会CPU的方向,后面发现原来有防呆口。
接下来就是装散热了,本来买了个双塔散热,但是发现好像太大了,对我的性能来说过于冗余,就退货了,选择原装的散热。下图是工具人舍友在装风扇
接下来就是装内存条了,这个没什么难度,只要不傻, 不大力出奇迹,就好。
然后就是固态,这个也没什么难度,把螺丝拧下来,插上去,拧回去就装好了,我没装散热条啥的
主板方面已经完工了,接下来是装电源,电源也有防呆口,所以很好装。因为我们宿舍限电200W,所以舍友很担心我开机时候会不会跳闸。
装好电源后,再把主板装进机箱里,这时候就是最难的一步了。接线,不仅是电源线,还有机箱线,无线网卡的线。我和 ...
HackGame2022部分题解(签到——微积分小练习)
总所周知,中科大每年都会举办一个HackGame,今年也不例外。
今年的比赛从2022 年 10 月 22 日 中午 12:00开始,到 10 月 29 日 中午 12:00(共七天)。在这7天里,我们可以不吃不喝来夺旗(bushi)。题目有难有易,而且对新手还挺友好,像我这样毛都没学过的都可以浅浅拿个1900。遂写篇博客浅浅记录一下这个比赛经历。
先贴一下结果。我好菜呜呜,主要记录一下一些我觉得有意思的题目和解题方法。为了记录一下,我怕我以后都忘记我还会写这个。
签到题目
在规定时间内写下2022来签到。
题解其实只要手速超过光速,可以直接签下四个大字即可(bushi)。要是你没有这么快的手速,还是老老实实找一下方法把,可以看到,他是本地识别,然后再将识别结果用GET请求传给后端。
所以只要直接修改GET请求,修改为2022即可。
猫咪问答喵题目
题解猫咪问答可以说是Hackgame的经典题目了,是一道有关中科大的信息收集题。如果你有中科大同学你可以直接去问问他们(bushi)
先讲一下前三题,
第一题直接在浏览器搜索中国科学技术大学 NEBULA 战队,第一篇里面就有。
第二题直接贴官方题解好了
第三题同
第四题先去Github上找到Linux的仓库torvalds/linux: Linux kernel source tree (github.com)
直接在仓库力搜索这个错误代号
这个commit记录就在这exec: Force single empty string when argv is empty · torvalds/linux@dcd46d8 (github.com)
第五题可以说是六道题中我写的最久的一道题,之前一直想着有没有什么工具可以直接公国ssh 公钥查找域名,结果找了很多,都没找到方法。然后直接把这一整个密 ...
斐讯K2P路由器+Openwrt固件实现校园网多播
前言书接上回。自从买了路由器之后,一周都在不停的刷固件来玩,至今也刷了十几个了。其实当初买k2p的主要目的还是想多拨。因为我们学校校园网一台设备只有40Mbps的上下行带宽。在2022年,家里WiFi都已经是几百兆的时代,40兆的校园网真的太拉了。而且一个账号只能连三台设备,我一个人都有6台需要联网的设备(3台手机+1台ipad+1台电脑+1个小爱同学)。所以整了个二手k2p。但是感觉翻车了,现在只能凑合用了。
刷入Openwrt固件k2p有很多很好用的固件,像老毛子,潘朵拉,高恪,op等等。这里我选op。是因为op支持我校园网的多拨。虽然高恪也支持多拨,但是只支持传统的PPOE拨号,不支持DHCP认证。
要是已经刷入op系统可以跳过哦
废话不多说,首先呢我们先要去网上找k2p的op固件,可以自己编译也可以用别人编译好的。找固件可以上恩山无线论坛 (right.com.cn)的斐讯专区里的k2p专区,这里有很多,随便找一个。
需要注意的是,你的k2p的芯片的型号是什么,这个可以在路由器底部的铭牌上找到
使用Windows(OpenSSH)实现私钥免密码连接Linux(DropbearSSH)服务器
前言今天晚上又折腾了一个晚上的路由器,终于搞定了局域网的端口转发到校园网。以后可以在学校的任何一个角落都连接到我的电脑了,乐。详细的操作之后有时间再记录吧,今天先来写一个简单的经验分享。因为路由器需要多拨,我自己设置的自动拨号频率是十分钟一次,但是有时候很容易掉一两个号,这时候就需要我手动拨号乐。以前每次拨号都需要远程连接一下路由器命令行来执行脚本,实在是太麻烦了。所以我就想,能不能直接在电脑上发送一条指令让路由器自动拨号,然后我就找到了ssh客户端的私钥验证方法,但是路由器装的是DropbearSSH,所以和网上的大多数教程不太一样,遂自己参考大神的方法自己写了一个
关于DropbearSSH和openSSH一般我们的windows电脑上都会自带一个SSH客户端,就是这个openSSH,这是一个功能齐全的SSH客户端,在诸多平台上都有存在。
一般的Linux发行版都安装有OpenSSH,但是在路由器上,由于空间不足,很多固件会选择使用DropbearSSH。
关于DropbearSSH:
dropbear作为一款基于ssh协议的轻量级sshd服务器,相比OpenSSH,其更简洁,更小巧
所以这个ssh客户端的私钥验证和普通的ssh客户端有些不同,下面我会详细说说
在Windows上创建密钥对首先我们需要创建一对公钥和私钥,公钥放在远程Linux服务器上,私钥则放在本地的电脑上。
创建一个4096位的密钥对,并以你的邮箱为注释
1C:\Users\PBDELL> ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
创建的时候,它会提示你选择密钥对存放路径,直接按回车则存在默认的路径下
接下来,如果你之前已经创建过密钥对了,最好不要覆盖,不然之前使用这个公钥的应用就会出问题,比如g ...
安卓Termux安装ubuntu+alist实现文件中继服务
1.前言上几周刚搬校区,来到了一个鸟不生蛋的好地方,三面都是荒地,一面是大海,海的对面是南朝鲜。除了宿舍稍微好点,其他地方都输麻乐。不过,新宿舍有了明显的网线口,这就能让我完成上个学期一直没完成的计划乐——拿我的二手小米5搭个alist服务,这样我就可以,同时管理多个网盘乐。
之前因为校园网账号不够,所以这台小米5就没有拿来用,装了k2p路由器后,再也不缺网乐,所以便有了今天的计划。
2.安装TermuxTermux到处都能找得到,葫芦侠,酷安等等。当然也可以看看官网:Termux | The main termux site and help pages.然后打开首页
有了linux系统,咱一般做的第一步就是——换源。不然默认源的下载速度太慢了,Termux换源方法网上很多,这里推荐一个简单的:
1sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
然后我们还需要使用sudo来执行命令,所以使用pkg安装一个:pkg install tsu
准备工作完成,接下来就可以开始安装Ubuntu系统了
3.安装Ubuntu在没有root的情况下Termux是不能直接装ubuntu的,这里需要用到一个工具Proot,来安装‘阉割版’的Ubuntu。
关于proot
首先先安装proot
1pkg install proot-distro
安装完成后,可以使用
1proot-distro list
查看可以安装的Linux发行版
接下来就可以选择你想安装的Linux发行版本了,这里我选择Ubuntu
...
Django 报错 'WSGIRequest' object has no attribute 'data' 的一个解决方法
报错截图
报错描述
之前写Django后台的时候没遇到过这个bug,是今天写项目才遇到的bug
报错分析
看报错,是出在一个自定义的权限认证函数中,在仔细看看报错,发现是后台登录使用了自定义的权限认证类
在Pycharm中用 Ctrl + shift + N 输入文件地址,找到这个文件__init__.py的77行对应的函数调用,
再 Ctrl + 鼠标左键 点击查看 这个backend从哪里来的
现在可以看到,这个_get_backends函数很可疑,我们再跳转看一下
到这里真相水落石出了,
get_backends函数从settings的AUTHENTICATION_BACKENDS里面寻找权限认证类,然而我忘了添加自带的权限认证类,只有我自定义的权限认证类,所以这个函数就使用了自定义的权限认证类。
解决方案
添加 django.contrib.auth.backends.ModelBackend 即可解决问题
一丢丢心得
暑假写的项目,可以说通过这个项目,对Django有了更深入的了解,也学会了往底层找问题,重写某些类的方法,之后浅浅分享一下Pycharm写Django的心得吧。
最后想说,写这个项目好难,又好累,还是好好学习吧。
算法笔记①——快速排序and归并排序and二分查找
浅浅记录一下,学的快排与归并与二分。视频地址:第一章 基础算法(一) - AcWing
快速排序听名字就知道是很快的算法,听了y总深入浅出的解释,我对于快速排序的理解进一步加深了。在大一上的计导课里,有一个实验就是让我们用人体计算机的方式实现快排。当时,不记得是王老师还是助教说只能使用单指针的快排,然后我琢磨乐好久也没搞明白该怎么排,后面半推半就做完了那个实验。之后,快排就忘得一干二净了哈哈哈哈。现在听了y总的课,我总结出了以下几个要点,记住这几个要点,可以更容易背住模板。
当递归到最底层,只有一个元素的时候,是不用排序的,所以此时直接return即可,这也是递归的出口,判断条件就是左边界是否大于右边界。
选取一个分界的数,可以选数组里任何一个数,第一,最后,中间都可以,看情况
选取左右指针时,要选在两个指针的外边;左指针就在左边界减一处;右指针在有边界加一处。
对于一次快排,原理就是使所有比 X(选定的数)小的数在X左边;所有比X大的数在X的右边,所以套一层while循环,判断条件是两指针是否相遇。
然后两个指针开始移动,左指针往右移动,遇到第一个比X大的数停下;右指针同理。
两个指针停下后,如果没相遇,就交换两个数。
然后分成两个区间,再递归使用快排。
快排模板
123456789101112131415161718192021222324252627282930313233343536#include <iostream>using namespace std;const int N = 1e6+10;int q[N];int n; void quick_sort(int q[],int l,int r){ if (l >= r) return ; //递归出口 int i = l - 1; //左右指针 int j = ...
记录一些M1卡密钥计算方式和校验位计算方式
前言最近这两年陆陆续续收到一些M1卡的数据,每次简单滴破解了一下之后感觉挺有意思的,但是害怕以后没过多久就忘记了,所以打算以我能看懂的形式浅浅的记录一下。
密钥算法算法一这是个非常非常非常简单的算法,只涉及到了异或
UID和Key的映射关系如下图:
具体算法:
u2 XOR 12 = k1u4 XOR A5 = k2u3 XOR 34 = k3u4 XOR AB = k4u2 XOR 6A = k5u1 XOR 36 = k6
u1,u2,u3,u4分别对应UID的第一,第二,第三和第四位,k1-k6分别对应Key中的第一到第六位。
一些数据
算法二这个算法是某个学校的水卡的密钥算法,可以说算是非常地复杂了,当时花了一个星期才破解出来。这个对应关系有点复杂,每一位的第一个和第二个数字有其单独的对应。
UID和Key的映射关系:
每一位Key的算法都有点复杂,比如
Key1以这个为原像,建立k1的映射
映射之后如下:
这里我们设第一个数字为a,第二个数字为b,则k1的算法可表示为:
a XOR 1 = 第一位数字
(30 - b) % 16 = 第二位数字
这算是6位key中最简单的一个了。
Key2由原像映射的像如下
算法:
如果 0 <= b < 7:
则 (20 - a) % 16 = 第一位数字
如果 7 < b < 16
则 (19 - a) % 16 = 第一位数字
b XOR 1 = 第二位数字
Key3映射关系
算法:
如果 0 <= b < 7:
则 ((a + 1) % 16) XOR 5 = 第一位数字
如果 7 < b < 16
则 a ...
校园网安全问题
起因信息安全实在是太重要太重要。不过,在疫情时代下,公民个人隐私信息泄露已经是家常便饭了,今天,来给大家看看,通过合法手段(指在通知群里面拿到的数据),获取到的个人隐私数据,能反映出什么问题。
关于校园网校园网大伙都不陌生,有些是学校自己搭的,有些是外包给运营商来做的。今天我们故事的主人公——某某大学,有自己的校园网,但是这个校园网,有一个问题。就是校园网的默认账号是学生的学号,密码则是学生本人的身份证号后六位。乍一看,这也没什么,起码默认密码不是123456。但就是这样的设计,造成一个问题。学生会认为:别人又不知道我的身份证,所以我直接用身份证后六位这个默认密码,很安全呀!然而,正式这种想法,让许多人的校园网账号在裸奔。
关于信息泄露进入疫情时代以来,人们开始大规模的使用许多的线上在线文档,办公协作,还有视频会议软件。这些软件在大大方便我们生产工作的同时,也为我们埋下不小的信息安全隐患。举个最常见的例子,很多在线填写信息的excel表格,往往是多人在同一个界面填写信息,这其中有些是敏感信息,比如学号,身份证号,手机号等。如果有人别有用心,这些信息就会被他们收集起来,拿去做一些坏事。这就是说者无心,听者有心。但大多数情况下,许多的信息泄露都是发送文件的人,为了图省事,就直接把整个包含所有人的信息的excel表格直接发出去了,这也是今天这个故事的起因——用各种通知群里面发出来的文件,获取到身份证号,学号等个人信息,然后使用Python的小爬虫进行模拟登录,找出某某学院的21级新生中有多少人校园网还在用默认密码(身份证后六位)。
测试回放首先呢,在年级的大群里,俺们辅导员曾由于失误,一不小心把整个学院(四个年级+所有研究生)本科生和研究生的个人信息(包括学号,手机号班别年级等)都给发出来了。很快地,辅导员就撤回了。但是呢,我的QQ是装有QX模块的,里面有个防撤回功能,然后我当时 ...
网络破防实践先导实验四————XSS攻击
前情回顾终于一路跌跌撞撞,终于来到了网络破防这门课最后一个实验,这次这个实验的可以说四个实验之中最简单的,我只花了不到一个小时就搞定了。
XSS介绍首先,什么是XSS攻击呢?
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 ——摘自百度百科
我的理解就是,利用一些输入框,然后输入一些能产生特效果的语句,让网页执行你需要的代码,以达到攻击的目的。
网页一般用的html,如果输入的内容没有进行转义,在输出的时候有可能会变成网页html的一部分,像这种
反射型XSS
除此之外,还有DOM Based XSS
DOM Based XSS
XSS的过滤和绕过XSS攻击是一种很常见的攻击方式,所以很早就有了各种各样的防护方式。但是道高一尺,魔高一丈,XSS攻击也有许多绕过方式,如下:
闭合引号、标签
关键字过滤
编码绕过
宽字节绕过
其他技巧绕过
关于每种技巧:
闭合引号、标签
关键字过滤
编码绕过
宽字节绕过
其他绕过
实验过程Target 1Target1比较容易,直接输出即可,
1<script>alert(document.cookie);</script>
Target 2Target2需要先把第一个a标签给结束了,才可以写自己代码,先随便输点东西看看输出的格式,
可以看到,输出的内容是在一个a标签的herf属性 ...