既然來騙我了,那就站在技術角度給你分析一波這個詐騙資訊。

why技術發表於2023-12-25

你好呀,我是歪歪。

事情是這樣的,前段時間有個人加我微信,說有個文案想要找我幫他們推廣一下:

連結點進去後,我一看標題是這樣的:

心裡就有數了,知道這個相關的內容肯定是詐騙資訊。

整個文案的內容大概是這樣的:

關鍵的點在於文案中他提供的二維碼和 PC 端投遞地址確實是真實的地址:

上面的網頁地址開啟後確實是“百聯集團”在 51job 上的校招投遞地址:

包括長按識別二維碼,也是跳轉到這個地址。

那我是怎麼判斷這是一個詐騙資訊的呢?

因為在這之前,我也接到很多過類似的推廣資訊,風格都極其類似,都是打著高薪兼職的幌子,然後以知名公司的資訊以假亂真。

真到什麼程度呢,就和你上面看到的一樣,整個內容全是真的,連網站都是真的,甚至這個二維碼“有時候”都是真的。

我還記得特別清楚,我第一次接到類似的推廣內容是沃爾瑪的校招。

文案非常的真,或者說就是真的:

校園招聘、招聘崗位、招聘流程,所有的聯絡方式、網站地址都是沃爾瑪官方的,就是正規校園招聘:

第一次遇到這個文案的時候,說真的,我是半信半疑。

信是因為內容確實看起來沒毛病,資訊都是真的。

疑就疑在它太真了,和真的一模一樣,而如果是真的沃爾瑪校園招聘,它還需要我這個小小的號主,用我這點完全可以忽略不計的流量幫它進行校招的推廣嗎?

不可能,絕不可能。

歪師傅這個人,有一個優點就是有較強的自知之明,所以當時我知道這件事情絕對有問題。

至於具體是什麼問題,我也不知道,反正就是心裡覺得有貓膩。

別問,問就是身為成熟男人這該死的第六感。

所以當時拒絕了這個合作機會。

也嘗試過思考這到底是一個怎麼樣的套路,但是也沒啥思路,就沒管了。

後來隔了一段時間,看到其他號主朋友也遇到了這個文案,有警惕性比較高的粉絲留言說掃描二維碼後跳轉到的是一個客服對話方塊,類似於這種:

在這個對話方塊裡面,對方會引導你去下載“兼職”所需的 APP。

在看到這個案例的時候,關於裡面的套路,我突然一下全部都想明白了。

我給你拆解一下這個套路。

套路

首先,某些中介,會拿著文案去找號主,問能不能進行付錢推廣。

一般來說,號主都會檢查文案內容,判斷是否有風險。

前面我也說了,當號主檢查文案的時候,肯定會對文章中的資訊進行甄別判斷。

拿著文案中的連結開啟,發現確實是官方連結,掃描二維碼也進的是和官方連結一樣的官方網站。

這個時候一般就會認為這個二維碼背後對應的就是官方連結,只不過是以二維碼的形式展示,方便掃碼。

而且文案裡面的公司都是知名大公司,比如沃爾瑪、餓了麼、美團、淘寶、小紅書什麼的。

有的號主,為了防止是高仿網站,甚至掃碼之後還模擬了一遍簡歷投遞的過程:

檢查沒問題後,談好合作細節,號主就會按照約定時間進行文案的推廣。

而且在號主點選“釋出文章”之前,甚至是發文後去檢查二維碼,都還是跳轉官網。

但是,會在某個時間,通常是發文後十分鐘左右,掃描二維碼突然就變成“客服對話方塊”,然後開始詐騙套路。

比如讓你回答幾個非常簡單的問題,或者說下載一個 APP,然後把截圖發給他們。

他們就會讓你發收款碼,然後給你發個幾塊錢。

歪師傅親測“百聯”的文案,第一個任務是回答這幾個問題:

回答完成就給 3.5 元,我本來想著有 3.5 元的收入也是不錯的。但是當我把收款碼發過去之後,對方並沒有給我錢,可能是號主發現了文案有問題,進行了刪除,對方也檢測到了,所以不再繼續溝通。

按理來說,流程應該是對方給我打 3.5 元,然後說:你需要下載某某 APP,在 APP 裡面領任務。

而這個 APP 需要使用他們發過來的連結才能下載到,下載下來的 APP 名稱,可能就叫“沃爾瑪”,“百聯”,“亞馬遜”什麼的,只不過是山寨的。

如果下載了 APP,這就算是第一個階段完成。

接著會引導你在 APP 裡面接單,前幾個任務,會給你分配個幾塊錢的,完成後就會把錢給你打到支付寶。

讓使用者嚐到點小甜頭,這算是第二個階段。

然後,會再次引導你進入一個類似於“專屬群”、“接單群”、“任務群”、“搶單群”這樣的群,群裡面有大幾百人,群訊息時時刻刻都在重新整理,大家聊得不亦樂乎。

時不時的有人說搶到了大單子,收到了大額的任務金,並且把對應的支付寶、微信或者銀行流水截圖發群裡。

