先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
标题一、解码和编码
- base64解密和加密及其隐写
(1)base64编码后面常带有等号,且编码中会出现大小写字母,数字,还有加号和斜杠。我常用下面的网站进行解码和编码:
https://the-x.cn/zh-cn/encodings/Ba删掉我se64.aspx
同时也能保存为文件,十分方便
(2)base64隐写
可用python代码(借用【精选】[MISC]Base64隐写_Weird0_的博客-CSDN博客的代码)
def b64ord(char):
if char in 'abcdefghijklmnopqrstuvwxyz':
return ord(char) - 71
elif char in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
return ord(char) - 65
elif char in '0123456789':
return ord(char) + 4
elif char == '+':
return 62
elif char == '/':
return 63
else: return
with open('flag.txt', 'r') as f:
ostr = f.read()
info = ''
flag = ''
count = 0
for i in ostr:
if i == '\n':
count += 1
ostr = ostr.splitlines()
for i in range(0, count):
tmp = ''
if '==' in ostr[i]:
code = b64ord(ostr[i][-3])
tmp = str(bin(code))[-4::]
#由于python会在二进制数前加上'0b',所以采取以下操作去掉
if code <= 1:
tmp = '000' + tmp[-1]
elif 2<= code <= 3:
tmp = '00' + tmp[-2::]
elif 4<= code <= 7:
tmp = '0' + tmp[-3::]
elif '=' in ostr[i]:
code = b64ord(ostr[i][-2])
tmp = str(bin(code))[-2::]
if code <= 1:
tmp = '0' + tmp[-1]
info += tmp
#将得到的结果拼接起来
for i in range(0, len(info), 8):
flag += chr(int(info[i:i+8], 2))
print(flag)
2.其他编码
(1)base编码家族
除常见的base64外,还有base32,base16,base100等,各自有各自的特点
(2)其他编码
除此之外还有各种各样的编码,需要不断地学习积累经验
可以使用工具尝试各种各样的解密与加密,来寻找究竟是哪种编码
标题二、图片隐写及python处理图片
使用工具如下
1.010 Editor:010 Editor是一款功能强大的代码编辑器,可在官网下载**;2.stegsolve;3.Vmcare虚拟机**
。与之有关的考点有
(1)文件头,文件尾
常见文件头和文件尾有
- JPEG 文件头:
FF D8 FF
文件尾:FF D9(jpg文件属性中可隐藏信息)
- PNG 文件头:
89 50 4E 47 0D 0A 1A 0A
文件尾:AE 42 60 82
- ZIP Archive (zip) 文件头:
50 4B 03 04
文件尾:50 4B
- RAR Archive (rar) 文件头:
52 61 72 21
例如文件头尾缺失,文件头尾与文件格式不符等
(附上一题个人花较大精力的)
有题目将全部二进制倒过来,较为简单,倒序输出即可。我写的题是82 60 42 AE,是将每八位二进制一组给倒过来,应当使用python脚本将整个文本倒序,称作切片输出:
with open("input_file_addr",'rb') as input_file: #旧文件
with open("output_file_addr",'rb') as output_file: #新文件
output_file.write(input_file.read()[::-1])
便能得到正确文件
(2)信息隐写
比较简单的比如将base64,或者flag字符串直接复制到文件尾后面,不会影响文件;
也有将文件隐写在文件中,在010中可使用search寻找连续可识别字符串,找到可疑隐写信息(比如(补写)),此时需要使用VMware虚拟机,自行创建一个kali系统,在终端下载一个binwalk或foremost(个人常用binwalk)将终端用cd命令进入文件所在目录,使用:
binwalk -e 114514.png
会出现一系列信息,同时在同一目录下会出现一个文件夹,里面就是分离出来的文件,之后便可实现下一步解题
(3)lsb隐写
此隐写我常用到stegsolve,将图片导入此应用程序,可以点击下面<>一个一个观察图片中是否出现可疑的黑点或者其他,并记下左上角的颜色及序号,在Analyse选项中点击Date Extract,保存为文本文件或者二进制文件(还有Frame Brower可查看gif的每一帧)
除了较为简单的stegsolve,还有在kali系统的steghide工具可以分离jpg中lsb隐写的文件,使用
steghide extract -sf 文件名字,之后输入密码,当然一般没有密码。
(4)盲水印隐写
(待补充)
(5)像素点隐写(python处理图片)
(2023geekchanllenaage)一题xqr给了一张二维码的图片,扫描之后是正常的什么信息都获取不了,拖进010之后看见隐藏了一个png文件,将其分离出来之后,是缺少定位符并且十分模糊的图片,根据大佬的思路,可以选择查看图片的像素点
(用gpt搞了一段代码(不会python╭ (T □ T)╮))
from PIL import Image
#获取图片
image = Image.open('path_to_your_image.jpg')
# 获取图片的宽度和高度
width, height = image.size
# 计算像素点数量
pixel_count = width * height
# 打印结果
print("该图片由", pixel_count, "个像素点组成")
(二维码就不放了)可以得到第一个清晰的图片是有5625个像素点,第二张是有625个,说明第一张的图片像素点九个就组成一个,说明第一张图片长宽是第二张的三倍(属性中也可以看出来)第一种方法是根据大佬的思路,把第一个图片以间隔为3读取像素点,第二个图片直接读取像素点,分别转换成2进制,这样两个图片的数据就一样长, 可以全部异或,最后再把得到的数据转成二维码放大三倍就能出真正的二维码,直接扫出flag
from PIL import Image
#打开图片xqr读取数据
image = Image.open("path1")
width,height = image.size
XQRpixel =""
for y in range(0,height,3):
for x in range(0,width,3):
if image.getpixel((x,y))[0] == 0:#黑色
XQRpixel += "0"
else:
XQRpixel += "1"
#打开另一个图片读取数据
image = Image.open("path2")
width,height = image.size
XORpixel = ""
for y in range(0,height):
for x in range(0,width):
if image.getpixel((x,y))[0] == 0:#黑色
XORpixel += "0"
else:
XORpixel += "1"
#俩数据异或一下再生成图片
data = ""
for i in range(len(XQRpixel)):
data += chr( ((ord(XQRpixel[i]) - 48) ^ (ord(XORpixel[i]) - 48)) + 48)
print(data)
image = Image.new("RGB",(3*width,3*height),(255,255,255))
for y in range(width):
for x in range(height):
if data[y*width + x] == '0':
for i in range(3):
for j in range(3):
image.putpixel((3 * x + i, 3 * y + j), (255, 255, 255))
else:
for i in range(3):
for j in range(3):
### 给大家的福利
**零基础入门**
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)
同时每个成长路线对应的板块都有配套的视频提供:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)
因篇幅有限,仅展示部分资料
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
8100834e9291cfcf1695d8cd42.png#pic_center)
因篇幅有限,仅展示部分资料
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**