快手 网络安工程师 一面总结(已过)

文章目录

  • 自我介绍:
  • 培训项目:
  • HTTP请求和响应,状态码
    • 常用请求头部:
    • host, origin和referer的区别
    • PUT上传和POST上传的区别
    • HTTP请求方法:ghppdcotp--cdghopppt
    • HTTP的响应码
    • cookie

一面:

自我介绍:

连接词,注意语速,用词准确

培训项目:

PHP基础知识,对象:公务人员

PHP特性:文件包含

HTTP请求和响应,状态码

HTTP的请求和响应头的具体字段

HTTP请求报文
快手 网络安工程师 一面总结(已过)_第1张图片
请求行:以什么方式(cdghopppt)请求哪个地址采用哪个协议版本
请求头部:键值对,说明传输内容的编码,内容格式,长度等内容
请求数据:请求的主体根据不同的请求方式请求主体不同

常用请求头部:

# Accept 设置接受的内容类型
Accept: text/plain
#Accept-Charset 设置接受的字符编码
#Content-Type 设置请求体的MIME类型(适用POST和PUT请求)
content-type: application/json; charset=UTF-8
#Accept-Encoding 设置接受的编码格式
content-encoding: gzip
#Content-Length 设置请求体的字节长度
content-length: 8573
keep-Alive: timeout=20
# Cookie 设置服务器使用Set-Cookie发送的http cookie
Cookie: $Version=1; Skin=new;
#User-Agent:产生请求的浏览器类型。

# Accept:客户端可识别的内容类型列表。
#Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。
Host: en.wikipedia.org:8080
#Date 设置消息发送的日期和时间
date: Fri, 24 Sep 2021 08:19:38 GMT
server: cafe
#Origin 标识跨域资源请求(请求服务端设置Access-Control-Allow-Origin响应字段)
Origin: http://www.example-social-network.com
#Referer 设置前一个页面的地址,并且前一个页面中的连接指向当前请求,意思就是如果当前请求是在A页面中发送的,那么referer就是A页面的url地址
Referer: http://en.wikipedia.org/wiki/Main_Page
#Connection 设置当前连接和hop-by-hop协议请求字段列表的控制选项
Connection: keep-alive
Connection: Upgrade

host, origin和referer的区别

host:域名和端口号,端口号可省略(默认),指定要访问的服务器主机名和端口号,使用场景:单台服务器设置多个虚拟主机。

origin:协议和域名,只存在于post请求(origin较referer更安全,多用于防范CSRF攻击),指示了请求来自于哪个站点。该字段仅指示服务器名称,并不包含任何路径信息。该首部用于 CORS 请求或者 POST 请求;

用途:用于 CORS: 当我们的浏览器发出跨站请求时,服务器会校验当前请求是不是来自被允许的站点。服务器就是通过 Origin 字段的值来进行判断。

referer:协议+域名+查询参数(不包含锚点信息),存在于所有请求,请求头包含了当前请求页面的来源页面的地址,查询参数可能包含ID或密码等敏感信息,导致信息泄露。

注意:只有跨域请求,或者同域时发送post请求,才会携带origin请求头。

在以下两种情况下,Referer 不会被发送:

  • 来源页面采用的协议为表示本地文件的 “file” 或者 “data” URI;
  • 当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(HTTPS)。

HTTP响应报文
快手 网络安工程师 一面总结(已过)_第2张图片

PUT上传和POST上传的区别

PUT上传中参数通过请求头域传递;POST上传则作为消息体中的表单域传递。

PUT上传需在URL中指定对象名;POST上传提交的URL为桶域名,无需指定对象名。两者的请求行分别为:

PUT /ObjectName HTTP/1.1

POST / HTTP/1.1

POST方法和PUT方法请求最根本的区别是发起请求的目的不同。post 请求的目的是根据资源自身的语义来处理这个资源

