คำขอ HTTP หนึ่งคำขอตอบกลับสองรายการ


0

ฉันกำลังทดลองกับลำโพงไร้สาย Samsung ของฉัน ฉันใช้ Wireshark เพื่อตรวจสอบและทำวิศวกรรมย้อนกลับ API การเรียก API ตัวใดตัวหนึ่งของฉันทำให้เกิดพฤติกรรมแปลก ๆ ซึ่งดูเหมือนว่าคำขอ HTTP หนึ่งรายการจะตอบกลับ HTTP สองรายการ

curl -v http://192.168.1.165:55001/UIC\?cmd\=%3Cname%3EGetMainInfo%3C/name%3E

จับภาพ Wireshark สำหรับคำสั่งดังกล่าว

สิ่งที่น่าผิดหวังคือเป็นคำตอบที่สองที่มีน้ำหนักบรรทุกที่ฉันตามมา ฉันจะไปถึงได้อย่างไร

เอาท์พุท Curl

*   Trying 192.168.1.165...
* TCP_NODELAY set
* Connected to 192.168.1.165 (192.168.1.165) port 55001 (#0)
> GET /UIC?cmd=%3Cname%3EGetMainInfo%3C/name%3E HTTP/1.1
> Host: 192.168.1.165:55001
> User-Agent: curl/7.58.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Fri, 02 Jan 1970 09:31:25 GMT
< Server: Samsung/1.0
< Content-Type: text/html
< Content-Length: 215
< Connection: close
< Last-Modified: Fri, 02 Jan 1970 09:31:25 GMT
< 
* Closing connection 0
<?xml version="1.0" encoding="UTF-8"?><UIC><method>RequestDeviceInfo</method><version>1.0</version><speakerip>192.168.1.165</speakerip><user_identifier>public</user_identifier><response result="ok"></response></UIC>

Wireshark HTTP การตอบสนอง 1/2

<?xml version="1.0" encoding="UTF-8"?><UIC><method>RequestDeviceInfo</method><version>1.0</version><speakerip>192.168.1.165</speakerip><user_identifier>public</user_identifier><response result="ok"></response></UIC>

Wireshark HTTP การตอบสนอง 2/2

<?xml version="1.0" encoding="UTF-8"?><UIC><method>MainInfo</method><version>1.0</version><speakerip>192.168.1.165</speakerip><user_identifier></user_identifier><response result="ok"><party>off</party><partymain></partymain><grouptype>N</grouptype><groupmainip>0.0.0.0</groupmainip><groupmainmacaddr>00:00:00:00:00:00</groupmainmacaddr><spkmacaddr>xx:xx:xx:xx:xx:xx</spkmacaddr><spkmodelname>SPK-WAM3500</spkmodelname><groupmode>none</groupmode><channeltype>invalid</channeltype><channelvolume>0</channelvolume><multichinfo>on</multichinfo><groupspknum>1</groupspknum><dfsstatus>dfsoff</dfsstatus><protocolver>2.3</protocolver><btmacaddr>xx:xx:xx:xx:xx:xx</btmacaddr></response></UIC>

netcat

Netcat ทำงานอย่างที่ดูเหมือน:

$ nc 192.168.1.165 55001
GET /UIC?cmd=%3Cname%3EGetMainInfo%3C/name%3E HTTP/1.1
Host: 192.168.1.165

HTTP/1.1 200 OK
Date: Fri, 02 Jan 1970 10:53:13 GMT
Server: Samsung/1.0
Content-Type: text/html
Content-Length: 215
Connection: close
Last-Modified: Fri, 02 Jan 1970 10:53:13 GMT

<?xml version="1.0" encoding="UTF-8"?><UIC><method>RequestDeviceInfo</method><version>1.0</version><speakerip>192.168.1.165</speakerip><user_identifier>public</user_identifier><response result="ok"></response></UIC>HTTP/1.1 200 OK
Date: Fri, 02 Jan 1970 10:53:13 GMT
Server: Samsung/1.0
Content-Type: text/html
Content-Length: 684
Connection: close
Last-Modified: Fri, 02 Jan 1970 10:53:13 GMT

<?xml version="1.0" encoding="UTF-8"?><UIC><method>MainInfo</method><version>1.0</version><speakerip>192.168.1.165</speakerip><user_identifier></user_identifier><response result="ok"><party>off</party><partymain></partymain><grouptype>N</grouptype><groupmainip>0.0.0.0</groupmainip><groupmainmacaddr>00:00:00:00:00:00</groupmainmacaddr><spkmacaddr>xx:xx:xx:xx:xx:xx</spkmacaddr><spkmodelname>SPK-WAM3500</spkmodelname><groupmode>none</groupmode><channeltype>invalid</channeltype><channelvolume>0</channelvolume><multichinfo>on</multichinfo><groupspknum>1</groupspknum><dfsstatus>dfsoff</dfsstatus><protocolver>2.3</protocolver><btmacaddr>xx:xx:xx:xx:xx:xx</btmacaddr></response></UIC>

คุณสามารถรับการตอบสนอง HTTP ในหลาย ๆ แพ็กเก็ต ผลลัพธ์ของการร้องขอ curl ของคุณคืออะไร?
slhck

@slhck เพิ่มเอาต์พุต curl ขอบคุณที่มอง
beklip

@Biswapriyo เพิ่มทั้ง payloads ขอบคุณที่มอง
beklip

จะเกิดอะไรขึ้นถ้าคุณecho 'GET /UIC?cmd=%3Cname%3EGetMainInfo%3C/name%3E HTTP/1.1' | socat - TCP:192.168.1.165:55001(หรือตัวแปรที่มีส่วนหัวมากกว่าหรือtelnetถ้าคุณไม่มีsocat) จุดคือการหลีกเลี่ยงการทำปฏิกิริยากับความยาวที่ไม่ถูกต้องในการตอบสนองครั้งแรกร่วมกับcurl Connection: close
dirkt

@dirkt ฉันใช้ netcat ซึ่งดูเหมือนจะทำงานได้ดี
beklip
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.