目录
一、基本概念
逻辑漏洞主要是指程序逻辑上出现的问题,例如逻辑不严密或者逻辑太复杂,从而导致一些逻辑分支不能正常处理或处理错误,通常这类漏洞多以月权访问,密码爆破等等
二、竞争条件漏洞
竞争条件漏洞是指多任务(多线程、多进程)对同一资源进行访问时,因访问资源的先后顺序不同产生冲突的情况,通过竞争条件漏洞,可以实现越权访问、资源篡改等操作。
1.实例
#include <stdio.h>
#include <pthread.h>
int resource = 0;
void *int main_logic()
{
if (resource == 0)
{
printf("logic 0\n");
}
sleep(2);
if (resource == 1)
{
printf("logic 1\n")
}
}
void *set_resource()
{
sleep(1);
resource = 1;
}
#define THREAD_COUNT 2
int main()
{
pthread_t thread[THREAD_COUNT];
int i;
pthread_create(&thread[0], NULL, (void *)set