技术面试问题
CTF
说一个印象深刻的CTF的题目
-
Padding Oracle->CBC->密码学(RSA/AES/DSA/SM)
-
CRC32
-
反序列化漏洞
sql二次注入
第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据。 在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。
交友网站,填写年龄处是一个注入点,页面会显示出与你相同年龄的用户有几个。使用and 1=1确定注入点,用order by探测列数,union select探测输出点是第几列,
-
暴库 group_concat(schema_name) from information_schema.schemata
-
暴表 group_concat(table_name) from information_schema.schemata where table_schema='hhh'
-
获取数据 concat(flag) from flag
修复:在从数据库或文件中取数据的时候,也要进行转义或者过滤。
Python
爬虫模块、框架、反爬虫机制(IP->代理池、验证码破解、UA)
并发(多线程、线程池、协程、三个程之间的区别)
进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。以前进程既是资源分配也是调度的最小单位,后来为了更合理的使用cpu(实际上是cpu性能越来越好),才将资源分配和调度分开,就有了线程。线程是建立在进程的基础上的一次程序运行单位。
常用的标准库
-
functools -
-
itertools 迭代器
-
count/cycle/repeat
-
chain
-
groupby 把迭代器中相邻的重复元素挑出来放在一起
-
-
concurrent.futures
-
ThreadPoolExecutor
-
-
hashlib
-
md5
-
sha1
-
sha256
-
sha512
-
-
logging
-
sys.argv argparse读取命令行参数
-
pickle 序列化工具
-
re 正则
-
collections 多种数据类型
-
namedtuple
-
OrderedDict
-
Counter
-
-
os 系统相关的函数
DJANGO和FLASK区别和使用
ORM
python安全工具编写/源码阅读
证明能力
-
python安全工具开发
-
python项目,记一下技术细节
密码学
-
RSA
-
DES
-
AES
-
国内SM系列
风险评估
流程
三要素
-
资产:资产价值
-
威胁:威胁主体、影响对象、出现频率、动机等
-
脆弱性:资产弱点的严重程度‘
代码审计
Fority SCA审计JAVA代码
fortify用到什么模块? 过滤器 自定义规则 生成报告
Seay审计PHP代码
源码阅读
应急响应具体流程
实例
DDOS
DDOS是什么
分布式拒绝服务攻击(DDoS)是目前黑客经常采用而难以防范的攻击手段。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。
DDOS攻击手段是在传统的DOS攻击基础之上产生的一类攻击方式。单一的DOS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DOS攻击的困难程度加大了——目标对恶意攻击包的“消化能力”加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果这时侯分布式的拒绝服务攻击手段(DDOS)就应运而生了。
如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDOS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
通常,被攻击的服务器有以下症状:
1、被攻击主机上有大量等待的TCP连接;
2、网络中充斥着大量的无用的数据包,源地址为假;
3、制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;
4、利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求;
5、严重时会造成系统死机
渗透测试流程相关
渗透测试流程
-
项目访谈
-
信息收集:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、***、维护者信息
-
漏洞扫描:Nessus, AWVS
-
手动挖掘:逻辑漏洞
-
验证漏洞
-
修复建议
-
(如果有)基线检查/复验漏洞
-
输出报告
-
概述
-
测试基本信息
-
测试范围
-
测试时间
-
测试任务
-
测试过程
-
-
信息安全风险综合分析
-
整体风险分析
-
风险影响分析
-
系统安全分析
-
安全漏洞列表
-
-
解决方案建议
-
复测报告
-
渗透测试项目
用七八句话概括一下发现、验证漏洞细节、扮演角色、具体工作。 如果技术人员有兴趣会继续问,接着再引导到别处,让自己多说说细节。
常见的Web安全漏洞
-
SQL注入
-
XSS
-
文件遍历、文件上传、文件下载
-
垂直越权、水平越权
-
逻辑漏洞
挖过什么逻辑漏洞
描述一个你深入研究过的CVE或POC(ms17-010/最新的CVE)
MySQL面试题
MySQL存储引擎?
-
InnoDB:主流的存储引擎。支持事务、支持行锁、支持非锁定读、支持外键约束
-
为MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在 SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合
-
InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文 件尺寸被限制为2GB的操作系统上
-
InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键
-
MyISAM:访问速度快,不支持事务,逐渐被淘汰
-
MEMORY:BTREE索引或者HASH索引。将表中数据放在内存中,并发性能差。information_schema用的是该引擎
-
MERGE、Archive等等不常用的
由于篇幅原因,无法完全展示,如果有小伙伴最近在准备网络安全工程师的岗位面试,也比较迷茫的话,我可以把整理的这套面试题分享给大家,希望能帮助到大家拿到心仪的offer!