无码国模产在线观看免费-无码国内精品久久人妻-无码国内精品久久综合88-无码国内精品人妻少妇-无码国内精品人妻少妇蜜桃视频-无码国语中文在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

短信接口被刷爆:我用Nginx臨時止血

freeflydom
2025年4月10日 11:51 本文熱度 294

最近,朋友公司遇到了一件讓他們“寢食難安”的事:他們的短信驗證碼接口被人盯上了,充進去的錢沒多久就被刷得一分不剩。不充錢,業(yè)務直接受影響;但充錢吧,就像往無底洞里灌水。他們聯(lián)系短信服務商,對方反饋說可能是“被惡意盜刷”。由于他們沒自己的IT團隊,App是找外包做的,現(xiàn)在處于無人維護狀態(tài)。老板希望在不改代碼的前提下想個辦法幫忙止血。


斷癥:不是Bug,而是接口在裸奔

這個App已經穩(wěn)定運行了兩年左右,程序 bug 的可能性比較小。我們懷疑是短信平臺信息泄露,或者接口被惡意程序利用。我上服務器看了下,他們部署非常簡單:前端用 Nginx 直接代理后端 Java 服務。打開 Nginx 日志發(fā)現(xiàn)有人以每秒3-6次的頻率請求獲取短信驗證碼的URL。并且接口調用未做二次驗證,這就等于把“發(fā)驗證碼”的權限完全開放了。哎!機會就這樣留給了別有用心的人。


亡羊補牢

這種情況,不改代碼確實有點難搞。從Nginx日志上可以看到,攻擊者使用了大量代理IP,每次請求的IP和參數(shù)都在變化,所以沒辦法通過IP黑名單的方式解決問題。我們只能寄希望于App在請求接口的時攜帶了攻擊者不具備的標識。由于Nginx無法直接打印完整請求頭,所以考慮用OpenResty通過Lua腳步把所有的請求頭內容輸出到日志里(這個接口是Get請求)。又只能在夜深人靜的時候加班學習,好在以前了解過一點OpenResty的知識。


分析請求頭

先折騰了一個簡單腳本來分析請求頭,要是這一關過不了,那基本可以放棄這個思路了。

location /api/reg/getCode {
    content_by_lua_block {
        for k, v in pairs(ngx.req.get_headers()) do
            ngx.say(k, ": ", v)
        end
    }
}

經過一番分析,發(fā)現(xiàn)App在每個請求上都帶上了一個版本號信息(雖然還在1.0.0),好在正好可以用來區(qū)分是否為惡意請求。


基于請求頭做驗證

接下來,就是利用 Nginx 的 map 指令判斷請求頭中是否包含指定版本號字段。命中放行,沒命中就攔下。
代碼如下:

http {
    map $http_app_version $allow {
        default 0;
        "~*xxx_1.0.0" 1;
    }
    server {
        listen 80;
        server_name xxx.xxx.com;
        location /api/reg/getCode {
            if ($allow = 0) {
                return 403;
            }
            proxy_pass http://java_service;
        }
    }
}

部署上去后看了下 Java 的日志,接口盜刷的請求直接被干掉,效果顯著。


以假亂真

雖然攔截成功,但返回403會暴露我們的防御策略,容易引起對手的注意,分分鐘就能突破這道薄弱的屏障。于是做了個升級:在nginx攔截到請求后,直接返回請求成功的響應結果,從此以后雙方都可以保持“成功”的假象。

改動如下:

location /api/reg/getCode {
    if ($allow = 0) {
        add_header Content-Type application/json;
        return 200 '{"code":"200","message":"驗證碼發(fā)送成功","success":true}';
    }
    proxy_pass http://java_service;
}

經測試,妥妥的,在不看日志的情況下,根本看不出到底有沒有真的請求到 Java 服務。


總結

一直不太能理解,這種攻擊到底圖個啥。既沒帶來直接利益,還要花成本搞代理搞腳本,這不是典型的損人不利己嗎。在之后的幾天里,一切又恢復到了往日的寧靜。雖然事情已經告一段落,但臨時止血不是長久之計,解決這類問題還是需加強程序安全驗證,提升攻擊難度。


最后

關于OpenResty,可以翻閱我的OpenResty學習筆記,歡迎點贊支持。

?


該文章在 2025/4/10 11:51:13 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 91午夜一区二区 | 亚洲sm另类一区二区三区 | 久久人妻国产精品31 | 日本无码欧美激情在线视频 | 亚洲91精品在线 | 国产精品免费无遮挡无 | 国产午夜精品一区二区体验国产午夜精品无码日本最新 | 精品一区二区不卡麻豆 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美精品一区二区 | 国产成人久久综合第一区 | 欧美久久综合九色综合 | 成人国产在线观看高清不卡 | 一本道久久爱88AV俺也去 | 成人网18免费下 | 国产激情艳情在线看视频 | 自拍乱伦三级欧美 | 欧美日韩日本在线观看a | 久久无码人妻国产一区二区 | 国产成人午夜精品一区二区三区 | 夜精品a一区二区三区 | 18禁无遮拦无码国产在线播 | 五十路熟女人妻一区二区 | 51精品视频在线一区二区 | 亚洲国内自拍愉拍 | 永久免费观看不收费的软件 | 午夜理论在线观看不卡大地影院 | 国产成人无码免费视频 | 国产亚洲一区二区手机在线观看 | 中文字幕无码久久人妻资讯 | 日本欧美成人免费 | 国产成人精品日本亚洲18 | 麻豆精品国产精华液好用吗 | 99久久国产精亚洲艾草网 | 精品午夜国产福利观看 | 国产成人免费高清在线观看 | 国产91高清在线 | 亚洲阿v天堂在线z2024 | 成人在无码AV在线观看一 | 在线看片福利无码青青 | 粗大猛烈进出高潮 | 欧美成人精精品一区二区三区 |