前言
哈喽,大家好,本篇主要分享网站漏洞思路,希望你看完有所收获。
一、登录框常见漏洞🎄
1、常规漏洞🍁
sql注入、万能密码
我们在用户名中输入 ‘or 1=1#,密码随意。就变成了select name.passwd from users where username= ‘’ or 1=1#’ and password=???。在SQL语法中 # 是注释符,所以后面的语句都会杯注释掉,那么上面的语句就等价于select name.passwd from users where username=’’ or 1=1。在or 连接中, username=’’ 和 1=1 中有一个为真就为真。所以1=1肯定为真。如果存在sql注入的漏洞,则可以直接登录进去。
url重定向
网站接受用户输入的链接,跳转到一个攻击者控制的网站,可能导致跳转过去的用户被黑客设置的钓鱼页面骗走自己的个人信息和登录口令。
未授权访问
未授权访问漏洞,是在攻击者没有获取到登录权限或未授权的情况下,不需要输入密码,即可通过输入网站控制台主页面地址或者不允许查看的连接便可进行访问,同时进行操作。
修改返回包
由于对登录的账号及口令校验存在逻辑缺陷,以再次使用服务器端返回的相关参数作为最终登录凭证,导致可绕过登录限制,如服务器返回一个参数作为登录是否成功的标准,由于代码最后登录是否成功是通过获取这个参数来作为最终的验证,所以。攻击者通过修改参数即可绕过登录的限制!
越权
登录框处同样存在越权:
-
平行越权:获得相同等级的其它用户的权限;
-
垂直越权:低权限用户获取高权限用户的权限,例如:用户权限获得管理员权限,或者超级管理员权限。
目录遍历、信息泄露
目录遍历漏洞是由于web中间件目录访问相关的配置错误造成的,该漏洞会泄露web应用程序的敏感路径、敏感的文件信息、网站的编辑器路径或测试接口、系统敏感目录等信息。
造成漏洞原因
程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。
跨站脚本攻击
分三类:反射型、存储型、DOM型
利用:获取cookie,钓鱼
这里我就不细说了
2、用户相关🍁
明文传输、用户名遍历
在登录框BP抓包,发现用户名、密码是明文传输的,即客户端与服务器的数据传输未加密。
危害:攻击者可能通过劫持ARP欺骗、嗅探Sniffer、等手段截获敏感数据,若获取用户名和密码信息,可以进入到系统当中。
漏洞挖掘:
1、查看是否使用HTTPS协议
2、用户名、密码是否加密
任意用户注册
利用:在登录框处输入手机号,密码,验证码随便填,BP抓包,尝试验证码爆破
下图作用是可以抓到返回包并可修改返回值:
任意密码重置
任意账号密码重置的6种方法,这里深入讲一下:
- 短信验证码回传:通过手机找回密码,响应包中包含短信验证码。
修复建议:响应包中去掉短信验证码。
修改用户名、用户ID或手机号重置任意账号密码:
通过手机找回密码一般需要短信验证码验证。当我们输入正确的手机号和正确的短信验证码,然后进入重置密码的最后一步,也就是输入新的密码输入密码后提交到服务端的post数据包需要包含当前用户的身份信息。而一般网站是通过用户名或用户ID来标识用户身份的,如果这个用户名或用户ID没有和当前手机号、短信验证码进行绑定;也就是说服务端只验证用户名、ID是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。也可以修改的地方不限于找回密码的数据包,比如修改资料的地方也可能存在这样的漏洞。
修复建议:
用户操作个人信息时,服务端要对当前用户身份进行验证,防止越权操作;
用来标识用户身份的名称或ID可以使用自定义加密,也可以隐藏这些参数,直接从cookie中获取用户信息;
用户修改密码时应该先对旧密码进行验证,或者使用手机短信验证;
用户修改手机号时需要先对原手机号进行验证。
- 修改响应包重置任意账号密码:通过手机找回密码一般需要短信验证码验证,服务端需要告诉客户端,输入的验证码是否正确。如果客户端收到true的信息,那么就会向带着true的信息向服务端请求进入下一步,而服务端收到true的信息,就会允许客户端进入下一步。反之,如果是false的信息,服务端就不会允许客户端进入下一步。所以我们进入下一步的关键是让服务端收到客户端的true信息。而通过Burpsuite,我们可以修改服务端返回到客户端的信息,这样一来,我们就可以输入任意短信验证码,然后将服务端返回的false信息改为true就可以绕过短信验证码的验证了。
修复建议:
服务端对验证码进行验证,结果为true时直接跳到下一步,无需向客户端单独返回验证结果;
输入新的密码,然后提交到服务端,服务端应对当前用户名、手机号、短信验证码进行二次匹配验证,都为true时,才可以修改成功。
- 跳过验证步骤重置任意账号密码:找回密码流程一般需要四个步骤:1、验证用户名;2、验证短信验证码;3、输入新密码;4、重置成功。
利用思路:第一步正常输入用户名,第二部输入任意验证码,直接访问输入新密码,重置密码。
原因:当我们输入新的密码后,提交到服务端,服务端并没有对当前用户身份进行二次验证,只是简单的获取到用户名或ID以及新密码,从而导致跳过短信验证码验证重置任意账号密码。
修复建议:
每一个步骤都要对前一个步骤进行验证;
最后提交新密码时应对当前用户名或ID、手机号、短信验证码进行二次匹配验证。
- 重置密码链接中token值未验证或不失效导致任意账号密码重置:使用邮箱重置密码时,服务端向邮箱发送一个重置密码的链接,链接中包含当前用户的身份信息和一个随机生成的token信息,如果未对token值进行验证或是验证后不失效,我们就可以通过修改用户名或用户ID来重置任意账号密码。
修复建议:
服务端对客户端提交的token值进行验证;
保证token值使用一次后即失效,防止重复使用;
对用户ID进行自定义加密;
使用根据用户ID生成的token值来标识用户,链接中不携带用户ID。
- 找回密码的短信验证码可被爆破导致任意账号密码重置:找回密码时使用位数较少的短信验证码,或者验证码没有设置有效时间限制,导致攻击者借助自动化工具(例如BP)进行爆破获得短信验证码,从而导致重置任意账号密码。
修复建议:
验证码满足一定复杂度,且限制验证码生效时间;
验证短信验证码的数据包使用token值并验证,防止自动化工具爆破
弱口令
短信相关漏洞
短信轰炸
短信炸弹是利用互联网第三方接口发送垃圾短信轰炸,只需输入手机号码就可以利用网络短信无限轰炸对方手机,具有恶意骚扰功能的软件。
短信验证码爆破
上面讲到过了,例如:用BurpSuite爆破。
验证码回显
思路:登录接收验证码时,BP抓包,可以看到验证码回显在返回包中。
万能验证码
类似于弱口令,程序员开发为了方便,设置比较简单,例如8888、0000等。
验证码失效、未与用户绑定
二、搜索框存在什么漏洞?🌲
-
SQL注入:SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行,从而导致数据库被增、删、改、查的危害。
-
xss漏洞
三、新增主题、添加用户处存在什么漏洞🌲
越权
sql注入
文件上传
未授权登录
csrf
四、导入、导出excel处存在什么漏洞🌲
任意文件读取、下载
任意文件上传漏洞
xxe
五、内容编辑处存在什么漏洞🌲
xss
sql注入
越权
文件上传
编辑器:fckeditor、ueditor
六、修改头像处🌲
文件上传:getshell、xss
越权
七、页面内容浏览处一般存在漏洞🌲
越权
sql注入
挖漏洞需要掌握的基础知识
首先说说基础理论知识:
1.计算机组成原理、计算机网络、计算机体系结构、计算机操作系统,密码学,多媒体技术等等。这些都需要掌握总之一句话就是大学计算机的基础课程。
2.编程: HTML、CSS、JavaScript、 PHP、 Java、 Python、 sql、 C、C++、 shell,汇编、nosql. powershell等等常见的语言基础都需要掌握,至少要熟练使用Python和sq|,这些语言都要学习两周到两三个月吧!
3.漏洞方面,漏洞分很多种,根据不同的标准也会有交叉,黑客要掌握大部分漏洞的形成原理,检测方法,利用方法,修复方法,常见的网站漏洞有sq|注入,XSS, 文件包含,目录遍历,文件上传,信息泄露,CSRF, 账号爆破,各种越权等等,常见的二进制漏洞有缓冲区溢出,堆溢出,整形溢出,格式化字符串等等,分析的时候还要绕过操作系统的保护机制。
协议的话也是存在漏洞的,比如TCP、UDP什么的拒绝服务,DNS劫持,ARP欺骗等等, 现在工控、物联网、AI什么的也都有各种各样的漏洞。
4.需要掌握的工具,工具太多, 基本上目前主流的客工具都要熟练使用,应该有几十种吧。上文已经详细阐述,这里就不赘述了。
网络安全全套工具安装包,我已经打包好了,需要的小伙伴扫描下方二维码即可前往免费获取。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
5.还有网站和通讯协议吧,客户端和服务器,用户输入网址点击访问到服务器返回网页这其中涉及的知识,如JavaScript, http请求, web服务器,数据库服务器,系统架构,负载均衡,DNS,等等是要熟练掌握的,然后说说主流的网站开发框架,其中Java的SSH三大框架要了解有什么漏洞啥的PHP的主流框架和CMS要了解,最好上面的框架都会掌握,如织梦,thinkPHP等等,另外主流的数据库服务器要了解如MySQL,sql server等。
如果要做漏洞利用的话涉及到TCP等编程,要会TCP编程, 如果为了通讯安全,要掌握当前主流的加密算法,如AES, RSA, 3DES等等各种加密算法,如果要对端口进行暴力破解,要掌握端口的爆破技术,比如字典的选择使用。
还有要了解软件运行的时候在操作系统里怎么运行的,从计算机磁盘文件加载到内存,怎么布局的,代码段,数据段,堆栈段什么的,代码的参数在堆栈布局,内存地址什么的,另外还要了解系统的保护机制如代码执行保护等等。
当然挖漏洞需要学习的东西还有很多,很都东西都很关键。能走多远,就看你的执行力和兴趣了。
挖漏洞的注意事项
挖SRC一定要细,慢慢的去分析,不能着急往往越着急越挖不倒,这里可以给大家一些建议,在挖掘SRC期间
1. 不要着急出洞,先去慢慢摸索厂商的各种信息,了解每个功能点(做好信息搜集)
2. 去分析每一个数据包,知道每个数据包对应的功能点在哪儿,去知道数据包对应鉴权的地方在哪一块
3. 多去关注厂商的活动,一般新上线的项目或者活动漏洞比较好挖一些
4. 关注厂商信息,比如一些活动期间奖励翻倍等信息
5. 千万要记住去看人家厂商的漏洞收录范围,不看范围挖漏洞=白干
6. SRC漏洞挖掘需要遵守法律规定,避免侵犯网站安全和用户隐私,同时需要遵循公司或组织的安全政策。
7. 在进行SRC漏洞挖掘时需要注意保护漏洞信息和利用手法的安全性,不应该泄露给未经授权的人员。
SRC逻辑漏洞一般产出比较高的漏洞就在于逻辑漏洞,别的漏洞也有但是相比起来逻辑漏洞的价值更高**
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取