网络安全大厂面试题

自我介绍

有没有挖过src?

平时web渗透怎么学的,有实战吗?有过成功发现漏洞的经历吗?

做web渗透时接触过哪些工具

xxe漏洞是什么?ssrf是什么?

打ctf的时候负责什么方向的题

为什么要搞信息安全,对安全这一块有多大的兴趣,以后会不会转行,还是打算一直从事安全方面工作

自己平时怎么学安全的,如果让你做一个新的方向(app安全),会投入多少时间去学习,还是说有自己想做的方向

聊一聊代码审计的流程

平时是怎么做代码审计的

有没有审计过开源框架、CMS?

怎么判断一个数据库是mysql还是oracle的?

sql注入的种类,利用方式?

聊一聊sql注入的原理及防御思路

做开发的时候用的是什么语言

做java开发的时候用过什么框架,能不能做java安全开发

有没有做过安卓开发

有没有用python写过工具?

msf利用的是哪个漏洞,有没有成功反弹?

护网的时候主要做了些什么,聊一聊对安全产品的理解

公司现在需要做app安全的人,现在要你做的话,你会去学吗,或者说感兴趣吗,还是说有别的想做的,不想做app安全,能投入多少时间去学

内网渗透了解吗?聊一聊内网渗透的思路

面试题合集

1、大厂高频面试题汇总

这次花了三个月的时间整理各大安全厂商的网络安全服务职位(包括但不仅限于:安全服务工程师,安全运营工程师,安全运维工程师,安全攻防工程师")的面试问题。

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

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

1.1、SQL注入防护方法

失效的身份认证和会话管理

跨站脚本攻击XSS

直接引用不安全的对象

安全配置错误

敏感信息泄露

缺少功能级的访问控制

跨站请求伪造CSRF

使用含有已知漏洞的组件

未验证的重定向和转发

1.2、常见的Web安全漏洞

SQL注入

XSS

文件遍历、文件上传、文件下载

垂直越权、水平越权

逻辑漏洞

首先对于新人来说,大多数同学都是没有实战经验的,对应面试官提问聊聊你的渗透测试实战,但很多人却无从开口。

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

在获取书面授权的前提下。

1)信息收集

获取域名的whois信息,获取注册者邮箱姓名电话等。

查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等

扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针

google hack 进一步探测网站的信息,后台,敏感文件

2)漏洞扫描

开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,

远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

3)漏洞利用

利用以上的方式拿到webshell,或者其他权限

4)权限提升

提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,

linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权

  1. 日志清理

6)总结报告及修复方案

1.4、渗透测试流程

项目访谈

信息收集:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息

漏洞扫描:Nessus, AWVS

手动挖掘:逻辑漏洞

验证漏洞

修复建议

(如果有)基线检查/复验漏洞

输出报告

概述

测试基本信息

测试范围

测试时间

测试任务

测试过程

信息安全风险综合分析

整体风险分析

风险影响分析

系统安全分析

安全漏洞列表

解决方案建议

复测报告

SQL面试题

1.5、SQL注入类型

基于报错注入

基于布尔的注入,根据返回页面判断条件真假的注入

基于时间的盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

宽字节注入

联合查询,可以使用 union 的情况下的注入。

堆查询注入,可以同时执行多条语句的执行时的注入。

7.6、SQL注入的原理

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

1.7、如何进行SQL注入的防御

关闭应用的错误提示

加waf

对输入进行过滤

限制输入长度

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

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

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

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

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

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

如果是get型号,直接,sqlmap -u "诸如点网址".

如果是post型诸如点,可以sqlmap -u "注入点网址" --data="post的参数"

如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r "文件地址"

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

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

5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。

5.0以下是多用户单操作,5.0以上是多用户多操做。

1.10、MySQL存储引擎?

1、InnoDB:主流的存储引擎。支持事务、支持行锁、支持非锁定读、支持外键约束

为MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在 SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合

InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文 件尺寸被限制为2GB的操作系统上

InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键

2、MyISAM:访问速度快,不支持事务,逐渐被淘汰

3、MEMORY:BTREE索引或者HASH索引。将表中数据放在内存中,并发性能差。

4、MERGE、Archive等等不常用的

1.11、什么是事务?

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

举个银行应用的典型例子:

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

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

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

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

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

1.12、读锁和写锁

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

1.13、MySQL的索引

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

1.14、ORDER BY在注入的运用

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

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

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

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

@为用户变量,使用SET @var1=1赋值

@@ 为系统变量 ,包括全局变量show global variables \G;和会话变量show session variables \G;

1.17、注入/绕过常用的函数

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%'

面试题pdf文档关注自动获取

相关推荐
汀、人工智能31 分钟前
报错error: RPC failed,curl 16 Error in the HTTP2 framing layer解决方法
网络·git·网络协议·rpc
qq 17780362235 分钟前
智能新时代,游戏盾守护顺畅体验
运维·服务器·网络·游戏·云计算·ddos·ip
安全方案1 小时前
政务安全运营核心能力模块
安全
无敌的俊哥2 小时前
dedecms——四种webshell姿势
web安全
aqymnkstkw2 小时前
2024年【电气试验】考试题库及电气试验模拟试题
大数据·c语言·人工智能·嵌入式硬件·安全
2401_847056552 小时前
Altium Designer脚本工具定制
网络·数据库
xiaojiesec2 小时前
第157天: 安全开发-Python 自动化挖掘项目&SRC 目标&FOFA 资产&Web 爬虫解析库
python·安全
就这个java爽!3 小时前
JAVA网络编程【基于TCP和UDP协议】超详细!!!
java·开发语言·网络·tcp/ip·udp·eclipse·idea
KookeeyLena73 小时前
动态IP与静态IP:哪种更适合用户使用?
网络·网络协议·tcp/ip
可惜已不在3 小时前
华为 HCIP-Datacom H12-821 题库 (25)
网络·华为