两种方式单次上传对象大小范围均为[0, 5GB],如果需要上传超过5GB的大文件,需要通过多段上传实现。
put请求的目的是用来替换整个目标资源。put 请求具有 幂等性(idempotent)。
同样的请求,不管发多少次,每次服务器处理完之后的结果,都和只发一次是一样的
比如缓存性,post 是可以被缓存的,put 却不行。
PUT方法是幂等的:调用一次与连续调用多次是等价的(即没有副作用),而连续调用多次POST方法可能会有副作用,比如将一个订单重复提交多次。
快手 网络安工程师 一面总结(已过)_第3张图片

总结:目的不同,前者向指定的资源提交要被处理的数据。后者替换目标资源;幂等性:订单重复提交多次;缓存性:post可以,put不行。
GET - 从指定的资源请求数据

HTTP请求方法:ghppdcotp–cdghopppt

快手 网络安工程师 一面总结(已过)_第4张图片

统一资源定位符(Uniform Resource Locator,URL),统一资源名称(Uniform Resource Name,URN)是URI的子集。

HTTP的响应码

  • 3xx—重定向
301----moved permanently 永久移动
302--Found 临时重定向
303--See other , 常用于将 POST 请求重定向到 GET 请求,比如你上传了一份个人信息,服务器发回一个 303 响应,将你导向一个“上传成功”页面。302包括303。
307--Temporary Redirect  状态码不允许浏览器将原本为 POST 的请求重定向到 GET 请求上。
  • 4xx—客户端错误
400---Bad Request 请求报文语言错误
401---unauthorized需要认证
403---Forbidden 服务器拒绝访问对应资源
404--Not Found 服务器上无法找到资源
  • 5xx—服务端错误
500--Internal Server Error 服务器故障
503---Service Unavailable 服务器处于超负载或正在停机维护

cookie

cookie 属性(和安全相关的)—有效期,范围,键值对
cookie 在传输的时候,http和https有区别么,都会传输所有cookie么,传输cookie的哪些部分。
域名和路径匹配的cookie,会全部自动带上,
cookie如果有expires(过期时间),存在disk(磁盘上),如果是临时的,也即关闭网页,cookie丢失,存在内存中。
session存在的情况,取决于配置,可以存储在内存中,也可在disk,也可在MySQL中。

PUT方式

漏洞渗透扫描工具:AWVS,工作原理

AWVS--破解版
APPScan---破解版,扫描实际时间长
Xray---快速扫描,扫描敏感信息和普通漏洞
BBScan--快速扫描,扫描敏感信息和普通漏洞
以上软件除了BBScan,其他都能生成漏洞报告

AWVS 工作原理
参考资料:漏洞扫描软件AWVS的介绍和使用
Acunetix Web Vulnerability Scanner
功能以及特点:
多线程
智能爬行程序检测web服务器类型和应用程序语言
端口扫描web服务器并对在服务器上运行的网络服务执行安全检查

工作原理

  • 扫描整个网络,通过跟踪站点上的所有链接和robots.txt来实现扫描,扫描后AWVS就会映射出站点的结构并显示每个文件的细节信息。
  • 在上述的发现阶段或者扫描过程之后,AWVS就会自动地对所发现的每一个页面发动一系列的漏洞攻击,这实质上是模拟一个黑客的攻击过程(用自定义的脚本去探测是否有漏洞) 。WVS分析每一个页面中需要输入数据的地方,进而尝试3所有的输入组合。这是一个自动扫描阶段 。
  • 在它发现漏洞之后,AWVS就会在“Alerts Node(警告节点)”中报告这些漏洞,每一个警告都包含着漏洞信息和如何修补漏洞的建议。
  • 在一次扫描完成之后,它会将结果保存为文件以备日后分析以及与以前的扫描相比较,使用报告工具,就可以创建一个专业的报告来总结这次扫描。

总结:根据主页,获取所有页面—映射出站点结构并显示每个文件的细节信息----分析每一个页面中需要输入数据的地方,模拟黑客攻击—报告漏洞,漏洞信息和修补漏洞的建议—保存为文件,日后分析并与以前的扫描相比较。

