《信息安全数学基础》求生指南
感受先说感受,还就是那个崭新出厂,所以考试前三天才开始学非常痛苦,因为这书真的看不下去
数论部分概念比较简单,但是涉及的计算很多,学到原根解方程那块才知道很多难的点考试是不会考的
抽代部分看书已经看不懂了,建议配合哈工大的网课食用基础概念,考试会考多项式环那块的简单证明和简单计算,其他就是证明了
那那么多证明我哪知道考哪些?会有透题的,或许是自己老师,或许是别的老师,总之保持消息畅通
最后综测80,3.0,算是很满意的成绩了,虽然考试期间有两道计算题我铸币了,算错了好几次最后还是放弃了。
第一章 整数的可除性欧几里得除法
最大公因数所有公因数中最大的那个整数,记作 ( a1,…,an )
最小公倍数所有公倍数中最小的那个正整数,记作 [ a1,…,an ]
整除的进一步性质① 若 c ab、(a,c) = 1,则 c b② 若 p 是素数,p ab,则 p a 或 p b③ 若 a₁,a₂,…,an 是 D 的公倍数,则 D [ a1,…,an ]
真因数不包括这个数本身的所有因数,例如 6 的真因数是 1、2、3
整数分解定理若 n a² - b²,n 不整除 a+b、 ...
Fastjson对JSON字符串、对象及数组进行转换
fastjson依赖包添加网上找到了个不错的api,格式是json,我只会js语言的json处理,赶紧学了一下fastjson
到https://mvnrepository.com/里,搜索Fastjson
选择版本,我用的是1.2.78的kotlin Gradle
FastJson主要类fastjson对于json格式字符串的解析主要用到了一下三个类
(1)JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
(2)jsonobject:fastJson提供的json对象。
(3)jsonarray:fastJson提供json数组对象。
JSON转换JAVA对象转JSON字符串1234567891011121314//java对象转json字符串 public static void beanTojson() { Data data = new Data(); data.setAction("add"); data.setId("1&q ...
记一次Flask后端被渗透的经历
0x00写在前面2021-11-04中午,在flask文档的帮助下,我成功在一小时内搭建起一个带有沙盒的可以执行部分python语句的后端脚本,并第一次将项目部署在docker上。NekoBot新功能+1,在某十几个群开放了此功能,并特别标注为菜单的第-1项,开始期待几个群聊里做渗透的师傅们对其进行攻击。
接下来的20多天里,如此明显的功能几乎没有人使用,这些人几乎全他妈的都在用Bot在看色图、犯病。不过好在有些人注意到了,其中有几位也是打CTF的师傅,可惜他们几乎都在瞎搞()这期间有个南信大的朋友,对bot进行了一些列攻击,可惜这些方式都在我的预判之内,并没成功。但是单纯的部分绕过都做到了,因为真的很简单()
2021-11-27凌晨,在持续几个小时的尝试下,这个后端被巨佬plusls(我也是从前小绿草的腿腿acdxvfsvd大仙贝那得知这位巨佬的)读取了源码,读取到了环境信息,最终利用flask的拒绝服务打了下来(我超我怎么不知道flask还有这个后门)。并在几个小时后发现了最后某几个关键字的绕过方法,基本就能get shell了。
在写waf的时候我预先留了个open方法,这 ...
Selenium爬虫入门
0x00写在前面曾经我以为爬虫只要学会get和post就行了
直到遇上了某些不分离的js原生网页
最后,是Selenium拯救了我
0x01环境搭建安装selenium模块这里是使用python里的selenium模块;java的话,也有selenium的jar包
1pip install -U selenium
我用的是PyCharm,可以直接在里面的包管理工具添加这个包
安装浏览器安装一款浏览器(谷歌,火狐,IE),selenium是基于浏览器运作的,想要selenium能驱动浏览器,必须要安装浏览器驱动,将驱动放到python的安装根目录下即可
此处以谷歌浏览器为例:谷歌驱动(chromedriver)下载地址:http://npm.taobao.org/mirrors/chromedriver
0x02使用123456789101112131415from selenium import webdriver #引用seleniumdriver=webdriver.Chrome() #启动谷歌浏览器driver.get("http://www.baid ...
Docker+Flask构建后端的踩坑记录
今天第一次尝试用flask构建自己的后端项目,其实一切都挺顺利的。直到部署这个环节,因为我对于Flask和Docker不了解,踩了不少坑。
docker这个东西,对于我这个初学者来说,dockerfile是好文明,但是docker本身不是。
在一开始,我总是尝试pull ubuntu镜像,然后再dockerfile里面写上apt-get install和pip,其实何必呢,完全就有官方的python环境镜像。而且,手动更改系统镜像,不一定能达到效果,就好比今天Python环境搞了半天,发现跑不起来,因为期间的软链接创建不成功,无法执行python app.py这个命令(但是它自带的python3没有问题,但是我要的是python2)
写了个自动搭建dockerfile,仅供参考
1234567891011121314151617181920212223//FlaskApp // ├── requirements.txt// ├── Dockerfile// └── app// └── app.py// └── <other .py ...
Flask的食用方法
0x00写在前面一直觉得python写后端是件很方便的事,所以我打算整一个Flask的学习
0x01PyCharm导入环境File-Settings-Project Interpreter,如下图所示:
添加Flask server:
0x02Hello,Flask!新建一个app.py,什么名字都行,记住不要Flask,会冲突
123456789from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello,Flask!'if __name__ == '__main__': app.run()
我们点击运行,即终端输出:
打开网址:
Nekobot开发心得:Silk4j食用笔记
0x00写在前面在进行mirai机器人Nekobot的开发过程中,在论坛中发现了大佬写的silk4j–JVM的语音编码组件,觉得用起来挺不错的,于是去对应的仓库进行了一个习的学,感觉收获挺大的
仓库链接奉上:https://github.com/mzdluo123/silk4j
0x01导入依赖我是kotlin编译的,需要在你的build.gradle.kts里面加上一些东西
12345678910111213// 要使用maven仓库导入,需要先为你的账号生成一个访问token才能正常拉取repositories { maven { url 'https://maven.pkg.github.com/mzdluo123/silk4j' credentials { username = '你的用户名' password = '你的token' } }}dependencies ...
Ubuntu18以上系统64位的glibc的payload调用system函数时,所需注意的堆栈平衡问题
0x00写在前面在Ubuntu18以上的版本,64位的程序若包含了system(“/bin/sh”),就需要考虑堆栈平衡。因为在Ubuntu18下system调用时要求地址和16字节对齐,如果没有栈对齐的话,程序就直接crash了。之前咱做过好几道靶机环境是Ubuntu18的pwn题,本地打得通,但是远程打不通,很令人费解;看大佬们的博客和WP,却只知道Ubuntu18必须得考虑栈对齐。每次都是到最后一步看到远程靶机打不通显示EOF,今天参考了几篇博客想解决这个问题。
这是之前出现栈对齐问题的题,当时都是一笔带过,搞得不明不白的,好在今天应该全都搞懂了(大概)
http://101.35.52.235/2021/04/27/pwn%e5%88%b7%e9%a2%98%e7%ac%94%e8%ae%b0-ciscn\_2019\_c\_1/
0x01原因栈的字节对齐,实际是指栈顶指针必须是16字节的整数倍。栈对齐使得在尽可能少的内存访问周期内读取数据,不对齐堆栈指针可能导致严重的性能下降。
但是实际上,即使数据没有对齐,我们的程序也是可以执行的,只是效率有点低而已, ...
Nekobot开发心得
0x00写在前面开一个帖,记录一下Nekobot的开发心得吧(主要是自己认为比较重要的某些功能的代码实现方法,写给自己,以免忘记)
不过,如果笔记里的这些内容对你有所帮助,那就更好了2333.
0x01通过Get方式请求来获取网页源码12345678910fun httpget(url: String): String? { val client = OkHttpClient() val request = Request.Builder().get() .url(url) .build() val call = client.newCall(request) val response = call.execute() val HTML = response.body?.string() return HTML }
肯定要有的,不然网页api以及爬虫都做不了了
0x02读取本地文件夹的文件名12345678fun getImgLi ...
右键菜单,用VSCode打开文件和文件夹
由于之前在安装VSCODE的时候,没注意详细阅读提示,而且第一次安装比较随意,只是带着想试一下VSCODE才安装的,所以安装的时候漏了勾选open with code这个非常好用的功能!
那么我们应该怎么解决这个问题呢???看了看网上的方法,分为两种:
重装VSCODE,重装大法好啊有没有?(不,重装了好多插件要重新装很麻烦的)
修改注册表(一点都不难,但是要仔细一点)
重装我就不讲了,谁都会的了吧?
那么我来讲一下修改注册表
首先新建一个文本文件。在文本文件中输入以下代码修改注册表,这里要注意一下,里面的路径要修改为自己电脑里VSCODE的绝对路径,而且注意路径的书写,因为在字符串中,所以注意 \ 的转义
1234567891011121314151617181920212223242526Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode]@="Open with Code""Icon"="C:\\Users\\picpo\\AppData ...