Fork me on GitHub

网络安全知识培训学习笔记

逻辑漏洞

条件竞争

多个线程竞争同一个共享代码、变量、文件等称之为条件竞争。那么什么情况存在竞争条件?

实例:
上传文件,下面是一个上传文件的例子,上传文件之前先校验权限

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#define DELAY 10000

int main()
{
     char * fn = "/tmp/XYZ";
     char buffer[160];
     FILE *fp;
     long int  i;
     //get user input
     scanf("0s", buffer );
     if(!access(fn, W_OK))
     {
     //simulating delay
        for (i=0; i < DELAY; i++){
          int a = i^2;
        }
        fp = fopen(fn, "a+");
        fwrite("\n", sizeof(char), 1, fp);

        fwrite(buffer, sizeof(char), strlen(buffer), fp);

        fclose(fp);
    }else{
        printf("No permission \n");
    }
}

从例子看并没有看出什么,可是对于专业安全人员来说,什么程序就是一个很典型的竞争条件。分析一下,首先上传文件之前会进行权限校验,然后才可以上传,在校验权限直接存在一个时间差,在这个时间差直接就可以形成一个竞争条件,黑客完全可以利用这个竞争条件,在时间差,暴露破解,不断发请求上传文件,竞争上传文件,当然黑客上传的不是正规文件,一般都是一些脚本木马。

渗透测试工具

渗透测试工具:BurpSuite(数据包抓取)
渗透测试Burp的intruder功能实现多个并发请求

逻辑漏洞分类

暴力破解
越权漏洞
条件竞争

安全案例

密码重置
邮箱找回:分析token构造,时间戳md5值
MD5(time+username)

验证码方式找回:
防御:设置更复杂的验证码,设置时间

验证身份->修改密码界面(session,验证身份用户到修改密码界面是同个用户)

越权漏洞

越权漏洞:平行越权,垂直越权

平行越权:用户的等级相同进行越权

用户A,B:普通用户
用户C:管理员用户

A->B:平行越权

A->C:垂直越权

例子:购物车 订单信息例子

越权漏洞测试挖掘,查订单操作,修改个人信息

  • 鉴权参数,accountId
  • 操作:抓包->鉴权参数

相关名词:
ECB模式
分组加密模式
Hash碰撞
数字签名

posted @ 2019-10-27 16:05  smileNicky  阅读(1018)  评论(0编辑  收藏  举报