這個時候就會有一個客服人員出來說類似於這樣的話:我馬上要釋出另外一個任務了,必須在釋出之後 2 分鐘完成搶單,並支付 xxx 元才能獲得對應的獎金 xxx 元。

2 分鐘,就是給你營造一種時間短,要立刻搶,立刻完成任務的錯覺。群裡也在不停的烘托效果。

如果你去搶了,那麼就算是上鉤了。慢慢的,後面的任務的獎金可能是成千上萬元,但是你需要先支付一筆。

也許前幾次你都能拿到幾塊錢的獎金,但是到後面,比如需要你先支付 2000 元,才能拿到 2500 元的獎勵。

當你把 2000 元支付出去,對方會告訴你說:怎麼回事,沒收到啊?

你說:不可能啊,前面都是這樣操作的,一直是對的呢?

對方說:對呀,一直都是對的呢,為什麼這次不對呢?你看我這邊確實沒有。時不時銀行那邊出問題了,延遲了呀?任務馬上就要截至了,要不你再轉一次,免得錯過這個任務?

你說:但是我明明已經給過錢了呀?

對方說:應該是銀行那邊的問題,你再轉一次吧,之前轉錯的那筆錢肯定會退給你的。

然後,你開始操作第二次轉賬。

然而,對方說還是沒收到...

就這樣拉扯幾個來回,你的錢就出去了,少則幾千塊,多則幾十萬。

再然後,就沒有然後了。

對方下線了,群裡也安靜了,你開始回過味來了。

你甚至以為剛剛發生的一切是幻覺,是一場夢。

但是,銀行卡餘額告訴你,都是真的,都已經來不及了。

所以,牢記一句話:

凡是下載APP,接任務刷單的,皆是詐騙。

就這個套路,你說它手段低吧,確實是有一點點水平在的,畢竟能騙到一部分公眾號給他進行推廣。

你說它手段高吧,最終的詐騙形式還是誘導下載 APP ,接單返利這個老套路。

背後的技術

作為一個技術博主,我也還是簡單的解析一下這個詐騙裡面的一點點技術的東西。

前面說了,因為站在號主的視野中,整個文案沒有任何問題,招聘資訊、聯絡方式都是真的,掃描二維碼也跳轉的是官網,這足以讓一部分人放下防備。

你猜也能猜到了,除了它誇張的標題外,文案中的二維碼是唯獨有問題的地方。

有的上當的號主在回顧這個事件時候提到了這樣的一句話:

同一個二維碼兩個人掃描的結果居然會不一樣,又不是動態碼,這你敢信?

一個靜態的二維碼,不同的人掃描的結果是不一樣的,從技術的角度講,這並不是什麼神奇的事情。

也許是套了一個二維碼的殼,讓你覺得高深莫測,我給你換個說法,你就覺得沒那麼神奇了:一個短連結,不同的時間去點,跳轉的頁面是不一樣的。

首先,一個靜態的二維碼一定是對應一個固定的連結,這是由二維碼的底層邏輯所決定的。

但是這個所謂的“固定的連結”,只是一個入口而已。

既然是個入口,那可以做的文章可就多了去了。

在這個詐騙裡面,利用到的原理其實和“短連結”的原理是一樣的。

首先,我們看一下關於“短連結”正常的場景。

剛好我前幾天收到了這樣的一個簡訊:

其中就有一個短連結,把短鏈拿出來訪問一下,是這樣的:

短鏈最終會跳轉到這個地址:

這裡也額外插一句:簡訊裡面為什麼要用短鏈呢,放原連結可不可以呢?

可以,但是沒必要。

一個是因為對客體驗不好,另一個更大的原因是要控制成本。

歪師傅剛好對簡訊平臺有比較深入的瞭解,所以我知道簡訊的計費不是按照你發多少條這個維度類進行計費的,而是按照一條簡訊的具體長度進行計費的。

比如某平臺的計費規則就是這樣的:

所以,簡訊內容越長,成本就越高,而且是成倍數的高。

簡訊內容使用短鏈,長度短,簡訊傳送的成本就整體下來了。

好,現在我們回到這個“短鏈”上來。

短鏈跳轉的底層邏輯相信大家也都有所耳聞,核心原理就是利用了“重定向”。

大概就是這麼一回事:

這一點我們也可以利用開發者工具進行驗證:

訪問短鏈的響應嗎是 302,響應裡面給了個“Location”,對應要跳轉的連結。

那麼八股文就隨之而來了:HTTP 狀態碼 301 和 302 的區別是什麼呢?

  • 301 Moved Permanently:指頁面永久性轉移,表示為資源或頁面永久性地轉移到了另一個位置。301是HTTP協議中的一種狀態碼,當使用者或搜尋引擎向伺服器發出瀏覽請求時,伺服器返回的 HTTP 資料流中頭資訊(header)中包含狀態碼 301 ,表示該資源已經永久改變了位置。
  • 302 Found:指頁面暫時性轉移,表示資源或頁面暫時轉移到另一個位置。由於這樣的重定向是臨時的,客戶端應當繼續向原有地址傳送以後的請求。只有在 Cache-Control 或 Expires 中進行了指定的情況下,這個響應才是可快取的。

