当前位置: 首页 > 工具软件 > php-ws > 使用案例 >

PHP-FPM unix socket抓包

郭思淼
2023-12-01

Sniffer for Unix Domain Sockets
    https://github.com/jonschipp/unixsniff

Dependencies

apt-get install socat bash

test.php

<?php

echo 11;

------------------------------------------------------------------

Use

Enable sniffing on socket

$ ./unixsniff start /tmp/php-fpm.sock

访问http://127.0.0.1/test.php

> 2022/03/01 18:55:41.670565  length=936 from=0 to=935
 01 01 00 01 00 08 00 00 00 01 00 00 00 00 00 00  ................
 01 04 00 01 03 79 07 00 0f 1e 53 43 52 49 50 54  .....y....SCRIPT
 5f 46 49 4c 45 4e 41 4d 45 2f 68 6f 6d 65 2f 77  _FILENAME/home/w
 77 77 72 6f 6f 74 2f 64 65 66 61 75 6c 74 2f 74  wwroot/default/t
 65 73 74 2e 70 68 70 0c 00 51 55 45 52 59 5f 53  est.php..QUERY_S
 54 52 49 4e 47 0e 03 52 45 51 55 45 53 54 5f 4d  TRING..REQUEST_M
 45 54 48 4f 44 47 45 54 0c 00 43 4f 4e 54 45 4e  ETHODGET..CONTEN
 54 5f 54 59 50 45 0e 00 43 4f 4e 54 45 4e 54 5f  T_TYPE..CONTENT_
 4c 45 4e 47 54 48 0b 09 53 43 52 49 50 54 5f 4e  LENGTH..SCRIPT_N
 41 4d 45 2f 74 65 73 74 2e 70 68 70 0b 09 52 45  AME/test.php..RE
 51 55 45 53 54 5f 55 52 49 2f 74 65 73 74 2e 70  QUEST_URI/test.p
 68 70 0c 09 44 4f 43 55 4d 45 4e 54 5f 55 52 49  hp..DOCUMENT_URI
 2f 74 65 73 74 2e 70 68 70 0d 15 44 4f 43 55 4d  /test.php..DOCUM
 45 4e 54 5f 52 4f 4f 54 2f 68 6f 6d 65 2f 77 77  ENT_ROOT/home/ww
 77 72 6f 6f 74 2f 64 65 66 61 75 6c 74 0f 08 53  wroot/default..S
 45 52 56 45 52 5f 50 52 4f 54 4f 43 4f 4c 48 54  ERVER_PROTOCOLHT
 54 50 2f 31 2e 31 0e 04 52 45 51 55 45 53 54 5f  TP/1.1..REQUEST_
 53 43 48 45 4d 45 68 74 74 70 11 07 47 41 54 45  SCHEMEhttp..GATE
 57 41 59 5f 49 4e 54 45 52 46 41 43 45 43 47 49  WAY_INTERFACECGI
 2f 31 2e 31 0f 0c 53 45 52 56 45 52 5f 53 4f 46  /1.1..SERVER_SOF
 54 57 41 52 45 6e 67 69 6e 78 2f 31 2e 32 30 2e  TWAREnginx/1.20.
 31 0b 0c 52 45 4d 4f 54 45 5f 41 44 44 52 31 39  1..REMOTE_ADDR19
 32 2e 31 36 38 2e 31 37 2e 31 0b 05 52 45 4d 4f  2.168.17.1..REMO
 54 45 5f 50 4f 52 54 36 33 33 39 38 0b 0e 53 45  TE_PORT63398..SE
 52 56 45 52 5f 41 44 44 52 31 39 32 2e 31 36 38  RVER_ADDR192.168
 2e 31 37 2e 31 32 39 0b 02 53 45 52 56 45 52 5f  .17.129..SERVER_
 50 4f 52 54 38 30 0b 01 53 45 52 56 45 52 5f 4e  PORT80..SERVER_N
 41 4d 45 5f 0f 03 52 45 44 49 52 45 43 54 5f 53  AME_..REDIRECT_S
 54 41 54 55 53 32 30 30 0f 30 50 48 50 5f 41 44  TATUS200.0PHP_AD
 4d 49 4e 5f 56 41 4c 55 45 6f 70 65 6e 5f 62 61  MIN_VALUEopen_ba
 73 65 64 69 72 3d 2f 68 6f 6d 65 2f 77 77 77 72  sedir=/home/wwwr
 6f 6f 74 2f 64 65 66 61 75 6c 74 2f 3a 2f 74 6d  oot/default/:/tm
 70 2f 3a 2f 70 72 6f 63 2f 09 0e 48 54 54 50 5f  p/:/proc/..HTTP_
 48 4f 53 54 31 39 32 2e 31 36 38 2e 31 37 2e 31  HOST192.168.17.1
 32 39 0f 0a                                      29..
 48 54 54 50 5f 43 4f 4e 4e 45 43 54 49 4f 4e 6b  HTTP_CONNECTIONk
 65 65 70 2d 61 6c 69 76 65 1e 01 48 54 54 50 5f  eep-alive..HTTP_
 55 50 47 52 41 44 45 5f 49 4e 53 45 43 55 52 45  UPGRADE_INSECURE
 5f 52 45 51 55 45 53 54 53 31 0f 80 00 00 81 48  _REQUESTS1.....H
 54 54 50 5f 55 53 45 52 5f 41 47 45 4e 54 4d 6f  TTP_USER_AGENTMo
 7a 69 6c 6c 61 2f 35 2e 30 20 28 57 69 6e 64 6f  zilla/5.0 (Windo
 77 73 20 4e 54 20 31 30 2e 30 3b 20 57 4f 57 36  ws NT 10.0; WOW6
 34 29 20 41 70 70 6c 65 57 65 62 4b 69 74 2f 35  4) AppleWebKit/5
 33 37 2e 33 36 20 28 4b 48 54 4d 4c 2c 20 6c 69  37.36 (KHTML, li
 6b 65 20 47 65 63 6b 6f 29 20 43 68 72 6f 6d 65  ke Gecko) Chrome
 2f 35 35 2e 30 2e 32 38 38 33 2e 38 37 20 55 42  /55.0.2883.87 UB
 72 6f 77 73 65 72 2f 36 2e 32 2e 34 30 39 38 2e  rowser/6.2.4098.
 33 20 53 61 66 61 72 69 2f 35 33 37 2e 33 36 0b  3 Safari/537.36.
 4a 48 54 54 50 5f 41 43 43 45 50 54 74 65 78 74  JHTTP_ACCEPTtext
 2f 68 74 6d 6c 2c 61 70 70 6c 69 63 61 74 69 6f  /html,applicatio
 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 2c 61 70 70 6c  n/xhtml+xml,appl
 69 63 61 74 69 6f 6e 2f 78 6d 6c 3b 71 3d 30 2e  ication/xml;q=0.
 39 2c 69 6d 61 67 65 2f 77 65 62 70 2c 2a 2f 2a  9,image/webp,*/*
 3b 71 3d 30 2e 38 14 0d 48 54 54 50 5f 41 43 43  ;q=0.8..HTTP_ACC
 45 50 54 5f 45 4e 43 4f 44 49 4e 47 67 7a 69 70  EPT_ENCODINGgzip
 2c 20 64 65 66 6c 61 74 65 14 0e 48 54 54 50 5f  , deflate..HTTP_
 41 43 43 45 50 54 5f 4c 41 4e 47 55 41 47 45 7a  ACCEPT_LANGUAGEz
 68 2d 43 4e 2c 7a 68 3b 71 3d 30 2e 38 00 00 00  h-CN,zh;q=0.8...
 00 00 00 00 01 04 00 01 00 00 00 00 01 05 00 01  ................
 00 00 00 00                                      ....
--
< 2022/03/01 18:55:41.674889  length=96 from=0 to=95
 01 06 00 01 00 46 02 00 58 2d 50 6f 77 65 72 65  .....F..X-Powere
 64 2d 42 79 3a 20 50 48 50 2f 37 2e 32 2e 33 34  d-By: PHP/7.2.34
 0d 0a                                            ..
 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 74 65  Content-type: te
 78 74 2f 68 74 6d 6c 3b 20 63 68 61 72 73 65 74  xt/html; charset
 3d 55 54 46 2d 38 0d 0a                          =UTF-8..
 0d 0a                                            ..
 31 31 00 00 01 03 00 01 00 08 00 00 00 00 00 00  11..............
 00 37 35 37                                      .757
--
HTTP请求报头前半部分,与/usr/local/nginx/conf/fastcgi.conf一致。 后半部分,通常HTTP报头。

[root@VM-0-17-centos 09:20:12 /usr/local/share]# cat /usr/local/nginx/conf/fastcgi.conf

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

Disable sniffing and restore socket 

$ ./unixsniff stop /tmp/php-fpm.sock

 类似资料: