欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

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

【網(wǎng)絡(luò)安全】WEB網(wǎng)站訪問時(shí)ip獲取&偽造與隱藏&挖掘

admin
2024年12月27日 21:27 本文熱度 162

本篇文章學(xué)習(xí)一下如何獲取真實(shí)ip,隱藏自己的ip,攻擊者如何偽造ip,挖掘出真實(shí)ip。

真實(shí)ip獲取

應(yīng)用層

這里以web為例,以下是一個(gè)簡(jiǎn)單的http服務(wù)器,獲取真實(shí)ip

httpserver.py

from http.server import BaseHTTPRequestHandler, HTTPServer


class MyHTTPRequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):

        self.send_response(200)

        self.send_header('Content-type', 'text/html')

        self.end_headers()

        

        # 獲取真實(shí)IP地址

        ip = self.headers.get('X-Forwarded-For', self.client_address[0])

        

        # 返回真實(shí)IP地址

        self.wfile.write(bytes(ip, 'utf-8'))        


def run_server():

    host = '0.0.0.0'

    port = 8000


    server = HTTPServer((host, port), MyHTTPRequestHandler)

    print(f'Starting server on {host}:{port}...')


    try:

        server.serve_forever()

    except KeyboardInterrupt:

        pass


    server.server_close()

    print('Server stopped.')


if __name__ == '__main__':

    run_server()

服務(wù)器啟動(dòng)代碼

python3 httpserver.py

如果有這個(gè)X-Forwarded-For,就用這個(gè),否則就用client_address[0]

客戶端代碼

import requests

url = 'http://127.0.0.1:8000'

headers = {'X-Forwarded-For': '192.168.1.1'}

response = requests.get(url, headers=headers)

print(response.text)

結(jié)果截圖

網(wǎng)絡(luò)層

網(wǎng)絡(luò)連接

還是上面的代碼,通過網(wǎng)絡(luò)連接獲取真實(shí)ip

不帶header再次發(fā)送

通過網(wǎng)絡(luò)連接獲取真實(shí)ip當(dāng)然很簡(jiǎn)單,也真實(shí),但是往往客戶端與服務(wù)器不是直接連通,中間有LB、CDN等。

雷池WAF就是通過連接獲取請(qǐng)求者源IP的。

TOA

有些產(chǎn)品會(huì)把ip放到TOA(TCP Options),轉(zhuǎn)發(fā)給下游,例如LB(Load Balancer),因此,下游服務(wù)獲取真實(shí)ip時(shí)需要從TOA中獲取

proxy protocol

有v1 v2兩個(gè)版本,都存在偽造問題,且主流LB沒有使用這種方式,僅nginx這種開源的看到了,所以沒有深究,請(qǐng)查看參考。

ip偽造

應(yīng)用層

以WEB為例,修改header即可。

import requests

url = 'http://127.0.0.1:8000'

headers = {'X-Forwarded-For': '8.8.8.8'}

response = requests.get(url, headers=headers)

print(response.text)

截圖

網(wǎng)絡(luò)層

TOA攻擊

一些服務(wù)會(huì)通過TOA來獲取真實(shí)ip,因此,可以通過修改TCP的選項(xiàng)(Options)來隱藏真實(shí)ip。
這里使用的是linux下方式,修改所有包,工具見參考。
首先,我先試驗(yàn)了一下,使用自己宿主機(jī)的服務(wù)器,抓包查看

發(fā)現(xiàn)確實(shí)有修改,Options字段有值,之后找了幾個(gè)查ip的網(wǎng)站,發(fā)現(xiàn)ip138不受影響,另一個(gè)網(wǎng)站是被欺騙了。

curl -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" https://2023.ip138.com | grep 您的IP

curl -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" https://zh-hans.ipshu.com/my_info | grep 下面是你的公開IP

截圖如下:

windows下可以自己寫腳本來進(jìn)行toa的修改

fake_toa.py

from scapy.all import *

import socket

import struct


# 目標(biāo)域名和端口

target_ip = '106.63.19.14'

target_port = 443


# 偽造的源 IP 地址

fake_ip = '111.111.111.222'


# 將偽造的 IP 地址轉(zhuǎn)換為整數(shù)

fake_ip_as_int = struct.unpack("!I", socket.inet_aton(fake_ip))[0]


# 創(chuàng)建自定義的 TCP 選項(xiàng)

option_254 = (254, b'\x00\x50' + struct.pack('!I', fake_ip_as_int))