主菜单功能介绍:主菜单共有5个模块,分别为Dashboard、Targets、Vulnerabilities、Scans和Reports。

Dashboard:仪表盘,显示扫描过的网站的漏洞信息
Targets:目标网站,需要被扫描的网站
Vulnerabilities:漏洞,显示所有被扫描出来的网站漏洞
Scans:扫描目标站点,从Target里面选择目标站点进行扫描
Reports:漏洞扫描完成后生成的报告

哪些漏洞扫不出来—逻辑漏洞,PHP特性漏洞,
能扫哪些漏洞----

  • XSS跨站脚本攻击漏洞
  • SQL注入攻击漏洞
  • 弱密码
  • CSRF-跨站请求伪造攻击–利用已登录的用户身份,以用户的名义发送恶意请求,完成非法操作。
  • HTTP缓慢拒绝服务攻击
  • 源代码泄露
  • 文件信息泄露
  • 命令执行漏洞
  • 代码执行漏洞
  • 文件上传
    快手 网络安工程师 一面总结(已过)_第5张图片

误报率—高不高

那种漏洞的误报率最高,为什么

  • 某些跨站,有些漏洞的查找,只是根据特定版本号来查找,即使已经打上补丁,依然存在误报。

漏洞扫描器—3
安全审计;黑客攻击;部署产品之前

扫描工具的功能–5

  • 最新的漏洞的数据库
  • 低误报率
  • 多线程,扫描多个目标
  • 详细报告,请求和响应
  • 提供修改漏洞的建议
    注意:缺点
    第一,体积庞大,扫描耗时间太久;第二,无法跨平台,只能让windows来用。

sqlmap----注入方式都有哪些

sqlmap 支持五种不同的注入模式:—布尔,时间,报错,联合,堆查询
1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查
看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返
回在页面中。
4、联合查询注入,可以使用 union 的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入。

sqlmap分类的依据—根据响应的结果
sql注入漏洞–利用方式,
获取具体字段,利用方式,具体命令
如何拖数据库
数据库写入一句话
select “” into dumpfile /var/www/1.php
需要哪些条件
root密码,写入权限,绝对路径

一般怎么获取上传路径,猜测,还有什么

页面报错找路径(参数错误,404),通过搜索引擎获取:site:test.com warning;根据搭建平台找默认路径;通过猜测和爆破找路径;利用远程代码执行漏洞找路径–phpinfo()等。

写shell和数据库类型有关系么?语法层面存在差异,总体思路不变

应用代码和数据库如果不在同一个服务器上,还可以写成功么?

权限开着,

用户登录,账号和密码,验证码,测试哪些漏洞
弱口令;验证码一次,多次有效;万能密码绕过;任意账号注册;验证码有规律;还有其他?

http的响应码
403----拒绝请求
404----页面不存在
500—服务端错误

场景:业务系统,服务端,app,web页面,整体的安全评估
从多个角度分析,
渗透方面;服务器配置;web前端;中间件。
配置检查—linux服务器,本身账户和密码存在问题

数据安全

实名认证—身份证照片,身份证号,存入数据库 ,如何存,如何加密

实名认证–明文认证

图片手印—图片标识

SDR

用户权限—水平越权和垂直越权

RBAC
RBAC(Role-Based Access Control )基于角色的访问控制。
Who是否可以对What进行How的访问操作(Operator)
RBAC支持公认的安全原则:最小特权原则、责任分离原则和数据抽象原则。

移动端测试

安全–那块自己比较擅长—文件上传漏洞和蓝队

文件上传绕过思路

报错页面—漏洞
banner,报错信息比较详细

常见漏洞如何修复

输入过滤,预编译,白名单,黑名单,输出转义

反问
100+ 5个组,审计,数据安全,蓝队,渗透,移动端
视频–隐私,通过日志查看别人隐私的
不能一家独大
小公司,开发过程,大公司,螺丝钉,不能踩坑。–参与机制

你可能感兴趣的:(Web安全,网络安全)