Lösungen für die Übermittlung von HTTP-Anfragen von Administratoren

Schriftsteller:Kleine Träume, Erstellt: 2020-09-23 16:24:42, Aktualisiert: 2023-09-27 19:37:55

img

Lösungen für die Übermittlung von HTTP-Anfragen von Administratoren

Bei Tests, Debugging-Policies und beim Betrieb von Roboter auf dem Festplatten wird häufig ein Fehler bei der Anschlussmeldung des Austauschs aufgetreten. Es ist wichtig, die API-Dokumentation des Austauschs zu durchsuchen, um entsprechende Fehlerinformationen zu erhalten.

In diesem Artikel werden wir zwei Lösungen gemeinsam erörtern.

1. Drucken Sie mit dem Python-Scapy-Repertoire-Scraper einen Versandbericht

Erst installierenscapyModule

pip3 install scapy 

Dann erstellen Sie eine Python-Strategie:

from scapy.all import *

def Method_print(packet):
    ret = "\n".join(packet.sprintf("{Raw:%Raw.load%}").split(r"\r\n"))
    Log(ret)

sniff(
    iface='eth0',
    prn=Method_print,
    lfilter=lambda p: "GET" in str(p) or "POST" in str(p),
    filter="tcp")

Dann wird ein Bot erstellt, der diese Strategie verwendet, und er greift das HTTP-Paket, das vom Server des Hosts ausgegeben wird (https kann das nicht greifen und hat etwas damit zu tun).

Wenn wir diesen Bot ausführen, können wir mit dem Debugging-Tool eine Anfrage versenden, und der Roboter greift die Anfrage.

function main(){
    // 要把基地址设置为其它http协议的地址,如果不设置交易所的地址一般都是https,这样是抓不到包的
    exchange.SetBase("http://www.baidu.com")    
    
    // POST 请求
    exchange.IO("api", "POST", "/api/swap/v3/order", "aaa=111&bbb=222")
    
    // GET 请求
    exchange.SetContractType("swap")
    exchange.GetTicker()
}

Die Botschaft, die der Roboter ausgedruckt hat:img

Wir können es kopieren und den Artikel lesen: GET fordert einen Bericht:

GET 
/api/swap/v3/instruments/BTC-USD-SWAP/ticker 
HTTP/1.1 
Host: www.baidu.com 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 Accept-Encoding: gzip 

Host: www.baidu.comWenn wir uns nicht an die richtigen Dinge erinnern, die wir tun, um sie zu fangen, können wir sie ignorieren, und das Richtige sollte sein:Host: www.okex.comDer Link in der Anfrage lautet:/api/swap/v3/instruments/BTC-USD-SWAP/tickerDie Anfrage, die die Banken anfordern, ist, um die Marktdaten für dauerhafte Verträge mit BTC zu erhalten.

POST fordert einen Bericht:

POST 
/api/swap/v3/order 
HTTP/1.1 
Host: www.baidu.com 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 
Content-Length: 25 
Content-Type: application/json; charset=UTF-8 
Ok-Access-Key: d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4 
Ok-Access-Passphrase: abc123 
Ok-Access-Sign: h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0= 
Ok-Access-Timestamp: 2020-09-23T08:43:49.906Z Accept-Encoding: gzip 

{"aaa":"111","bbb":"222"}

Sie können sehen, dass der Request-Pfad lautet:/api/swap/v3/orderDas ist nicht wahr. Der geprüfte Zugangsschlüssel:d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4(Demonstration, nicht echtes KEY) Unterzeichnen Sie die Anfrage:h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0=API KEY Passphrase:abc123(Demonstration verwendet) Die angeforderten Body-Daten:{"aaa":"111","bbb":"222"}

Das ist ein einfaches Verfahren, um die Anfragen zu analysieren und zu analysieren, warum eine Anfrage einen Fehler erlebt hat.

2. Lokaler Abhörantrag

Die zweite Methode, ohne Roboter zu bauen, ist die Verwendung von Apple-Computern mit einem Mac-Stick.Netcat : https://baike.baidu.com/item/Netcat/9952751?fr=aladdinUnd sie haben sich auch für die Veröffentlichung von Berichten eingesetzt.

Befehle für den Endgerätnc -l 8080Das ist eine sehr schwierige Aufgabe.

Siehe Bild:img

Ebenso können wir einen Host auf dem Computer installieren und dann im Debugging-Tool eine Anfrage mit folgendem Code senden.

function main(){
    exchange.SetBase("http://127.0.0.1:8080")    // 这里把基地址改为本机,端口8080,Netcat 就可以监听到请求了
    // POST 请求
    exchange.IO("api", "POST", "/api/swap/v3/order", "aaa=111&bbb=222")
    
    // GET 请求
    exchange.SetContractType("swap")
    exchange.GetTicker()
}

Die Post-Request-Nachricht, die auf dem Terminal gedruckt wurde:img

Der get-Anfrage-Message, der auf dem Terminal gedruckt wurde:img


Verwandt

Mehr