渗透最基础的开始就是信息收集,俗话说得好:“知己知彼,百战不殆”
但是光有了工具还仅仅是不够的,正所谓:工欲善其事,必先利其器”熟练掌握工具,还要看懂里面传达的信息,那么下面就为带大家讲解一些相关知识:
1、首先我们应该明白这个网站的运行流程
网站运行的流程:客户端(请求)——服务端处理请求数据———客户端(接受返回信息)
灵魂画手画的流程图
2、状态码
状态码:客户端发送请求到服务端返回的状态码,HTTP协议中状态码以三位数字组成,以第一位数字定义响应类别
常见的状态码如下(重点)
200 | 客户端请求成功,是最常见的状态 |
---|---|
302 | 重定向。用于告诉客户端所访问的资源已被转移 |
404 | 请求资源不存在 |
400 | 客户端请求有语法错误,不能被服务器所理解 |
401 | 请求未授权 |
403 | 服务器收到请求,但是拒绝服务 |
---|---|
500 | 服务器内部错误 |
503 | 服务器当前不能处理请求,过一段时间请求可能会恢复 |
在这里列举我理解的HTTP请求
'''如何发起一个请求,在普通用户的角度看来很简单。打开游览器输入www.badu.com就可以了 但在渗透的角度来讲凡事都要学个细致,流程如下: 打开浏览器-->输入网址-->网站返回封装的数据-->到本地又解析成HTML呈现在用户们面前 当然这个是小白文,按照理解的来 '''
如下是大佬们理解的HTTP请求的过程
域名解析 ---> 与服务器建立连接 ---> 发起HTTP请求 ---> 服务器响应HTTP请求,浏览器得到html代码 ---> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片) ---> 浏览器对页面进行渲染呈现给用户
百度HTTP请求
复现流程
打开burp,工具我有在工具库[CTF武器库]里分享,打开之后是这样的,避免英语不好的小白看不到,这里配合汉化后的一张帮助理解
配置BURP SUITE
点击第3步,可以设置监听端口,注意IP地址前面的小勾了吗划重点了
前面那个小勾是判断你电脑的端口是否被占用,如果你的没有这个的话点击第3步设置其他可用端口如下
因为这里咱没有任何问题就不需要设置了
打开游览器我用的Opera,打开设置
设置完成
输入www.baidu.com,burp返回拦截的数据包
例1
GET /his?wd=&from=pc_web&rf=3&hisdata=&json=1&p=3&sid=&req=2&csor=0&cb=jQuery110208513608111662925_1557032998388&_=1557032998389 HTTP/1.1//GET请求
Host: www.baidu.com
Connection: close
Accept: text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.70
Referer: https://www.baidu.com/index.php?tn=54002054_1_dg
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: BAIDUID=D3DD32767A8D69DB338CF09F080AAB70:FG=1; BIDUPSID=D3DD32767A8D79DB338CF09F080AAB70; PSTM=1557032992; BDRCVFR[GDKhK5Jne_n]=aeXf-1x8UdYcs; delPer=0; BD_HOME=0; H_PS_PSSID=; BD_UPN=15324753
状态码为200,访问成功
例2
HTTP/1.1 200 OK 状态行
Date: Sun, 17 Mar 2013 08:12:54 GMT 响应头部
Server: Apache/2.2.8 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
常见的HTTP请求方法
GET | POST | HEAD |
---|---|---|
PUT | DELETE | TRACE |
CONNECT | OPTIONS |
拿例1为例子请求为GET请求,所提交的以明文显示
GET | 向资源发送请求,明文提交,服务器只接受程序员设计好的格式,否则就会报错 |
---|---|
HEAD | 与GET一致,只返回响应头信息 |
POST | 向资源提交数据并请求处理(如文件上传/表单提交) |
PUT | 向资源上传新内容 |
DELETE | 删除URL指定资源(危险) |
请求方法:
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。
学习笔记如下:
3服务器以及操作系统
服务器:操作系统 win2003(IIS6.0)、2008(IIS7.0、IIS7.5)、win2012(IIS8.0)、win2016(IIS8.5)可视化操作系统,win10(IIS10.0)
Linux系统—centos、ubuntu命令行操作系统
集成环境:phpstudy,upyun,appsever
容器/环境—动态脚本—数据库
容器:apache iis tomcat
动态脚本:asp asp.net(aspx) php java jsp
数据库:access (asp脚本) sql sever (mssql)( asp.net脚本) mysql (php脚本) Oracle(java脚本)
IIS容器支持的脚本:ASP,CER,CER,ASA,CDX,ASP.NET,ASHX
Apache支持脚本:PHP
Tomcat支持脚本:JAVA
环境标配:apache+php+mysql
asp+sql sever+iis
asp+access+iis
tomcat+Oracle+java