WEB渗透学习笔记1
OWASP
- 开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件
- OWASP TOP10:OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识
web的三个组成部分
- 浏览器
- web应用程序(中间件):apache、iis、tomcat、nginx、weblogic、jboss等
- 后端存储:mysql、sql server、oracle、access、PsotgreSQL、nosql等
访问网站时的过程
- 输入域名打开一个网站
- 查找DNS解析——解析到网站IP地址——返回给客户端
- 通过IP地址寻址网站
- TCP连接建立
- http请求
- 服务器端响应http请求
http数据包请求结构
- 一个http数据包请求由四个部分组成:请求行、请求头标、空行、请求数据
- 请求行:请求行由三个标记组成:请求方法、请求URL和HTTP版本,它们使用空格分隔。如:GET /www.xxxx.com/index.html HTTP/1.1
- 请求头行:由关键字/值对组成,每一行头、关键字和值用冒号(:)分隔
- 空行:最后一个请求头标之后是一个空行,发送回车符和退行,表示服务器一下不再有头标
- 请求数据:使用post传送数据,最常用的就是Content-Type和Content-Length头标
HTTP协议请求方法
HTTP规范定义了8种可能的请求方法:
- get:向特定资源发出请求(请求指定页面信息,并返回实体主体)
- post:向特定资源提交数据进行处理请求(提交表单、上传文件),有可能导致新的资源的建立或原有资源的修改
- head:与服务器索取与get请求一致的响应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容、用于获取报头)
- put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容),与post的区别是put为幂等,post为非幂等
- trace:回显服务器收到的请求,用于测试和诊断。trace是HTTP8种请求方式中最安全的
- delete:请求服务器删除request-URL所标示的资源(请求服务器删除页面)
- option:返回服务器针对特定资源所支持的HTML请求方法或web服务器发送测试服务器功能(允许客户端查看服务器性能)
- connect:HTTP/1.1协议中能够将连接改为管道方式的代理服务器
HTTP协议之URL
-
URL:统一资源定位符
-
是对可以从互联网上得到的资源位置和访问方法 的一中简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
-
完整的带有授权的URL语法
- 协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
-
常见的基本URL语法:
- 协议://服务器IP(:端口)/路径/文件(?查询)
- 例如:http://www.xxx.com/aa.php?id=bb
- 协议://服务器IP(:端口)/路径/文件(?查询)
GET和POST的区别
-
GTP提交的数据会放在URL之后,以?分割URL和传输数据、参数之间以&相连,如EditPosts.aspx?name=test&id=123456。POST方法是吧提交的数据放在HTTP包的Body中
-
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制
-
GET方式需要使用Request.QueryString来取得变量值,而POST方式通过Request.Form来获取变量值
-
GET方式提交数据会带来安全问题,日入一个登录页面通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码
HTTP请求头部解析
- Accept:用于指定客户端接受哪些类型的消息。如:Accept:image/gif
- Accept-Charset:用于指定客户端接受的字符集。如:Accept-Charset:iso-8859-1.gb2312
- Accept-Encoding:用于指定可接受的内容编码。如:Accept-Encoding:gzip.deflate
- Accept-Language:用于指定一种自然语言。如:Accept-Language:zh-cn
- Authorization:用于证明客户端有权查看某个资源。当浏览器访问一个页面时。如果收到服务器端响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证
- Host:用于指定被请求资源的Internet主机和端口号
- User-Agent:允许客户端将它的操作系统、浏览器和其他属性告诉服务器,会造成个人信息泄露
- Cookie:某些网站未来辨别用户身份、惊醒session跟踪而存储在用户本地终端上的数据(通常经过加密)
- Referer:告知下一次请求服务器的来源页面资源链接
HTTP状态码介绍
- 1xx:指示信息——表示请求已接收,继续处理
- 2xx:成功——表示请求已经被成功接收、理解、接受
- 3xx:重定向——要完成请求必须进行更进一步的操作
- 4xx:客户端错误——请求语法错误或请求无法实现
xx:成功——表示请求已经被成功接收、理解、接受 - 3xx:重定向——要完成请求必须进行更进一步的操作
- 4xx:客户端错误——请求语法错误或请求无法实现
- 5xx:服务器端错误——服务器未能实现合法的请求