一、登录框常见漏洞
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重定向
当你收到使用者输入的链接后,就会进入由攻击方所掌控的网址,而跳转的使用者,则会被骇客所设的仿冒网页,骗取其个人资料及登入密码。
未授权访问
未经授权的访问漏洞,是指当攻击者没有取得登入权限或未经授权时,无需输入密码,就可以通过键入网站控制台首页的地址或不允许浏览的连接来实现接入,并进行操作。
修改返回包
由于登录帐号和密码检查有一个逻辑上的错误,将服务方所传回的有关参数重新用作最后的登录凭证,因此可以绕过登录限制
例如,如果伺服器传回一个参数值,做为登入成功与否的准则,因为程式码上一次登入是以取得此参数做为最后的确认,因此。
潜入者只需更改参数就可以绕开登陆限制!
越权
在登录框中也有类似的越权行为:
并行越权:获取同一级别其他使用者的许可;
纵向越界:较低使用权限使用者取得较高使用权限的使用者,例如:使用者使用权限取得系统管理员权限,或超系统管理员权限。
目录遍历、信息泄露
目录遍历漏洞是由与目录访问有关的网络中间件的配置不正确引起的,它可能导致网络应用的敏感路径,敏感文件,网站编辑器路径或测试界面,系统敏感目录等。
造成漏洞原因
这个程式并不能适当地过滤使用者所输入的目录跳跃码,例如…/,这就造成了一个恶意使用者能够透过递交目录跳跃到伺服器上的任何档案。
跨站脚本攻击
分为三个类别:反射,存储, DOM
利用:获得曲奇,欺骗
2、用户相关
明文传输、用户名遍历
在对登录窗口 BP进行抓包时,发现用户名和密码均以明文方式传送,也就是用户和服务器之间的数据传送是没有加密的。
危险:攻击者可以采取劫持 ARP欺骗、嗅探缓存等方法截取敏感数据,如果获得了用户名和口令,就能入侵系统。
漏洞挖掘:
1、查看是否使用HTTPS协议
2、用户名、密码是否加密
任意用户注册
使用:在登录栏中键入电话号码、密码、验证码任意填写、 BP卡抓包、试爆验证码。
任意密码重置的6种方法,
1、短信验证码回传:
通过手机找回密码,响应包中包含短信验证码。
修复建议:响应包中去掉短信验证码。
2、修改用户名、用户ID或手机号重置任意账号密码:
想要用手机找回自己的密码,通常都是要通过短信验证验证码的。
在我们键入了正确的电话号码以及正确的短信验证码之后,接下来就是最后一个步骤来重新设置密码,即输入一个新的密码之后,提交给服务器的 Post分组必须含有目前用户的识别信息。
而普通的网站则是根据使用者名称或者使用者 ID来识别使用者,若该使用者名称或使用者 ID并未与当前的电话号码及短信验证码相结合;
换句话说,服务方只是对用户名、 ID进行验证,并没有对该用户与当前的电话号码进行比对,这样我们就可以修改用户名、 ID来修改对方的密码。
还可以更改的不仅仅是数据包的恢复,还可以更改数据的修改。
修复建议:
用户操作个人信息时,服务端要对当前用户身份进行验证,防止越权操作;
用来标识用户身份的名称或ID可以使用自定义加密,也可以隐藏这些参数,直接从cookie中获取用户信息;
用户修改密码时应该先对旧密码进行验证,或者使用手机短信验证;
用户修改手机号时需要先对原手机号进行验证。
3、修改响应包重置任意账号密码:
想要用手机找回自己的密码,通常都要通过短信验证码来确认,而客服方则要告知用户自己的验证码是不是正确的。
如果客户机接收到 True消息,它将向 service发送一个带有 true的消息,请求执行下一个步骤, service接收到 true消息后,允许客户机进行下一个步骤。
相反,如果这个消息是假的,那么服务方将不会让客户机进行下一个步骤。
因此,接下来要做的事情就是让服务端接收来自客户的真实信息。
而利用 Burpsuite,我们可以对从 service向客户端发送的消息进行修改,这样我们可以在任何一条短信验证码中输入一个假消息,并将该消息发送方的假消息更改为真,这样就能绕过短信验证码的验证。
修复建议:
服务端对验证码进行验证,结果为true时直接跳到下一步,无需向客户端单独返回验证结果;
输入新的密码,然后提交到服务端,服务端应对当前用户名、手机号、短信验证码进行二次匹配验证,都为true时,才可以修改成功。
4、跳过验证步骤重置任意账号密码:
找回密码流程一般需要四个步骤:
1、验证用户名;
2、验证短信验证码;
3、输入新密码;
4、重置成功。
使用的想法:第1步是普通的用户名,第2步是任何的验证码,然后是直接进入,然后再重新设置。
理由:在我们输入了新的口令之后,将它提交给了服务器,但是服务器并不会再次验证现在的用户,而是直接获得了一个用户名或者 ID和一个新的密码,因此,我们跳过了短信验证码验证,重新设置了一个帐号和密码。
修复建议:
每一个步骤都要对前一个步骤进行验证;
最后提交新密码时应对当前用户名或ID、手机号、短信验证码进行二次匹配验证。
5、重置密码链接中token值未验证或不失效导致任意账号密码重置:
在使用信箱重新设定密码时,伺服器会将重新设定密码的连结传送到信箱,连结中会储存目前使用者的身分资讯与随机产生的 token资讯,若没有确认或确认后并没有无效,则可藉由变更使用者名称或使用者 ID,重新设定任何帐号的密码。
修复建议:
服务端对客户端提交的token值进行验证;
保证token值使用一次后即失效,防止重复使用;
对用户ID进行自定义加密;
使用根据用户ID生成的token值来标识用户,链接中不携带用户ID。
6、找回密码的短信验证码可被爆破导致任意账号密码重置:
在恢复密码时,使用的是少量的短信验证码,或者是验证码并没有设定有效的时限,这就使得黑客通过诸如 BP等自动软件的方式,来获取短消息的验证码,这样就会让任何一个账户的密码被重新设置。
修复建议:
验证码满足一定复杂度,且限制验证码生效时间;
验证短信验证码的数据包使用token值并验证,防止自动化工具爆破
弱口令
短信相关漏洞
短信轰炸
“短信炸弹”是一种使用因特网上的第三方界面,向敌人发送“垃圾信息”,只要输入自己的电话号码,就能通过互联网上的信息不停地向对手的手机进行狂轰滥炸,带有恶意骚扰的特性。
短信验证码爆破
上面讲到过了,例如:用BurpSuite爆破。
验证码回显
思路:登录接收验证码时,BP抓包,可以看到验证码回显在返回包中。
万能验证码
与弱密码相似,编程人员为简便而进行的设定也相对简单,比如8888,0000等等。
CAPTCHA无效,未与用户绑定
二、搜索框存在什么漏洞?
SQL注入:SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行,从而导致数据库被增、删、改、查的危害。
xss漏洞
三、新增主题、添加用户处存在什么漏洞
越权
sql注入
文件上传
未授权登录
csrf
四、导入、导出excel处存在什么漏洞
任意文件读取、下载
任意文件上传漏洞
xxe
五、内容编辑处存在什么漏洞
xss
sql注入
越权
文件上传
编辑器:fckeditor、ueditor
六、修改头像处
文件上传:getshell、xss
越权
七、页面内容浏览处一般存在漏洞
越权
sql注入