按照上面的說法,其實我們直接使用 301 響應碼是沒有任何毛病的,甚至由於是永久性轉移,在快取的作用下,響應還更快一點。

那這裡為什麼要用 302 呢,或者說為什麼市面上能看到的短鏈跳轉響應碼都是 302 呢?

因為它們要做“資料分析”這個事情:

資料分析,是除了解決成本問題外,短鏈另一個核心功能,也是核心賣點。

因為 302 還是會請求到原地址去,所以除了獲取短鏈對應的原連結外,還可以在短鏈伺服器這裡做很多資料收集的動作,從而支撐運營人員進行資料分析:

短鏈大家日常接觸的也應該比較多,至少對它有個大概的認知,我就不贅述了。

然後,給大家上個示例程式碼,你粘過去就能用:

@Slf4j
@RestController
public class TestController {

    /**
     * 基於短連結引數重定向
     */
    @GetMapping("/{shortKey}")
    public RedirectView redirect(@PathVariable("shortKey") String shortKey) {
        if ("123why".equals(shortKey)) {
            //官方活動頁面(正常邏輯是程式在資料庫中維護了一份shortKey和原連結的對映關係表)
            return new RedirectView("https://activity.juejin.cn/rank/2023?utm_campaign=annual_2023&utm_medium=sms&utm_source=yybm1");
        }
        return new RedirectView("/notFound");
    }

    @GetMapping("/notFound")
    public String notFound() {
        return "沒有找到對應頁面";
    }
}

把服務在 8085 埠啟動起來,然後訪問連結:

http://127.0.0.1:8085/123why

可以看到這樣的效果:

透過開發者工具,我們也能找到 302 的存在:

這樣就算是完成了一個短鏈跳轉到原連結的動作。

在跳轉之前,我們還可以做一點統計資訊相關的事情:

比如,我這裡獲取一下訪問的瀏覽器和作業系統型別。發起呼叫之後,觀察控制檯輸出:

是不是就能做出類似於這樣的統計資訊:

那麼怎麼實現前面詐騙中的效果呢:一個靜態二維碼,即一個短鏈,不同的時間去點,跳轉的頁面是不一樣的?

跳轉的頁面其實是你程式控制的,無非在跳轉之前加上“滿足某某條件之後,跳轉指定連結”。

比如這樣:

第一次訪問的時候,跳轉到官方活動主頁,第二次掃描跳轉到歪師傅的個人拉票頁面。之後再掃描,就是詐騙資訊。

上個效果圖,你可以看到我對同一個二維碼掃碼三次,三次跳轉的頁面內容都不一樣:

這個效果不就類似於前面的詐騙文案,二維碼沒有發生任何變化,但是某個時間之前掃碼,跳轉到官方連結,之後就跳轉到客服對話嗎?

另外,我在使用草料二維碼進行二維碼轉換的時候,發現這個玩意還有個學名,叫做“活碼”:

原本把短鏈轉化成靜態二維碼之後就叫做“活碼”了,可以,又學習到一個新名詞。

活碼,就是詐騙套路背後的技術手段之一。

這個東西的出現,確實是方便運營人員進行資料分析,但是同時它也可以去做一些灰產的業務。

那句話是怎麼說的?

技術本無罪,有罪的是人。

另外,也表揚一下微信。前面提到的以“百聯”為幌子的詐騙資訊,我第二天再次去掃描二維碼的時候,發現已經被微信官方攔截了,防止更多的人被騙:

最後,再囉嗦一句。

你看我程式碼的這個部分:

維護一份shortKey和原連結的對映關係表

這是一句簡簡單單的話,但是裡面的學問可就多了去了。

比如原連結的長度是這麼長:

https://activity.juejin.cn/rank/2023/writer/3702810893364350?utm_campaign=annual_2023&utm_medium=self_web_share&utm_source=why%E6%8A%80%E6%9C%AF

我怎麼才能壓縮到和“123why”對應起來呢?

這裡面就涉及到各種各樣的壓縮演算法了。

關於“短鏈的設計”據說現在偶現於面試的場景設計題中,好在網上關於短鏈系統的設計的文章已經非常多了,如果你不知道其中細節的話,可以去搜搜,學習一下,有備無患。

最後,提高警惕,謹防詐騙。

牢記以下警方提示:

拉票

明人不說暗話,這一部分我想來拉個票。

主要還是為了滿足自己的那點虛榮心,也為了方便以後裝逼。

從今天到 29 號 18 點之前,每人每天可以在 web 端投兩票:

如果你願意給我投票的話,你可以長按掃碼:

然後登入,就可以雙擊投票了。

或者直接把這個連結複製到瀏覽器中:

https://activity.juejin.cn/rank/2023/writer/3702810893364350?utm_campaign=annual_2023&utm_medium=self_web_share&utm_source=why%E6%8A%80%E6%9C%AF

放心,這肯定不是詐騙連結。

我常常說寫文章是非常需要正反饋的,這就是體現正反饋最好的時候了,如果我的文章曾經對你有一絲絲幫助,麻煩花 30 秒時間投我兩票,滿足我這該死的虛榮心。

抱拳了,老鐵。

相關文章