鍍金池/ 問(wèn)答/Java  Linux  網(wǎng)絡(luò)安全/ 通過(guò)nginx日志,查找攻擊者的真實(shí)IP?

通過(guò)nginx日志,查找攻擊者的真實(shí)IP?

因?yàn)楹蠖送瑢W(xué)的失誤,有個(gè)獲取短信驗(yàn)證碼接口沒(méi)有做二次驗(yàn)證。導(dǎo)致被人攻擊。損失幾萬(wàn)條短信。

附nginx access日志。tomcat 服務(wù)。
clipboard.png

請(qǐng)問(wèn)各位,如何判斷攻擊者是用肉雞攻擊,還是單機(jī)用代理IP進(jìn)行攻擊?如何查看攻擊者真實(shí)IP。

回答
編輯回答
尛曖昧

如果用匿名代理的話,你肯定拿不到攻擊者真實(shí)IP的,我覺(jué)得用匿名代理應(yīng)該是黑客的基本素質(zhì)吧。

2017年7月14日 09:52
編輯回答
嘟尛嘴

沒(méi)有列出來(lái)nginx的日志格式,猜測(cè)日志里的ip字段取得是$remote_addr?這樣拿的是跟你這臺(tái)nginx直接連接的遠(yuǎn)端的地址,從日志看有重復(fù)的ip,如果你們對(duì)于ip的限制不合理的話,可能是本地架了個(gè)代理,不斷偽造客戶端ip來(lái)連接的。
具體你的架構(gòu)沒(méi)有給出來(lái),無(wú)法分析,你們的nginx前面是否有其他nginx做代理?例如阿里云?如果有,分析ip來(lái)源要結(jié)合$remote_addr和$http_x_forwarded_for,尤其是第二個(gè)字段。打個(gè)比方,如果你們的nginx位于阿里負(fù)載均衡之后,在你們的nginx日志中$http_x_forwarded_for字段取值為“”A,B,C”,那么只能確定跟阿里直接建立連接的客戶端ip是C,同時(shí)你的日志里$remote_addr也是C,這個(gè)值是偽造不了的;同時(shí)真正客戶端的地址理論上是A,為什么說(shuō)理論上,因?yàn)檫@個(gè)值是可以被篡改的,自己本地架個(gè)代理就可以篡改。比如C是攻擊者架的代理,那么理論上可以不斷的修改A和B的值來(lái)規(guī)避一些ip限制。因此在實(shí)際應(yīng)用中,對(duì)于IP的限制一定要明確自己的需求場(chǎng)景,知道怎么取IP來(lái)進(jìn)行限制。
回到你的問(wèn)題,從你給的日志看不出來(lái)攻擊者的真實(shí)IP,只是猜測(cè),因?yàn)槟銈兊膇p限制不是很合理,攻擊者連代理池都沒(méi)用,直接本地架了代理來(lái)刷。
有問(wèn)題歡迎進(jìn)一步討論。

2017年1月29日 22:47