# 創(chuàng)建 IP 層

ip_layer = IP(dst=target_ip)


# 創(chuàng)建 TCP 層,不添加 TCP 選項(xiàng)

syn = TCP(sport=RandShort(), dport=target_port, flags='S')


# 組合 IP 層和 TCP 層,發(fā)送 SYN 數(shù)據(jù)包

syn_ack = sr1(ip_layer / syn)


# 檢查是否收到 SYN+ACK 數(shù)據(jù)包

if syn_ack[TCP].flags == 'SA':

    # 創(chuàng)建 ACK 數(shù)據(jù)包,也不添加 TCP 選項(xiàng)

    ack = TCP(sport=syn_ack[TCP].dport, dport=target_port, flags='A', seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1)


    # 發(fā)送 ACK 數(shù)據(jù)包

    send(ip_layer / ack)


    # 創(chuàng)建 HTTP 請(qǐng)求,只包含 Host 頭部

    # http_request = 'GET /ip/local/geo/v1/district HTTP/1.1\r\n' \

    #                'Host: qifu-api.baidubce.com\r\n\r\n'

    http_request = 'GET / HTTP/1.1\r\n' \

                   'Host: 2023.ip138.com\r\n\r\n' \


    # 創(chuàng)建 HTTP 數(shù)據(jù)包,這次在 TCP 層添加自定義的選項(xiàng)

    http_packet = ip_layer / TCP(sport=syn_ack[TCP].dport, dport=target_port, flags='PA', seq=syn_ack[TCP].ack,

                                 ack=syn_ack[TCP].seq + 1, options=[option_254]) / Raw(load=http_request)


    # 接收 HTTP 響應(yīng)

    http_response = sr1(http_packet)


    # 打印 HTTP 響應(yīng)

    if http_response:

        print(http_response.show())

    else:

        print('No response')

else:

    print('Did not receive SYN+ACK. Received: {}'.format(syn_ack[TCP].flags))

抓包可以看到,確實(shí)添加了Options字段的內(nèi)容

proxy protocol

有v1、v2兩個(gè)版本,都可以偽造,用的不多也沒找到開源工具就沒深究了。

隱藏

代理

比較寬泛,無法列舉全。例如,使用cdn來隱藏自己服務(wù)器的ip,使用“梯子”做中間人來訪問一些你的ip無法訪問的網(wǎng)站,或者開四層、七層代理做轉(zhuǎn)發(fā),使用LB來做負(fù)載均衡的同時(shí)隱藏后端服務(wù)ip等

挖掘

代理

以cdn為例,這里找了一個(gè)博客網(wǎng)站,嘗試獲取真實(shí)ip

多地ping

可以看到使用了騰訊云的CDN

歷史DNS解析記錄

查看 IP 與 域名綁定的歷史記錄,可能會(huì)存在使用 CDN 前的記錄

國(guó)外主機(jī)解析域名

有的網(wǎng)站負(fù)責(zé)人為了省錢,只對(duì)國(guó)內(nèi)使用cdn,于是國(guó)外的流量都直接打到了真實(shí)服務(wù)器上。第一步ping的時(shí)候有了,國(guó)外也是通過cdn的。

網(wǎng)站RSS訂閱

有的網(wǎng)站可以郵件訂閱RSS,發(fā)送郵件的服務(wù)器就是使用網(wǎng)站所在的服務(wù)器,這里該網(wǎng)站沒有此功能,失敗。

網(wǎng)絡(luò)空間搜索引擎

這里使用了zoomeye,我查ip沒有顯示cdn,以為成功了,問了博客作者,還是cdn的ip

總結(jié)

  1. proxy protocol沒有研究,和TOA差不多,按照協(xié)議發(fā)包就行了,實(shí)現(xiàn)就交給讀者吧。
  2. TOA的偽造方式還是不錯(cuò)的,非linux下沒有btftools,可以自己寫一個(gè)代理,把瀏覽器的流量轉(zhuǎn)發(fā)到本地代理,代理的功能就是把TOA改一下。
  3. 一些代理隱藏ip還是不錯(cuò)的,除非網(wǎng)站從開始沒有使用cdn、部分使用cdn,或網(wǎng)站服務(wù)器有其他服務(wù)導(dǎo)致真實(shí)ip發(fā)出包了。該博客作者我也問了,一開始就使用了CDN,也沒有其他子域名、服務(wù),應(yīng)該是無法找到真實(shí)IP了。

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