It is possible to determine from an external site whether or not a user is logged into the platform by counting the frames loaded when opening the page. The user must have logged into a site with a malicious frame counting script.
Determine if a specific user has access to the platform and thus collect targets for spearphishing attacks.
Load the same amount of frames in all application load cases.
Attacker on the Internet sending malicious links.
⌚ 120 minutes.
Default score using CVSS 3.1. It may change depending on the context of the src.
Default score using CVSS 4.0. It may change depending on the context of the src.
The application defines the same timing frame functions without distinguishing outcomes of queries
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String username;
String password;
username = input.next();
password = input.next();
try {
if(username.equals(username) && password.equals(password)){
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
executor.schedule(new Runnable(){
public void run() {
users check = new users(username, password);
signIn(user, check)
}
}, delay, TimeUnit.MILLISECONDS);
}
} catch (InterruptedException e) {
//The code to catch the exception takes the same amount of time to execute, on purpose
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
executor.schedule(new Runnable(){
public void run() {
failedSignin(user)
}
}, delay, TimeUnit.MILLISECONDS);
}
}
The app provides a different ftps when a query is successful than when the login has failed because of a delay in getting the data
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String username;
String password;
username = input.next();
password = input.next();
try {
Thread.sleep(5000);
if(username.equals(username) && password.equals(password)){
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
executor.schedule(new Runnable(){
public void run() {
users check = new users(username, password);
signIn(user, check)
}
}, delay, TimeUnit.MILLISECONDS);
}
} catch (InterruptedException e) {
//Code to catch the exception that executes faster than the login code...
}
}