常用HTTP协议

HTTP(HyperText Transfer Protocol)超文本传输协议

1、URL格式:

协议://服务器IP[:端口号]/路径/[?查询参数]

例如:http://www.xxx.com/home/news/a.php?id=3&class=1

2、HTTP请求(Request)

请求方法:GET,POST,HEAD,PUT,DELETE,TRACE,CONNECT,OPTIONS等,基于PUT权限有IIS写漏洞可以直接上传webshell文件,相关工具有IIS PUT Scanner先扫描IIS是否存在IIS PUT权限,然后通过桂林老兵的IIS Writer进行写操作,可以上传webshell.

3、HTTP响应(Response)

响应状态码:

1XX:信息提示,表示请求已被成功接收,范围100-101

2XX:成功,服务器受理了请求,范围200-206

3XX:重定向,告知浏览器客户端,请求资源已被转移到其他地址,可以对新地址进行请求,范围300-305

4XX:客户端错误,客户端请求格式或资源存在错误,范围400-415

5XX:服务器错误,服务器宕机或运行出错,范围500-505

常见状态码(可以参看百度百科“HTTP状态码”):

200:OK 请求成功

302:Move Temporarily 重定向

404:Not Found,请求资源不存在,一般为路径错误

400:Bad Request,客户端请求有语法错误,服务器不理解

401:Unauthorized,未授权的访问

403:Forbidden,服务器接收到请求,但拒绝提供服务

500:Internal Server Error,服务端错误,可能为源代码运行错误

503:Service Unavailable,服务器过载或维护,过一段时间后可能恢复正常

4、抓包工具

Wireshark,Fiddle,burp suite,Live Httpheader,Winsock Expert

5、HTTP header

反应了请求和响应的属性,在抓取的数据包中通过查找头理解,查找相关文档。

6、GET VS. POST

(1)GET 从服务器获取数据,POST 向服务器提交数据

(2)GET 参数在URL中可以看到,可以人为修改;POST参数在HTTP Header中,提交时看不到,可以通过代理抓包看到,如Burp Suite,也可以修改

(3)GET 传输数据量较小,参数直接暴漏在URL中,安全性较低;POST传输数据量较大,参数是隐性的,用户看不到,安全性相对较高

(4)GET请求执行效率高,查询类操作可以使用GET请求;如果需要修改数据,如更新,删除等建议使用POST请求

(5)GET 服务器通过查询参数String来返回结果;POST通常是提交Form表单来与服务器交互

7、HTTP  VS.  HTTPS

HTTPS = HTTP + SSL

(1)HTTP 超文本传输协议,明文传输;HTTPS,SSL加密传输

(2)HTTP 端口号80;HTTPS 端口号443

(3)HTTPS需要到CA申请证书,通常是缴费的

(4)HTTP 无状态连接,安全性较低;HTTPS http+ssl加密传输、身份认证,安全性高

您可能还喜欢...