使用shell脚本编写cgi

来源:互联网 发布:软件项目合同书 编辑:程序博客网 时间:2024/05/22 06:36

非常简单

示例1:recv脚本接收http post数据

#!/bin/shread bufecho "Content-type:text/html;charset=UTF-8"echoecho $buf

使用curl命令进行测试:

curl --data "name=abc" http://10.236.5.128/cgi-bin/recv

抓包得到http消息如下:

POST /cgi-bin/recv HTTP/1.1User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2Host: 10.236.5.128Accept: */*Content-Length: 8Content-Type: application/x-www-form-urlencodedname=abcHTTP/1.1 200 OKDate: Wed, 11 Feb 2015 06:43:29 GMTServer: Apache/2.2.15 (CentOS)Content-Length: 9Connection: closeContent-Type: text/html;charset=UTF-8name=abc

示例2:接收http post上传文件

#!/bin/shwhile read bufdo    echo $buf >> datadoneecho
使用curl命令进行测试:

curl -F password=@/etc/passwd http://10.236.5.128/cgi-bin/backup

抓包得到http消息如下:

POST /cgi-bin/backup HTTP/1.1User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2Host: 10.236.5.128Accept: */*Content-Length: 2136Expect: 100-continueContent-Type: multipart/form-data; boundary=----------------------------ebae583d2488HTTP/1.1 100 Continue------------------------------ebae583d2488Content-Disposition: form-data; name="password"; filename="passwd"Content-Type: application/octet-streamroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinusbmuxd:x:113:113:usbmuxd user:/:/sbin/nologinavahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologinvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinrtkit:x:499:497:RealtimeKit:/proc:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologinavahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologinpulse:x:498:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologinabrt:x:173:173::/etc/abrt:/sbin/nologinsaslauth:x:497:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinhaldaemon:x:68:68:HAL daemon:/:/sbin/nologinapache:x:48:48:Apache:/var/www:/sbin/nologingdm:x:42:42::/var/lib/gdm:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologintcpdump:x:72:72::/:/sbin/nologintony:x:500:500:LinuxServer:/home/tony:/bin/bashldap:x:55:55:LDAP User:/var/lib/ldap:/sbin/nologinnamed:x:25:25:Named:/var/named:/sbin/nologinjenkins:x:496:493:Jenkins Continuous Build server:/var/lib/jenkins:/bin/falserpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologinrpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinpostgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash------------------------------ebae583d2488--HTTP/1.1 200 OKDate: Thu, 12 Feb 2015 02:11:28 GMTServer: Apache/2.2.15 (CentOS)Content-Length: 0Connection: closeContent-Type: text/plain; charset=UTF-8


0 0