先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
修复建议:
不使用前端校验,严格校验用户的数据
存在暴力破解风险
漏洞描述及测试方法:
若网站不存在验证码,或者不设置页面重定向跳转且密码为明文或弱加密,便可尝试暴力破解攻击
示例:
某防火墙设备登录存在明文传输且无验证码措施
修复建议:
条件允许的情况下设置验证码环节
使用密码加密策略
进行页面302重定向跳转,防止自动化攻击
图形验证码不失效
漏洞描述及测试方法:
通常存在于用户的提交数据页面、登录框等;可以尝试特权码0000这种进行绕过测试,或者干脆不填验证码,或者抓取数据包删除验证码字段、放置repeter模块进行数据重放等进行测试
示例:
此登录功能时存在图形验证码的,在输入了正确的图形验证码之后进行数据重放,发现图形验证码没有做到及时失效
修复建议:
1、系统在开发时注意验证识别后销毁session中的验证码。
2、限制用户提交的验证码不能为空
3、判断提交的验证码与服务器上存储的是否一致
短信验证码绕过
漏洞描述及测试方法:
1.验证码为空进行尝试
2.尝试特权验证码,如000000、111111等;
3.若系统校验为前台校验,可修改response返回值进行绕过
示例:
正确的逻辑应当是,短信验证码获取后,服务器校验短信验证码的来源以及有效性,使用一次后应该立即失效。但是我遇到的这个就是使用验证码登录后,注销用户登录后再一次使用验证码发现依然登陆成功,也就是短信验证码没有被删除
输入手机号码,而后获取验证码,随意输入即可
response返回如下
修改state值为200
修复建议:
1.若存在特权验证码,建议将其删除;
2.应用服务端应严格校验验证码参数是否为空,格式是否正确;
3.关键操作每提交一次请求,应发送新的短信验证码,并且不可继续使用旧的验证码。(后端校验!!!)
短信验证码可暴力破解
漏洞描述及测试方法:
验证码失效时间过长,或验证码低于四位
点击发送短信验证码,输入任意验证码,提交请求,使用burpsuite拦截请求,在intruder模块设置验证码参数为枚举变量,这时的payload类型为brute forcer(数字0-9,长度为6),对验证码进行暴力破解。
示例:
这里的短信验证码可被暴力破解,是因为并没有设置短信验证码使用错误几次后失效,故可被暴力破解
修复建议:
1.短信验证码不少于6位;
2.有效期不超过2分钟;
3.建议验证码错误三次失效。
短信验证码可预测
2021-5-31更新
漏洞描述及测试方法:
点击发送短信验证码,获取验证码的同时拦截数据,发送至repeater模块进行查看
示例:
1.点击登陆,选择手机登录,获取验证码的同时拦截数据,如下图所示
2. 拦截数据包,将response数据包返回至当前页面
3. 成功获取验证码,使用该验证码进行登录
4.使用该六位验证码进行登录,登录成功,查看手机验证码,一致
修复建议:
不要将验证码发送至客户端
短信炸弹
漏洞描述及测试方法:
页面存在发送短信的接口,点击发送短信并拦截数据包,多次重放数据观察返回效果,或发送一次验证码之后刷新当前页面观察是否可以继续发送验证码
示例:
点击获取验证码同时拦截数据包
使用burpsuite进行数据重放
修复建议:
一分钟内检测时间戳对用户的sessionid进行识别,一天之内不能超过数条
恶意锁定问题
漏洞描述及测试方法:
针对测试账户,不断输入错误的密码,直至将其锁定(一般会提示再输入几次就锁定账户,或直接锁定不提醒)
示例:
修复建议:
1.账户锁定之后应不能继续使用认证功能
2.认证功能防自动化操作,如添加图形验证码。
密码明文传输
漏洞描述及测试方法:
数据传输过程为明文传输,例如password字段未进行任何加密,通常存在于http传输协议(关于明文传输问题涉及两个问题,一个是当web使用http传输时,存在局域网嗅探的可能,由于http采取非加密传输,导致局域网内的嗅探数据是明文的;而当此网站是https传输的时候,由于数据是加密的,所以就不存在嗅探风险,但是当系统不存在验证码保护时,便成为了暴力破解风险。所以我理解为,当网站采取https加密传输方式,且存在校验码的时候,明文问题便不存在任何问题了)。
示例:
- 输入用户名密码
2. 使用burpsuite进行数据包拦截
修复建议:
优先使用加密方式对密码进行加密,https虽然是密文传输但是若是缺少验证码则会引发暴力破解风险。
反射型跨站脚本攻击
漏洞描述及测试方法:
通常登录框存在三种xss漏洞,登录前,登陆中,登录后;而这里指的是登录前,在用户名或密码处输入测试payload "/>,可查看源码按照实际情况来
示例:
- 登录窗口用户名处存在反射型XSS注入
- 点击登陆,成功弹出内容
修复建议:
1)输入过滤
2)输出编码转换
3)禁用外部csp策略
万能密码
漏洞示例代码:其实我觉得万能密码和sql注入应当区分开来,所以我就分开写了。
众所周知,登录处是一条查询操作,一些程序可能是没有注意到,就写成了
$result=mysqli\_query($link,'select \* from user'); #执行$sql命令,查询user列表行内容
$row=mysqli\_fetch\_assoc($result); #解析,通过用户名判断 里面行的内容密码是否正确
if ( $username===$row['username'] && $password === $row['password']) {
echo '登陆成功';
$\_SESSION['uid'] = $row['id'] ;
header("Location:3.php?id=".$row['id']);
} else{
echo '请重新填写账户或密码';
这个时候就可以构造特殊的sql语句进行截断,造成永真,这样的话就可以越过查询完成登录
漏洞描述及测试方法:
用户名输入: ‘ or 1=1 or ‘ 密码:任意
(2)Admin’ - -(或‘ or 1=1 or ‘ - -)(admin or 1=1 --) (MS SQL)(直接输入用户名,不进行密码验证)
(3)用户名输入:admin 密码输入:’ or ‘1’=’1 也可以
(4) 用户名输入:admin’ or ‘a’=‘a 密码输入:任意
(5) 用户名输入:‘ or 1=1 - -
(6) 用户名输入:admin‘ or 1=1 - - 密码输入:任意
(7) 用户名输入:1’or’1’=‘1’or’1’='1 密码输入:任意
示例:
- 这里的案例与上述的不太相同,他的查询多了一个判断动作,就是先判断用户名是否存在,存在的 时候才会进行下一步判断,判断用户名密码是否匹配,所以这里必须输入正确的用户名才行
admin’ or 1 #
- 点击登陆,成功登录
修复建议:
1)代码层次修复,过滤特殊字符
2)使用waf进行特殊字符拦截
sql注入
漏洞描述及测试方法:
sql注入就是程序在增删改查中未对用户输入的数据进行严格的校验,导致用户输入的恶意代码被当作是sql语句执行,造成注入;sql注入通常存在于用户输入的查询处、表单等地
示例:
暂无
大家可以去看一下博客,有很详细的讲解如何进行sql注入
https://blog.csdn.net/weixin_48421613/article/details/107488560
https://blog.csdn.net/weixin_48421613/article/details/107491562
https://blog.csdn.net/weixin_48421613/article/details/108298670
此处常常伴随着万能密码漏洞,故不做展示
修复建议:
1)代码层次修复,过滤特殊字符
2)使用waf进行特殊字符拦截
任意用户密码修改/重置
漏洞描述及测试方法:
任意用户密码重置漏洞区别于密码重置漏洞;任意用户重置通常是因为程序在修改用户密码时没有严格的对当前用户以及想要修改的用户身份进行判断,导致用户A通过修改特定参数达到重置用户B的密码的效果,相似与水平越权。
示例:
我遇到的密码重置漏洞,是忘记密码的时候会自动发送一条手机短信至绑定用户的手机中,而我做的则是在他发送之前拦截,而后修改手机号码,成功的接受到了手机短信,而后重置用户密码。
还有一种是手机短信验证成功后,重新设置密码时拦截数据包,通过修改类似username、userid等方式修改他人的账户密码。
修复建议:
严格的校验用户的身份信息
目录遍历
漏洞描述及测试方法:
目录遍历大多是因为中间件配置不当造成的,可以通过御剑等工具进行目录扫描,看看是否存在特殊目录可直接遍历任意文件
示例:
一般目录遍历都是输入…/…/这种,或者通过御剑进行目录扫描,有的时候会有一些路径可以遍历里面的目录内容
修复建议:
目前存在该漏洞的常见中间件为apache和IIS,以下列出其相关的修复方式:
1、 IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS。
2、 Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找“Options Indexes FollowSymLinks”,修改为“ Options -Indexes”(减号表示取消,保存退出,重启Apache。
3、 Nginx中默认不会开启目录浏览功能,若您发现当前已开启该功能,可以编辑nginx.conf文件,删除如下两行:autoindex on;autoindex_exact_size on;重启Nginx。(这种通用的可不是绿盟独有吧?)
敏感文件信息泄漏
漏洞描述及测试方法:
敏感信息泄露通常泄露了网站的绝对路径、用户的秘钥信息、等等。一些不正确的程序会将用户的用户名密码等信息存储于前台
示例:
这里我给大家带来了最近比较火的锐捷信息泄露,在源代码中泄露了用户名密码信息
泄露了用户名以及MD5加密的密码
当然了还有一些奇葩的,会直接弹出来测试用户名密码、甚至是用户名密码自动填充等等
我觉得只有这些才配成为信息泄露,剩下的泄露个什么加密方式、中间件版本信息啥的太边缘了,懒得测
修复建议:
设置统一的错误页面,隐藏源代码
框架漏洞
漏洞描述及测试方法:
开发框架存在的漏洞,如Struts2框架漏洞、shiro等(weblogic反序列化中间件的就不写了)这种没有代码审计,只能扫描器出马,或者明显一眼就能看出来是s2这种的,可以使用payload %{1+1} 进行测试
示例:
使用burp插件进行被动检测(关于shiro反序列化请看上篇文章)
shiro
修复方案:
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!