1. 程式人生 > >分析暴力的滿天發紅包 【方便雖好,安全第一 】

分析暴力的滿天發紅包 【方便雖好,安全第一 】

                       
 

最近看到各種論壇群裡滿天飛紅包段子連結,比如這種:
  穿山甲到底說了什麼,開啟“xxx”檢視~
  支付寶被爆巨大漏洞,開啟“xxx”檢視~
  騰訊會員1毛錢一個月,速速開啟“xxx”領取~
 
  點選連結,自動給你跳轉到支付寶紅包介面,好吧,又被人擼羊毛了~
  作為一個安全學習者,怎麼能不追求熱點去學習一波這種神奇的操作是如何進行的呢~
  特地去知乎搜了一波,果然有各路大佬在分享原始碼,特地弄了一個進行原始碼審計,學習學習~

<!DOCTYPE html><html lang="zh-cmn-hans"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge, chrome=1"><title>正在開啟支付寶,請稍候……</title></head><body
>
<script> var a = "https://qr.alipay.com/c1x09359aaxzejcv5cnzdc4";//替換你的紅包連結var b = "https://qr.alipay.com/c1x09359aaxzejcv5cnzdc4";//替換你的紅包連結function is_weixin() {if (/MicroMessenger/i.test(navigator.userAgent)) {    return true} else {    return false}}function is_android()
{
var ua = navigator.userAgent.toLowerCase();if (ua.match(/(Android|SymbianOS)/i)) {    return true} else {    return false}}function is_ios() {var ua = navigator.userAgent.toLowerCase();if (/iphone|ipad|ipod/.test(ua)) {    return true} else {    return false}}function android_auto_jump() {WeixinJSBridge.invoke("jumpToInstallUrl", {},function(e) {});window.close();WeixinJSBridge.call("closeWindow")}function ios_auto_jump() {if (a != "") {    location.href = a} else {    window.close();    WeixinJSBridge.call("closeWindow")}}function onAutoinit() {if (is_android()) {    android_auto_jump();    return false}if (is_ios()) {    ios_auto_jump();    return false}}/*1、來了解一下Navigator 物件,Navigator 物件包含有關瀏覽器的資訊,下面的userAgent 屬性是一個只讀的字串,聲明瞭瀏覽器用於 HTTP 請求的使用者代理頭的值。所以我們可以通過判斷navigator.useragent裡面是否有某些值來判斷。簡單來說,可以理解成http請求頭讀到的uesr-agent2、舉個例子window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? "https://www.baidu.com/" :  "http://news.baidu.com/";利用了正則表示式和三目運算子,含義就是如果是移動端開啟的話那就跳轉到 "https:www.baidu.com/" ,如果不是就跳轉到"http://new.baidu.com/",實際上就是利用正則去判斷 navigator.useragent 是否含有 Android/webOs/iphone 等字串,並且利用修飾符 "i" 做了不區分大小寫,然後用正則的方法 test 去判斷是否滿足*/if (is_weixin()){    if (typeof WeixinJSBridge == "undefined") {//判斷WeixinJSBridge的型別        if (document.addEventListener) {//firefox等            document.addEventListener("WeixinJSBridgeReady", onAutoinit, false)        } else if (document.attachEvent) {//ie等            document.attachEvent("WeixinJSBridgeReady", onAutoinit);            document.attachEvent("onWeixinJSBridgeReady", onAutoinit)//WeixinJSBridgeReady查到是微信的一個官方介面,通過此喚醒瀏覽器        }//新增事件,考慮到瀏覽器相容問題} else {    onAutoinit()//主要邏輯,先判斷是否微信,在判斷ios或者安卓}} else {//如果不是,直接喚醒瀏覽器進行二次跳轉    if (b != "") {        location.href = b    } else {        window.close()    }}
</script></body></html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
 

這是一個比較火的原始碼,上面的註釋是我的一些分析,其實思路真的是比較簡單,分幾步給大家介紹一下吧
  1、從支付寶紅包介面選擇發紅包->立即賺賞金->二維碼,拿到一個這樣的二維碼!
  這裡寫圖片描述
  2、拿到二維碼,使用各種免費的網站進行解析,分析出其中的文字連結,比如我的:
  這裡寫圖片描述
  3、將上述原始碼中開頭的變數a,b進行替換,然後將網頁丟入你自己的雲伺服器即可。為了增強別人的信任,還可利用新浪的短連結生成一個別人看不出來路短連結域名,配合上各種吸人眼球的段子就可以大量傳播發紅包了~
  4、程式碼思路分析:

   
     
  • 其實就是利用了連結跳轉
  •  
  • 如果是知乎等app未設定拒絕瀏覽器喚醒,相當於進行了跳轉到瀏覽器,再跳轉到支付寶
  •  
  • 如果是微信,會進一步針對安卓或者ios進行介面呼叫,喚醒瀏覽器進行二次跳轉
  •  
  • 歸根結底,就是利用了瀏覽器做二次跳轉~
  •  
   

5、截止到這篇部落格釋出前,實測:

   
     
  • 微信已經無法利用此程式碼進行瀏覽器的喚醒操作。
  •  
  • qq測試的結果是隻能開啟自帶的內建qq瀏覽器然後不能喚醒支付寶~
  •  
  • 其他如uc瀏覽器直接測試,或者知乎等都還是可以的;
  •  
  • 總結下:其實如果針對這些不需要進行呼叫介面進行喚醒瀏覽器的app來說,直接可以將你得到的那個支付寶連結通過新浪短連線生成一個隱蔽的短連線去讓別人點選即可~
  •  
   

你以為到這裡就結束了?錯了,作為一個安全學習者,怎麼能不從安全的角度進行分析呢!
  從安全形度分析,雖然這是一場流量大V的發紅包狂歡,但不得不防有犯罪分子乘機構造各種惡意連結混在其中去獲取的個人資訊!
  可能你點選的前一萬個連結都是跳轉支付寶的連結,你慢慢的就放鬆了警惕,忘記了爸爸媽媽所說的,新聞中報到的各種不明的連結不能亂點的警示案例~

   

下面我用通俗易懂的語言為大家剖析

   

CSRF攻擊就是假裝你去行騙

   

CSRF(Cross-site request forgery),它的中文名稱是跨站請求偽造,也被稱為:one click attack/session riding,縮寫為:CSRF/XSRF。
  簡單地說,CSRF就是利用了我們的登入狀態或者授權狀態,然後做一些損害我們自身利益的事情。

   

舉個例子:

   

比如說你轉賬的連結的連結是www.yinghan.com/money.php?count=10&&id=xxxxxxxxxxx,10代表的是金額,id代表的是轉賬到的賬號。
  你可能說我沒登入銀行,我就點一下這個連結又能怎樣。這個理解就錯了。很多時候,絕大多人為了方便,你的一些賬號你都點選了儲存密碼,免登入這個選項;這本來沒問題,但是當你點選了不良連結的時候,你的身份(cookies)就會是你之前登入的身份,銀行會預設這是你的操作,所以交易成功了!(當然,實際生活中銀行的判斷不是僅僅這樣,這裡這是舉例子)

   

實際:

   

當黑客發現一個網站的csrf漏洞時,可能之前他沒有什麼好辦法讓你點選這個連結,但是,混在這個支付寶紅包狂歡的時間,一個小小的連結,即可讓你損失頗重~

   

關注下OWASP top10

   

這裡寫圖片描述
  2017年csrf依舊穩居前十~
  一路前行,方便雖好,安全第一~

           

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow