添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1

curl http : //iframe.ip138.com/ic.asp| iconv -fgb2312

iconv的用法请参阅: 在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题

2. Linux curl使用 代理

linux curl使用http 代理 抓取页面:

1

2

curl - x 111.95.243.36 : 80 http : //iframe.ip138.com/ic.asp|iconv -fgb2312

curl - x 111.95.243.36 : 80 - U aiezu : password http : //www.baidu.com

使用socks代理抓取页面:

1

2

curl -- socks4 202.113.65.229 : 443 http : //iframe.ip138.com/ic.asp|iconv -fgb2312

curl -- socks5 202.113.65.229 : 443 http : //iframe.ip138.com/ic.asp|iconv -fgb2312

代理服务器地址可以从 爬虫代理 上获取。

3. linux curl处理 cookies

接收cookies:

1

curl - c / tmp / cookies http : //www.baidu.com #cookies保存到/tmp/cookies文件

发送cookies:

1

2

curl - b "key1=val1;key2=val2;" http : //www.baidu.com #发送cookies文本

curl - b / tmp / cookies http : //www.baidu.com #从文件中读取cookies

4. linux curl发送数据:

linux curl get 方式提交数据:

1

curl - G - d "name=value&name2=value2" http : //www.baidu.com

linux curl post 方式提交数据:

1

2

curl - d "name=value&name2=value2" http : //www.baidu.com #post数据

curl - d a = b & c = d & txt @ / tmp / txt http : //www.baidu.com  #post文件

以表单的方式上传文件:

1

curl - F file = @ / tmp / me . txt http : //www.aiezu.com

相当于设置form表单的method="POST"和enctype='multipart/form-data'两个属性。

5. linux curl http header处理:

设置http请求头信息:

1

2

3

curl - A "Mozilla/5.0 Firefox/21.0" http : //www.baidu.com #设置http请求头User-Agent

curl - e "http://pachong.org/" http : //www.baidu.com #设置http请求头Referer

curl - H "Connection:keep-alive \n User-Agent: Mozilla/5.0" http : //www.aiezu.com

设置http响应头处理:

1

2

curl - I http : //www.aiezu.com #仅仅返回header

curl - D / tmp / header http : //www.aiezu.com #将http header保存到/tmp/header文件

6. linux curl认证:

1

2

curl - u aiezu : password http : //www.aiezu.com #用户名密码认证

curl - E mycert . pem https : //www.baidu.com #采用证书认证

6. 其他:

1

2

curl - # http://www.baidu.com #以“#”号输出进度条

curl - o / tmp / aiezu http : //www.baidu.com #保存http响应到/tmp/aiezu

一、查看网页源码

直接在curl命令后加上网址,就可以看到网页源码 。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短)

curl www.baidu.com

    如果要把这个网页保存下来,可以使用-o参数,这就相当于使用wget命令了。

curl -o [文件名] www.baidu.com

    二、自动跳转 有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址

curl -L http://item.taobao.com/item.htm?id=25823396605 键入上面的命令,结果就自动跳转为http://detail.tmall.com/item.htm?id=25823396605

    三、显示头信息 -i 参数可以显示http response的头信息,连同网页代码一起

(-I 参数则是只显示http response的头信息。)

curl -i www.baidu.com
 HTTP/1.1 200 OK
Date: Fri, 28 Feb 2014 05:39:57 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: Keep-Alive
Vary: Accept-Encoding
Set-Cookie: BAIDUID=0F251A658E427EBB7CBEB0C3F4A70FAE:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; d
omain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/Set-Cookie: H_PS_PSSID=4104_5231_1445_5139_5225_5378_5368_4261_4760_5400; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "Expires: Fri, 28 Feb 2014 05:39:45 GMT
Cache-Control: privateServer: BWS/1.1BDPAGETYPE: 1BDQID: 0xc3b306dca955703dBDUSERID: 0<!DOCTYPE html>.....

    四、显示通信过程 -v 参数可以显示一次http通信的整个过程,包括端口连接和http request头信息

命令:curl -v www.baidu.com

* About to connect() to www.baidu.com port 80

*   Trying 115.239.210.26... connected

* Connected to www.baidu.com (115.239.210.26) port 80

> GET / HTTP/1.1

> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

> Host: www.baidu.com

> Accept: */*

< HTTP/1.1 200 OK

< Date: Fri, 28 Feb 2014 05:42:37 GMT

< Content-Type: text/html

< Transfer-Encoding: chunked

< Connection: Keep-Alive

< Vary: Accept-Encoding

< Set-Cookie: BAIDUID=442AD49501EF253AE71F2BAF3E0181FB:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

< Set-Cookie: BDSVRTM=0; path=/

< Set-Cookie: H_PS_PSSID=5228_1461_5187_5138_5225_5379_5368_4261_4760_5401_5286; path=/; domain=.baidu.com

< P3P: CP=" OTI DSP COR IVA OUR IND COM "

< Expires: Fri, 28 Feb 2014 05:41:43 GMT

< Cache-Control: private

< Server: BWS/1.1

< BDPAGETYPE: 1

< BDQID: 0x906950d16fb1e95d

< BDUSERID: 0

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Spee<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><meta http-equiv

="X-UA-Compatible" content="IE=Edge"><link rel="dns-

  如果你觉得上面的信息还不够,那么下面的命令可以查看更详细的通信过程: 

curl --trace output.txt www.baidu.com 或者 

curl --trace-ascii output.txt www.baidu.com 运行后,请打开output.txt文件查看。

    当然也有更狠的,查看页面跳转过程:

curl -L -I --trace log http://item.taobao.com/item.htm?id=25823396605

HTTP/1.1 301 Moved Permanently

Server: Tengine

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html;charset=GBK

Content-Length: 0

Connection: close

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Content-Language: zh-CN

Accept-Ranges: bytes

X-Varnish: 1206961665

Via: 1.1 varnish

location: http://detail.tmall.com/item.htm?id=25823396605&

X-Cache: MISS

Cache-Control: max-age=3

HTTP/1.1 302 Found

Server: Tengine

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: keep-alive

at_bucketid: sbucket_-1

X-Bucket-Id: -1

Location: http://jump.taobao.com/jump?target=http%3a%2f%2fdetail.tmall.com%2fitem.htm%3fid%3d25823396605%26%26tbpm%3d1

Cache-Control: 

HTTP/1.1 302 Found

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: close

Set-Cookie: _tb_token_=ktbzEwzFR6qy;domain=.taobao.com;Path=/;HttpOnly

Set-Cookie: cookie2=6c6bc65b9e9a5159cff5b3d0cae4dfd9;domain=.taobao.com;Path=/;HttpOnly

Set-Cookie: t=d768c73859b40e10ef81f7abd0824704;domain=.taobao.com;Expires=Thu, 29-May-2014 06:16:01 GMT;Path=/

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Location: http://pass.tmall.com/add?_tb_token_=ktbzEwzFR6qy&cookie2=6c6bc65b9e9a5159cff5b3d0cae4dfd9&t=d768c73859b40e10ef81f7abd0824704&target=http%3a%2f%2fdetail.tmall.com%2fitem.htm%3fid%3d25823396605%26%26tbpm%3d1&pacc=A_12nKe89qHIcAyauBtovg==&opi=110.75.118.230&tmsc=1393568161483632

HTTP/1.1 302 Found

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: close

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Set-Cookie: _tb_token_=ktbzEwzFR6qy;domain=.tmall.com;Path=/

Set-Cookie: cookie2=6c6bc65b9e9a5159cff5b3d0cae4dfd9;domain=.tmall.com;Path=/

Set-Cookie: t=d768c73859b40e10ef81f7abd0824704;domain=.tmall.com;Path=/

Location: http://detail.tmall.com/item.htm?id=25823396605&&tbpm=1

HTTP/1.1 302 Found

Server: Tengine

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: keep-alive

at_bucketid: sbucket_-1

X-Bucket-Id: -1

Location: http://jump.taobao.com/jump?target=http%3a%2f%2fdetail.tmall.com%2fitem.htm%3fid%3d25823396605%26%26tbpm%3d2

Cache-Control: 

HTTP/1.1 302 Found

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: close

Set-Cookie: _tb_token_=GgU93fEjKGT4;domain=.taobao.com;Path=/;HttpOnly

Set-Cookie: cookie2=ef3c440d74ff391de6b560da4ef8a5c9;domain=.taobao.com;Path=/;HttpOnly

Set-Cookie: t=187a71d8df58caac2c4e08d40245c31f;domain=.taobao.com;Expires=Thu, 29-May-2014 06:16:01 GMT;Path=/

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Location: http://pass.tmall.com/add?_tb_token_=GgU93fEjKGT4&cookie2=ef3c440d74ff391de6b560da4ef8a5c9&t=187a71d8df58caac2c4e08d40245c31f&target=http%3a%2f%2fdetail.tmall.com%2fitem.htm%3fid%3d25823396605%26%26tbpm%3d2&pacc=Vo8f-VlYEYPJ6WE3iTX96Q==&opi=110.75.118.230&tmsc=1393568161501736

HTTP/1.1 302 Found

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: close

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Set-Cookie: _tb_token_=GgU93fEjKGT4;domain=.tmall.com;Path=/

Set-Cookie: cookie2=ef3c440d74ff391de6b560da4ef8a5c9;domain=.tmall.com;Path=/

Set-Cookie: t=187a71d8df58caac2c4e08d40245c31f;domain=.tmall.com;Path=/

Location: http://detail.tmall.com/item.htm?id=25823396605&&tbpm=2

HTTP/1.1 302 Found

Server: Tengine

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: keep-alive

at_bucketid: sbucket_-1

X-Bucket-Id: -1

Location: http://jump.taobao.com/jump?target=http%3a%2f%2fdetail.tmall.com%2fitem.htm%3fid%3d25823396605%26%26tbpm%3d3

Cache-Control: 

HTTP/1.1 302 Found

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: close

Set-Cookie: _tb_token_=Uta86PoG6cWC;domain=.taobao.com;Path=/;HttpOnly

Set-Cookie: cookie2=cd06dba05f2bf1124200861d0b8a151b;domain=.taobao.com;Path=/;HttpOnly

Set-Cookie: t=618388c77aff03aec08309747a82f440;domain=.taobao.com;Expires=Thu, 29-May-2014 06:16:01 GMT;Path=/

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Location: http://pass.tmall.com/add?_tb_token_=Uta86PoG6cWC&cookie2=cd06dba05f2bf1124200861d0b8a151b&t=618388c77aff03aec08309747a82f440&target=http%3a%2f%2fdetail.tmall.com%2fitem.htm%3fid%3d25823396605%26%26tbpm%3d3&pacc=RptvnJCXDG4WtvFa0JIqoQ==&opi=110.75.118.230&tmsc=1393568161510003

HTTP/1.1 302 Found

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html

Content-Length: 260

Connection: close

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

Set-Cookie: _tb_token_=Uta86PoG6cWC;domain=.tmall.com;Path=/

Set-Cookie: cookie2=cd06dba05f2bf1124200861d0b8a151b;domain=.tmall.com;Path=/

Set-Cookie: t=618388c77aff03aec08309747a82f440;domain=.tmall.com;Path=/

Location: http://detail.tmall.com/item.htm?id=25823396605&&tbpm=3

HTTP/1.1 200 OK

Server: Tengine

Date: Fri, 28 Feb 2014 06:16:01 GMT

Content-Type: text/html;charset=GBK

Connection: keep-alive

Vary: Accept-Encoding

at_bucketid: sbucket_-1

X-Bucket-Id: -1

Cache-Control: max-age=1

At_Autype: 4_103979994

At_Cat: item_50018599

X-Category: /cat/50008090

At_Nick: %E8%B6%8A%E5%BA%A6%E6%95%B0%E7%A0%81%E4%B8%93%E8%90%A5%E5%BA%97

At_Itemid: 25823396605

At_Isb: 1

At_Pgty: 2

At_Cat: 50018599

At_Brid: 272676782

At_Prid: 221236332

At_Autype: 0_103979994

At_Auid: 25823396605

Content-Language: zh-CN

X-Cache: MISS TCP_MISS dirn:-2:-2

Via: wagbridge010207087016.cm3:8888

五、发送表单信息 发送表单信息有GET和POST两种方法。

GET方法相对简单,只要把数据附在网址后面就行: 

curl baidu.com/form.cgi?data=xxx

    POST方法必须把数据和网址分开,例如:

curl -d "method=searchone&module=seller&user_name=wb-liqiu&nickname=dd" -H"Host:fmp.view.lz.taobao.com" "10.235.160.141:8082/api.php"

    六、文件上传 假定文件上传的表单你可以用curl这样上传文件,命令:

curl --form upload=@localfilename --form press=OK http://www.baidu.com

    七、Referer字段 有时你需要在http request头信息中,提供一个referer字段,表示你是从哪里跳转过来的: 

curl --referer http://www.baidu.com http://www.baidu.com

    八、User Agent字段 这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。 iPhone4的User Agent是: “Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7”。curl可以这样模拟: curl --user-agent "[User Agent]" [URL]

    九、cookie 使用--cookie参数,可以让curl发送cookie

curl --cookie "name=xxx" www.baidu.com 至于具体的cookie的值,可以从http response头信息的Set-Cookie字段中得到。也可以例如:

curl -c ./cookie.txt http://www.baidu.com

    十、增加头信息 有时需要在http request之中,自行增加一个头信息。--header参数就可以起到这个作用。

curl --header "xxx: xxxxxx" http://baidu.com

    十一、HTTP认证 有些网域需要HTTP认证,这时curl需要用到--user参数:

curl --user name:password baidu.com

<meta http-equiv="refresh" content="0;url=http://www.baidu.com/"> </html>

    十二、设置代理缓存 -x<ip:port>

curl -L -x127.0.0.1:13128 http://detail.tmall.com/item.htm?id=25823396605

下载单个文件,默认将输出打印到标准输出中(STDOUT)中

curl http://www.centos.org

通过-o/-O选项保存下载的文件到指定的文件中:

-o:将文件保存为命令行中指定的文件名的文件中

-O:使用URL中默认的文件名保存文件到本地

# 将文件下载到本地并命名为mygettext.html

curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html 

# 将文件保存到本地并命名为gettext.html

 curl -O http://www.gnu.org/software/gettext/manual/gettext.html

同样可以使用转向字符">"对输出进行转向输出

同时获取多个文件

curl -O URL1 -O URL2

若同时从同一站点下载多个文件时,curl会尝试重用链接(connection)。

通过-L选项进行重定向

默认情况下CURL不会发送HTTP Location headers(重定向).

当一个被请求页面移动到另一个站点时,会发送一个HTTP Loaction

header作为请求,然后将请求重定向到新的地址上。

例如:访问google.com时,会自动将地址重定向到google.com.hk上。

curl http://www.google.com

  <meta http-equiv="content-type" content="text/html;charset=utf-">

  <TITLE> Moved</TITLE>

 </HEAD>

  <H> Moved</H>

  The document has moved

  <A HREF="http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=amp;usg=AFQjCNFoumfjyJpNDPuFKTibavEaA">here</A>.

 </BODY>

 </HTML>

这是可以通过使用-L选项进行强制重定向

1 # 让curl使用地址重定向,此时会查询google.com.hk站点

curl -L http://www.google.com

通过使用-C选项可对大文件使用断点续传功能,如:

# 当文件在下载完成之前结束该进程

 $ curl -O http://www.gnu.org/software/gettext/manual/gettext.html

 ##############       .%

 # 通过添加-C选项继续对该文件进行下载,已经下载过的文件不会被重新下载

 curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html

 ###############      .

对CURL使用网络限速

通过--limit-rate选项对CURL的最大网络使用进行限制

# 下载速度最大不会超过1000B/second 
curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html
下载指定时间内修改过的文件

当下载一个文件时,可对该文件的最后修改日期进行判断,如果该文件在指定日期内修改过,就进行下载,否则不下载。
该功能可通过使用-z选项来实现:

# 若yy.html文件在2011/12/21之后有过更新才会进行下载
 curl -z 21-Dec-11 http://www.example.com/yy.html

CURL授权

在访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权

curl -u username:password URL
 # 通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
4 curl -u username URL

从FTP服务器下载文件

CURL同样支持FTP下载,若在url中指定的是某个文件路径而非具体的某个要下载的文件名,CURL则会列出该目录下的所有文件名而并非下载该目录下的所有文件

# 列出public_html下的所有文件夹和文件
 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
 # 下载xss.php文件
 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
上传文件到FTP服务器

通过 -T 选项可将指定的本地文件上传到FTP服务器上

# 将myfile.txt文件上传到服务器

curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

# 同时上传多个文件

curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

# 从标准输入获取内容保存到服务器指定的文件中

curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

获取更多信息

通过使用 -v 和 -trace获取更多的链接信息

保存与使用网站cookie信息

# 将网站的cookies信息保存到sugarcookies文件中
curl -D sugarcookies http://localhost/sugarcrm/index.php 
# 使用上次保存的cookie信息
 curl -b sugarcookies http://localhost/sugarcrm/index.php
传递请求数据

默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据


可以通过 --data/-d 方式指定使用POST方式传递数据

 # GET
 curl -u username https://api.github.com/user?access_token=XXXXXXXXXX


 # POST
 curl -u username --data "param=value¶m=value" https://api.github.com


 # 也可以指定一个文件,将该文件中的内容当作数据传递给服务器端


 curl --data @filename https://github.api.com/authorizations

注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义再传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如:

curl -d "value%201" http://hostname.com

在新版本的CURL中,提供了新的选项 --data-urlencode,通过该选项提供的参数会自动转义特殊字符

curl --data-urlencode "value 1" http://hostname.com

除了使用GET和POST协议外,还可以通过 -X 选项指定其它协议,如:

curl -I -X DELETE https://api.github.cim

 curl --form "fileupload=@filename.txthttp://hostname/resource

1、抓取cokkie信息到一个文件中

curl -c cookie0.txt -d "username=****&password=***" http://www.kuaipan.cn/accounts/login/

2、get方法获取信息

curl -G -I -o xsrf.txt -b cookie1.txt -c cookie2.txt

显示下载进度条
# curl -# -O http://www.linux.com/dodo1.JPG

7:不会显示下载进度信息

# curl -s -O http://www.linux.com/dodo1.JPG

一、Linux curl用法举例:1. linux curl抓取网页:抓取百度:1curl http://www.baidu.com如发现乱码,可以使用iconv转码:1curl http://iframe.ip138.com/ic.asp|iconv -fgb2312iconv的用法请参阅:在Li
使用curl可以下载网络内容,那如何获取curl下载时的下载速度呢,使用下面的命令即可: # curl -Lo /dev/null -skw "%{speed_download}\n" http://mirrors.163.com/ubuntu/ls-lR.gz 226493.000 当然,还可以获取连接时间、重定向时间等更多的数据: # curl ...
linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。   一,curl命令参数,有好多我没有用过,如果有误的地方,还请指正。   -a/--append 上传文件时,附加到目标文件   -A/--user-agent <string> 设置用户代理发送给服务器   - anyauth 可以使用“任何”身份验证方法   -b/--cookie <name=string/file> cookie字符串或文件读取位置   - basic 使用HTTP基本验证   -B/--use-ascii 使用ASCII /文本传输   -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中   -C/--continue-at <offset> 断点续转   -d/--data <data> HTTP POST方式传送数据   --data-ascii <data> 以ascii的方式post数据   --data-b
2.4 安装OWASP的WebScarab 32 2.5 在Windows上安装Perl及其软件包 33 2.6 在Linux, Unix或OS X上安装Perl和使用CPAN 34 2.7 安装CAL9000 35 2.8 安装ViewState Decoder 36 2.9 安装cURL 36 2.10 安装Pornzilla 37 2.11 安装Cygwin 38 2.12 安装Nikto 2 39 2.13 安装Burp Suite 40 2.14 安装Apache HTTP Server 41 第3章 基本观察 43 3.1 查看网页的HTML源代码 44 3.2 查看源代码,高级功能 45 3.3 使用Firebug观察实时的请求头 48 3.4 使用WebScarab观察实时的POST数据 52 3.5 查看隐藏表单域 55 3.6 使用TamperData观察实时的响应头 56 3.7 高亮显示JavaScript和注释 59 3.8 检测JavaScript事件 60 3.9 修改特定的元素属性 61 3.10 动态跟踪元素属性 63 3.11 结论 65 第4章 面向Web的数据编码 66 4.1 辨别二进制数据表示 67 4.2 使用Base-64 69 4.3 在网页中转换Base-36数字 71 4.4 在Perl中使用Base-36 71 4.5 使用以URL方式编码的数据 72 4.6 使用HTML实体数据 74 4.7 计算散列值 76 4.8 辨别时间格式 78 4.9 以编程方式对时间值进行编码 80 4.10 解码ASP.NET的视图状态 81 4.11 解码多重编码 83 第5章 篡改输入 85 5.1 截获和修改POST请求 86 5.2 绕过输入限制 89 5.3 篡改URL 90 5.4 自动篡改URL 93 5.5 测试对URL长度的处理 94 5.6 编辑Cookie 96 5.7 伪造浏览器头信息 99 5.8 上传带有恶意文件名的文件 101 5.9 上传大文件 104 5.10 上传恶意XML实体文件 105 5.11 上传恶意XML结构 107 5.12 上传恶意ZIP文件 109 5.13 上传样例病毒文件 110 5.14 绕过用户界面的限制 111 第6章 自动化批量扫描 114 6.1 使用WebScarab爬行网站 115 6.2 将爬行结果转换为清单 117 6.3 减少要测试的URL 120 6.4 使用电子表格程序来精简列表 120 6.5 使用LWP对网站做镜像 121 6.6 使用wget对网站做镜像 123 6.7 使用wget对特定的清单做镜像 124 6.8 使用Nikto扫描网站 125 6.9 理解Nikto的输出结果 127 6.10 使用Nikto扫描HTTPS站点 128 6.11 使用带身份验证的Nikto 129 6.12 在特定起始点启动Nikto 130 6.13 在Nikto中使用特定的会话Cookie 131 6.14 使用WSFuzzer测试Web服务 132 6.15 理解WSFuzzer的输出结果 134 第7章 使用cURL实现特定任务的自动化 137 7.1 使用cURL获取页面 138 7.2 获取URL的许多变体 139 7.3 自动跟踪重定向 140 7.4 使用cURL检查跨站式脚本 141 7.5 使用cURL检查目录遍历 144 7.6 冒充特定类型的网页浏览器或设备 147 7.7 以交互方式冒充另一种设备 149 7.8 使用cURL模仿搜索引擎 151 7.9 通过假造Referer头信息来伪造工作流程 152 7.10 仅获取HTTP头 153 7.11 使用cURL发送POST请求 154 7.12 保持会话状态 156 7.13 操纵Cookie 157 7.14 使用cURL上传文件 158 7.15 建立多级测试用例 159 7.16 结论 164 第8章 使用LibWWWPerl实现自动化 166 8.1 编写简单的Perl脚本来获取页面 167 8.2 以编程方式更改参数 169 8.3 使用POST模仿表单输入 170 8.4 捕获和保存Cookie 172 8.5 检查会话过期 173 8.6 测试会话固定 175 8.7 发送恶意Cookie值 177 8.8 上传恶意文件内容 179 8.9 上传带有恶意名称的文件 181 8.10 上传病毒到应用 182 8.11 使用Perl解析接收到的值 184 8.12 以编程方式来编辑页面 186 8.13 使用线程化提高性能 189 第9章 查找设计缺陷 191 9.1 绕过必需的导航 192 9.2 尝试特权操作 194 9.3 滥用密码恢复 195 9.4 滥用可预测的标识符 197 9.5 预测凭证 199 9.6 找出应用中的随机数 200 9.7 测试随机数 202 9.8 滥用可重复性 204 9.9 滥用高负载操作 206 9.10 滥用限制性的功能 208 9.11 滥用竞争条件 209 第10章 攻击AJAX 211 10.1 观察实时的AJAX请求 213 10.2 识别应用中的JavaScript 214 10.3 从AJAX活动回溯到源代码 215 10.4 截获和修改AJAX请求 216 10.5 截获和修改服务器响应 218 10.6 使用注入数据破坏AJAX 220 10.7 使用注入XML破坏AJAX 222 10.8 使用注入JSON破坏AJAX 223 10.9 破坏客户端状态 224 10.10 检查跨域访问 226 10.11 通过JSON劫持来读取私有数据 227 第11章 操纵会话 229 11.1 在Cookie中查找会话标识符 230 11.2 在请求中查找会话标识符 232 11.3 查找Authentication头 233 11.4 分析会话ID过期 235 11.5 使用Burp分析会话标识符 239 11.6 使用WebScarab分析会话随机性 240 11.7 更改会话以逃避限制 245 11.8 假扮其他用户 247 11.9 固定会话 248 11.10 测试跨站请求伪造 249 第12章 多层面的测试 251 12.1 使用XSS窃取Cookie 251 12.2 使用XSS创建覆盖 253 12.3 使用XSS产生HTTP请求 255 12.4 以交互方式尝试基于DOM的XSS 256 12.5 绕过字段长度限制(XSS) 258 12.6 以交互方式尝试跨站式跟踪 259 12.7 修改Host头 261 12.8 暴力猜测用户名和密码 263 12.9 以交互方式尝试PHP包含文件注入 265 12.10 制作解压缩炸弹 266 12.11 以交互方式尝试命令注入 268 12.12 系统地尝试命令注入 270 12.13 以交互方式尝试XPath注入 273 12.14 以交互方式尝试服务器端包含(SSI)注入 275 12.15 系统地尝试服务器端包含(SSI)注入 276 12.16 以交互方式尝试LDAP注入 278 12.17 以交互方式尝试日志注入 280
  工作已经一年三个月,最近常常用到curl命令。但是一直对他不解。始终不能明白这命令到底是干什么的。今天因为测试一个东西,总是用到,就先把他记下来几个简单的。以后再补充更多。从我自己理解的角度解释一下,curl是一个利用url规则,通过输入一些参数设置,来达到模仿浏览器去访问网页请求的效果。下面来介绍几个用法。 1.curl http://127.0.0.1:7780 ,这里解释下 127.0...
linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。   一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正。   -a/–append 上传文件时,附加到目标文件   -A/–user-agent   设置用户代理发送给服务器   - anyauth   可以使用“任何”身份验证方法   -b/–cookie cookie字符串或文件读取位置   - basic 使用HTTP基本验证   -B/–use-as
这是对Jippi生成过程的非常简短的描述 所有版本的Jippi都配置为在Linux台式计算机上构建。 您需要使用gcc编译器来构建桌面版本,或者需要交叉gcc编译器来构建用于另一个平台的软件包。 CMake-构建过程自动化的有用工具 Jippi要求: LibConfig ++> = 1.4.9-用于配置文件解析的库 CURL,版本> = 7.27.0-用于网络库集成。 JsonCpp,版本> = 0.5.0-用于JSON解析的库。 GTest,版本> = 1.7.0-单元测试 如何建造: 正常Linux编译分两个步骤: cmake . 如果需要在构建过程中运行单元测试,请对cmake命令使用-Dbuild_tests = BOOL:ON参数: cmake . -Dbuild_t 或从发布页面。 # Linux curl -L https://github.com/sgreben/url/releases/download/1.1.3/url_1.1.3_linux_x86_64.tar.gz | tar xz # OS X curl -L https://github.com/sgreben/url/releases/download/1.1.3/url_1.1.3_osx_x86_64.tar.gz | tar xz # Windows curl -LO https://github.com/sgreben/url/releases/dow QCD是一个bash实用程序,它扩展了内置命令cd的现有功能。 通过将程序的有效路径,目录关键字,目录前缀或字符子序列指定为命令参数,它允许用户快速从一个目录切换到另一个目录。 QCD完全在本地工作,并利用常见的内置命令来实现此功能,从而使其在支持bash的系统中具有极高的可移植性。 QCD在~/.qcd目录之外运行,并通过将符号链接及其相应的绝对路径store在名为store的文件中来了解您访问的目录。 在给定可识别的输入的情况下,这允许QCD快速解析符号链接的绝对路径,然后切换到该目录。 QCD在v3.2和v5.1之间的bash环境中与macOS和流行Linux发行版兼容。 QCD不需要任何依赖关系即可用作命令行实用程序,并且在执行过程中使用通用的内置函数。 它唯一需要的依赖项是curl命令,QCD在内部使用该命令来下载更新。 如果要使用QCD的自我更新 命令curlLinuxcurl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 语法:# curl [option] [url] 常见参数:-A/--user-agent <string>...
### 回答1: curl是什么? curl是一个命令行工具,用于从URL地址获取数据。它可以用来发送HTTP、HTTPS、FTP等请求,并且可以获取返回的数据。curl是一个非常强大的工具,可以用来测试Web服务器的响应,模拟HTTP请求等。 curl命令的语法 curl命令的语法如下: curl [options] [URL] 其中,options是可选的参数,URL是要请求的地址。 curl常用选项 curl有很多可选参数,下面是一些常用的选项: -d:提交数据,例如:curl -d "name=value" URL。 -G:以GET方式提交数据,例如:curl -G URL。 -H:添加请求头,例如:curl -H "Content-Type: application/json" URL。 -i:显示响应头信息,例如:curl -i URL。 -L:跟随重定向,例如:curl -L URL。 -o:将响应数据写入文件,例如:curl -o file.txt URL。 -X:指定请求方法,例如:curl -X POST URL。 curl命令示例 下面是一些常见的curl命令示例: 获取网页内容:curl URL。 发送GET请求:curl -G URL。 发送POST请求:curl -X POST -d "name=value" URL。 获取响应头信息:curl -i URL。 跟随重定向:curl -L URL。 将响应数据写入文件:curl -o file.txt URL。 总的来说,curl是一个非常强大的命令行工具,可以用来发送各种请求,并且可以获取返回的数据。如果你需要测试Web服务器的响应,或者模拟HTTP请求,那么curl命令是一个非常好的选择。 ### 回答2: Linux curl命令是一个非常强大的命令行工具,用于向服务器发送网络请求,支持多种协议,如HTTP、HTTPS、FTP、SMTP等。它可以下载文件、上传数据、获取服务器响应、处理Cookie等,同时支持各种不同的参数和选项,具有丰富的功能。 curl的基本用法为: ```curl [选项] [URL]``` 其中,选项用于控制curl请求的方式和行为。常用的选项包括: - `-X/--request [请求方法]`:设置请求的方法,如GET、POST、PUT、DELETE等; - `-H/--header [头信息]`:设置请求头信息; - `-d/--data [请求体数据]`:设置请求体数据,常用于POST请求; - `-o/--output [输出文件名]`:将请求结果输出到指定文件; - `-v/--verbose`:显示更详细的调试信息; - `-c/--cookie [cookie文件名]`:设置cookie文件名,用于保持会话状态; - `-b/--cookie-jar [cookie文件名]`:将服务器返回的cookie信息保存到指定文件中。 除了这些常用选项,curl还支持很多其他的选项,可以根据具体需求进行设置。 curl除了基本使用方式外,还有其他常用功能,包括: - 文件下载:使用`-o`选项配合`-O`选项,可以将服务器文件下载到本地,例如`curl -O http://example.com/file.txt`; - 多文件下载:使用`-O`选项加上多个URL,可以同时下载多个文件,例如`curl -O http://example.com/file1.txt -O http://example.com/file2.txt`; - 文件上传:使用`-F`选项加上文件路径,可以将指定文件上传到服务器,例如`curl -F "file=@/path/to/file" http://example.com/upload`; - 认证操作:使用`-u`选项可以设置用户名和密码,实现HTTP基本认证,例如`curl -u username:password http://example.com`; - 代理设置:使用`-x`选项可以设置代理服务器,例如`curl -x http://proxy.example.com http://example.com`; 总之,curl是一款非常强大的命令行工具,在使用时需要熟练掌握各种选项的用法,才能发挥出它的效果。同时,对于curl用法不熟悉的用户,可以通过查看官方文档或其他优秀教程来加深理解,从而更好地使用这个工具。 ### 回答3: curl命令是一个十分有用的Linux命令,它可以通过命令行方式发送HTTP请求,包括GET,POST等请求方法,也支持cookie,用户名密码认证,HTTPS等一系列功能,非常适合对Web服务进行测试和调试。 使用curl发送请求的基本格式为:curl [options] [URL],其中URL为请求的目标资源的URL地址,而options则表示请求时需要设置的配置信息。 以下是常用的curl配置选项: 1. -X (--request): 指示请求方法,常用的方法包括 GET、POST 等。 2. -H (--header): 设置请求头,常见的请求头包括 User-Agent、Content-Type等。 3. -d (--data): 表示要发送的数据,如表单数据、JSON 数据等。 4. -F (--form): 表示要上传的文件,可以上传多个文件。 5. -u (--user): 指定用户名和密码,用于 HTTP 基本认证。 6. -c (--cookie): 表示请求中携带的 Cookie 值。 7. -o (--output): 将响应输出到指定文件中。 8. -L (--location): 当服务端返回重定向响应时,跟随重定向。 9. -k (--insecure): 允许不受信任的 HTTPS 证书。 10. -i (--include): 输出响应头信息。 11. --limit-rate: 限制请求速率,如1K表示每秒发送1KB数据。 12. --compressed: 表示启用压缩,加快数据传输速度。 除了这些常用选项,curl还提供了很多高级用法,例如:支持数据流的管道传输、对FTP服务的支持、HTTP2协议的支持等等。总之,curl命令是一个功能强大的命令行工具,可以给开发者带来很多便利,但同时也需要一定的技术储备和实践经验。