渗透测试笔试面试题目汇总

1.渗透测试流程和工具?

渗透测试流程概述
前期交互阶段、情报搜集阶段、威胁建模阶段、漏洞分析阶段、
渗透攻击阶段(Exploitation)、后渗透攻击阶段(怎么一直控制,维持访问)、报告阶段。

攻击前:网络踩点、网络扫描、网络查点
攻击中:利用漏洞信息进行渗透攻击、获取权限
攻击后:后渗透维持攻击、文件拷贝、木马植入、痕迹擦除

第一阶段:明确渗透目标 和风险分析获得授权
(1)确定范围
如:IP、域名、内外网、整站、部分模块等
(2)确定规则
能渗透到什么程度,是发现漏洞即可还是需要利用该漏洞、时间限制、能否修改上传、能否提权等
目标系统介绍、重点保护对象及特性。
是否允许破坏数据?
是否允许阻断业务正常运行?
测试之前是否应当知会甲方安全部门,IP是否需要加白接入方式?外网和内网?
测试是发现问题即可,还是尽可能发现更多问题。
测试过程是否需要考虑社会工程手段。
测试过程中要求完全仿真,除破坏操作需要报备,其余手段不受限制还是如何。
(3)确定需求
上线前的web应用测试、业务逻辑漏洞测试、人员权限管理漏洞测试。

需分析渗透过程可能产生的风险:测试是否对系统产生影响、带宽占用、系统资源消耗、爆测试行为或其他可能触发动态感知系统或其他告警机制、影响正常业务开展、服务器发生异常应急、数据备份和恢复、测试人力物力成本等。

由乙方书写实施方案初稿提交给甲方或公司内部审核,审核通过后,测试人必须拿到正规的乙方书面委托授权书才能开工,代理商第三方授权不具备法律效力,若是第三方授权,必须拿到甲方给中间商的授权,且注明中间商有转让授权的权限,这样中间商下发的授权测试才是合法的。需要提前跟甲方确认是否能提供测试账号,测试账号最好覆盖各个权限级别,金融行业或者交易类的测试账号需要账户中有一定的余额。

第二阶段:信息搜集 【maltego、nmap、reco-ng、waf00f 】
信息搜集的方法很多,不详细阐述,大概列举如下:

  • 方 式: 主动扫描+被动收集
  • 基础信息:IP、网段、域名、端口、DNS……
  • 系统信息:操作系统版本[nmap 、ttl、]……
  • 应用信息:各端口应用、例如web应用、邮件应用、脚本语言类型、目录结构、数据库类型、web框架……
  • 版本信息:所有探测到的版本
  • 服务信息: 服务器类型、版本
  • 人员信息: 域名注册人信息,web应用中网站发帖人的id,管理员姓名等
  • 防护信息:尝试探测防护设备

被动:【maltego、reco-ng】DNS【nslookup 、dig 】
主动: 二层发现【nmap arping 、netdiscover、scapy】
三层发现ip、icmp【ping 、fping、nmap、hping】可路由容易被发现
四层发现 tcp、udp [nmap 、hping]
端口扫描[nmap 、scapy]
服务扫描[amap、 ]
防火墙识别[查看回包] waf识别【wafw00f】

第四阶段:漏洞探测和验证
汇总信息搜集到的信息,使用与之匹配的漏洞检测策略
方法:
1.漏扫:【AWVS、AppScan、Nessus、……】
2.漏扫结果去exploit-db等位置找利用
3.在网上寻找验证POC
内容:
系统漏洞:系统没能及时更新补丁
Webserver漏洞: webserver配置问题……
Web应用漏洞: Web应用开发问题、错误页面未定义、后台暴露……
其他端口服务器漏洞: 诸如21/8080(st2)/7001/22/3389……
通信安全: 明文传输、token在cookie中传送……

web漏扫描【burpsuite 、skipfish[速度快]、w3af、owasp_zap】

将四阶段发现的洞,通过自己经验分析可能成功利用的全部漏洞都验证一遍,结合实施环境,搭建模拟环境进行试验,利用成功后再实施在目标系统中 :

  • 自动化验证: 结合自动化扫描工具发现的结果
  • 手工验证: 利用公开资源进行验证
  • 试验验证: 自己搭建模拟环境进行验证
  • 登录猜测: 尝试猜测登录、万能密码、注入
  • 业务漏洞验证: 发现后该漏洞,进行验证
  • 公开资源利用: exploit-db/wooyun/、渗透代码网站、通用、缺省口令、厂商的漏洞告警……

第六阶段:渗透准备和实施攻击
实施渗透的准备环节 :

  • 精准攻击: 利用4>探测到的EXP,进行精准攻击
  • 绕过防御机制: 检测是否有WAF等,绕过策略筹划
  • 定制攻击路径: 最佳攻击路径、主要根据薄弱入口,高内网权限位置,最终目标等
  • 绕过检测机制: 是否有检测机制,流量监控,杀毒软件,恶意代码(免杀)检测
  • 攻击代码: 试验得来的代码,包括不限于xss代码,sql注入语句……

实施攻击:根据前几步的结果,实施精准攻击 :

  • 获取内部信息: 基础设施(网络连接、vpn、路由、网络拓扑、内网IT资产……)
  • 横向渗透: 内网入侵、敏感信息
  • 持续性存在: 一般情况,甲方不需要,rookit、后门、添加管理员账号、驻扎手法等
  • 清除痕迹: 清理渗透相关日志(访问、操作),漏扫,上传文件等

第七阶段:形成报告

整理渗透工具:整理渗透中使用的代码、POC、EXP等。
整理收集信息:整个渗透过程中收集的一切信息。
整理漏洞信息:整个渗透过程中利用成功的所有漏洞,各种脆弱位置信息,为书写渗透报告做准备

按需整理:按照之前第一步跟甲方确认的范围、需求来整理资料,技术细节尽可能的详细,形成报告进行交付。

  • 补充介绍:需对漏洞成因,验证过程中带来的危害进行分析。
  • 修补建议:给开发或运维人员提出合理高效安全的解决方案。

》》》msf模块:
Exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
Payload:成功 exploit 之后,真正在目标系统执行的代码或指令,/usr/share/metasploit-framework/modules/payloads/
shellcode 或系统命令
Single:all-in-one
Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
stages:利用 stager 建立的连接下载的后续payload
stager、stages 都有多种类型,适用于不同场景
shellcode 是 payload 的一种,由于期建立正向/反向 shell 而得名
Auxiliary:执行信息收集、枚举、指纹探测、扫描等功能的辅助模块(没有 payload 的 exploit 模块)
Encoders:对 payload 进行加密,躲避 AV 检查的模块
Nops:提高 paylaod 稳定性及维持大小

》》》计算机取证工具:
procdump 、dumpit [内存镜像]、volatility[内存分析]

》》》 DNS查询方式?

》》》》社工库?
社工库就是一个黑客们将泄漏的用户数据整合分析,然后集中归档的一个地方。这些用户数据大部分来自以前黑客们拖库撞库获得的数据包,包含的数据类型除了账号密码外,还包含被攻击网站所属不同行业所带来的附加数据。社会工程学,可能是因为,操作起来需要超高的情商,洞察人与人之间层级差别,利害关系,以及潜伏者一样胆大心细的伪装能力吧
》》》》?拖库和撞库的区别

1、为何一个MYSQL数据库的站,只有一个80端口开放?

2、一个成熟并且相对安全的CMS,渗透时扫目录的意义?

3、在某后台新闻编辑界面看到编辑器,应该先做什么?

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

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

6、3389无法连接的几种情况

7、列举出owasp top10 2017

8、说出至少三种业务逻辑漏洞,以及修复方式?

9、目标站无防护,上传图片可以正常访问,上传脚本格式访问则403,什么原因?

10、目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?

参考答案

1

更改了端口,没有扫描出来;

站库分离;

3306端口不对外开放。

2

敏感文件、二级目录扫描;

站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点。

3

查看编辑器的名称版本,然后搜索公开的漏洞。

4

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

5

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

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

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

6

没开放3389 端口

端口被修改

防护拦截

处于内网(需进行端口转发)

7

1)注入;

2)失效的身份认证;

3)敏感信息泄露;

4)XML外部实体(XXE);

5)失效的访问控制;

6)安全配置错误;

7)跨站脚本(XSS);

8)不安全的反序列化;

9)使用含有已知漏洞的组件;

10)不足的日志记录和监控。

8

密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码;

身份认证漏洞中最常见的是会话固定攻击和Cookie仿冒,只要得到Session或Cookie即可伪造用户身份;

验证码漏洞中存在验证码允许暴力破解、验证码可以通过Javascript或者改包的方法来进行绕过。

9

原因很多,有可能Web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过。

10

先爆破用户名,再利用被爆破出来的用户名爆破密码;

其实有些站点,在登陆处也会这样提示;

所有和数据库有交互的地方都有可能有注入

11.SQL注入waf 绕过方式

12.文件上传漏洞绕过方式和防御方法?
绕过方法?
1.修改文件后缀
2.修改content-type 类型
3.%00截断 链接后面加入%00字段伪造合法的文件头
4.加入某种文件格式的前10个字节的幻数头绕过检查,通常判断文件格式只是判断文件前10个字节的二进制代码,绕过检查
防护方法?
1.前端js代码过滤
2.后端对上传文件的后缀做严格的检查
3.限制上传文件大小
4.采用随机数修改文件名【让攻击者无法获取上传脚本的文件名,无法访问上传的恶意代码】
5.将文件上传目录设置为不可执行,让web容器无法解析目录下的文件

13.什么是XSS,原理是什么?
跨站脚本攻击原理:
存储型:攻击者在存在xss漏洞的web页面存放一段有恶意攻击的代码【存储型】,普通用户访问到web页面时,就会自动执行攻击者留下的这串攻击代码。可能在用户不知情的情况下将用户的cookie 信息发送给攻击者。
反射型xss漏洞,用户访问这个页面有弹窗警告。

XSS存在的原因和防御方法:
根本原因url参数和用户输入提交给web server的内容没有做充分的过滤,但是完全的过滤是不太好实现的,攻击者有各种脑洞很大的方法来绕过服务器检查,最典型的就是编码 16进制 来绕过xss过滤。
防御:
1.在不需要html输入的地方,对html标签和特殊字符 <> & 过滤,将它转换为不能被浏览器执行的字符,对用户输入的html标签及标签属性做白名单过滤。
2.设置白名单 规定客户端哪些可以加载和执行的 CSP策略

14.SQL注入
什么是SQL注入?
在参数中或者是页面请求链接中,构造恶意的sql查询代码,能提交到服务器进行解析和查询得到数据库的其他信息。【总结不好】
SQL注入方式:
1.盲注:时间盲注 布尔盲注 DNSlog盲注
2.报错注入
3.宽字节
4.二次注入
5.布尔注入

SQL语句单引号被过滤了怎么办?
1.进行编码 16进制数 或者其他编码方式绕过

SQL注入waf 绕过方法?
白盒:代码审计的方式找到绕过方法
黑盒:1.架构层绕过 寻找源站点地址适用适用了云waf 场景
2.利用同网段主机内网注入绕过waf
3.资源限制角度 post 一个大的body,在线waf 考虑运行速度,一般不会对大的文件过率、
4.协议层面 协议未覆盖绕过 比如页面只对get 方式过滤没对post过滤或者对某一种格式的文件类型过滤 ;参数污染携带 多个参数
5.规则层面:注释符 空白符 函数分割符 浮点数 染过 利用error-base sql 注入 mysql特殊语法绕过

SQL注入防御方式?
1.参数化查询接口
2.特殊字符转义、过滤
3. 避免打印sql错误消息
4. 正则表达式匹配
5. 尽量不要用拼装的sql语句进行查询数据库内容 大概我了解到的这些

SQL注入的写入webshell的方式?
通过 select into outfile 的一种方式写入webshell
sqlmap --os-cmd 来写入 --os-shell

SQL注入工具?

为什么参数化查询能够防止SQL 注入
参数化方式原理:因为参数化的一个查询接口,可以参数 的过滤和执行重用保证sql语句的语义不变,保持一个原始的查询意思。原理是数据库服务器不会将参数的一些内容作为sql的指令的一部分来进行处理,是在数据库完成编译以后才套用这个参数,就算参数中写入=了恶意的指定,sql服务器也不会执行。所以就是能防止sql注入的

5.0以上和5.0一下的区别:
5.0以下没有 information_schema 这个表,数据库表列信息只能通过暴力的方式来区猜测的。5.0以下是多用户单操作

15.给一个测试站点要做什么事?
1.首先要得到站点ip地址、物理信息、位置
2.ip地址得到后,扫描服务器什么系统、版本号,服务器开了什么服务 、端口号 、版本 。在线工具去探测,然后猜测是用的什么中间件 apache ,nginx?
3.得到这个基础信息之后去看目标站点一个web 相关问题 有没有 csrf 、xss 或者sql 注入漏洞 工具 扫描awvs、brupsuite
4. 扫描问题后、探测漏洞利用价值和方式:sql注入注入点 如果没有得到就看它有没有一些防御的东西,防火墙 waf。这时候就需要绕过waf 或防火墙的检测
5. 主战渗透不了看有没有二级域名 工具[???]

16。判断站点的cms 有啥作用?
主要看已经曝光的程序漏洞,开源就审计

17 ECB 和 CBC 的分组模式区别?

18 https建立过程:

客户端如何验证证书

19.csrf和xss区别?

20为什么mysql联合查询要加and 1=2报错

1.SQL注入如何读写文件,二次注入,防御方式

读:select load_file(‘C:\key.txt’)
写:secure_file_priv into outfile
union select 1,’<’,3 into outfile ‘C:\test\shellcode.php’
二次注入:admin’-- xxx
update users set password=123 where username=‘admin’-- and password=aaa
防御方式:预编译,参数判断,MyBatis #预编译 $

2.XSS有哪几种,如何防御
反射,存储,DOM
存储XSS:Cookie 发送XSS平台
防御:前端参数过滤

3.CSRF和XSS区别,如何防御
XSS是利用站内的信任用户,盗取Cookie
CSRF通过伪装成受信任用户请求受信任的网站
CSRF Token Referer

4.文件上传的前后端的绕过,防御方式
JS Burp
MineType
Content-Type:image/png
1.php 1.jpg 1.asp

5.IIS6.0,Apache,Nginx的文件解析漏洞讲一下
IIS6.0:
(1)当建立1.asa,1.asp文件夹时,其目录下任意文件都将被IIS当作ASP文件解析
(2)当文件1.asp;1.jpg 同样会被当做asp文件解析

Apache:
apache认为一个文件可以拥有多个扩展名,从右到左开始判断解析的
如果最右侧扩展名不可识别,就继续往左判断,直到判断到文件名为止
例如1.php.xxx、1.php.qqq.xxx.ooo文件是可以执行的

Nginx:
www.xxx.com/test.jpg/test.php会把test.jpg当作php解析

6.XXE和SSRF简单讲一下
XXE:应用程序解析XML时候没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取,命令执行,内网端口扫描,DOS攻击等危害
SSRF:服务端提供了从其他服务器获取数据的功能,但没有对内网目标地址做过滤限制
http://xxx/test.php?url=file:///c:/windows/win.ini
http://xxx/test.php?url=http://192.168.1.2/password.php?id=123
http://xxx/test.php?url=http://192.168.1.2:3306

7.RCE讲一下,PHP函数eval和system,popen的区别
RCE:command/code

8.Python的迭代器和装饰器讲一下
装饰器:Python核心

9.缓冲区溢出原理和防御
1000 1500 100 JMP 400 shellcode 反弹连接 getshell

10.内网渗透经验有没有

11.多线程和进程讲一下,线程通信以及进程通信方式

进程是程序的一次执行过程,初始态,执行态,等待状态,就绪状态,终止状态
线程是CPU调度和分派的基本单位
线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程
进程之间切换开销大,线程之间切换的开销小

线程通讯:volatile,wait() 和 notify()
volatile:当使用volatile修饰某个变量时,它会保证对该变量的修改会立即被更新到内存中,并且将其它缓存中对该变量的缓存设置成无效

线程安全:
synchronized关键字,就是用来控制线程同步的,保证我们的线程在多线程环境下,不被多个线程同时执行,确保我们数据的完整性,使用方法一般是加在方法上
lock,进入方法我们首先要获取到锁,然后去执行我们业务代码,这里跟synchronized不同的是,Lock获取的所对象需要我们亲自去进行释放,为了防止我们代码出现异常

RPC HTTP(SpringCloud)

12.渗透测试流程讲一下,信息收集都有哪些方面
域名信息
子域名信息
CMS扫描
CDN绕过
网站目录扫描
端口扫描

13.有没有实际渗透经验,讲一下
诚信!

14.浏览器输入百度访问,具体的过程是什么(经典老问题)

1.先要解析出baidu.com对应的ip地址
1.先知道默认网关的mac
1.使用arp获取默认网关的mac地址
2.组织数据发送给默认网关(ip还是dns服务器的ip,但是mac地址是默认网关的mac地址)
3.默认网关拥有转发数据的能力,把数据转发给路由器
4.路由器根据自已的路由协议,来选择一个合适的较快的路径转发数据给目的网关
5.目的网关(dns服务器所在的网关),把数据转发给dns服务器
6.dns服务器查询解析出baidu.com对应的ip地址,并把它原路返回给请求这个域名的client
2.得到了baidu.com对应的ip地址后,会发送tcp的3次握手,进行连接
3.使用http协议发送请求数据给web服务器
4.web服务器收到数据请求之后,通过查询自已的服务器得到相应的结果,原路返回给浏览器
5.浏览器接收到数据后通过浏览器自已的渲染功能来显示这个网页
6.浏览器关闭tcp连接,即4次挥手
https://blog.csdn.net/liu1121655792/article/details/77823879

15.有没有了解过系统漏洞,windows方面的,比如MS08-067
具体的漏洞细节和实现方式?

16.你是如何学习渗透的,哪些方式

100
80
60

17数字签名原理?
数字签名采用双重加密来实现防伪和防抵赖。原理啊:被发送文件用sha1进行摘要,然后发送方用自己的私钥对摘要进行签名。将原文和加密的摘要用对方的公钥加密。然后对方接受后用自己的私钥解密得到加密的摘要和原文,然后用发送方的公钥解密摘要,和用sha1摘要的原文对比一致则说明没有被篡改。
18. MD5摘要过程:

19什么是重放攻击,怎样防止重放?
入侵者C截获A发送给B的报文,并不需要解密,可以直接把这个报文发送给B让B误认为C就是A。
防止:使用不重数就是不重复使用的大随机数

20.什么是中间人攻击,如何防止?
将受入侵者控制的一个计算机虚拟放置在网络链接中两台通信计算机之间,能够与原始计算机建立活动链接并允许其读取和篡改传递的消息。
防止:加密后再传输,设备或者IP异常/频率检测。

21.IPSEC包括什么?
鉴别首部AH 和 封装安全有效载荷ESP
在这里插入图片描述
18.防火墙工作的原理和提供的功能?什么叫网络级防火墙和应用级防火墙
防火墙中分组过滤路由器检查进入网络的分组数据,按照系统管理员事先设置好的防火墙规则进行匹配,符合条件的分组就能通过,否则丢弃。

19链路加密和端到端加密特点?
在这里插入图片描述
20简述 SSL和SET 过程?

21.XXE外部实体注入:

22同源策略: 如果页面的“协议、域名、端口、三者相同才是具有相同的源,不同源的客户端脚本没有授权情况下不能执行,不能读写对方资源。

页面的链接、重定向和表单、引用不受同源策略限制。

22 判断后门存在:
Chrootkit

23.如何绕过CDN 获取真实ip:
1.子域名
2.历史解析记录
3.外网

23.反弹shell

nc -lvvp 7777 - e /bin/shell

24 ARP
有ARP欺骗攻击、ARP泛洪(Flood)攻击。
防御方法:手工静态绑定、在交换机上开启DHCP侦听技术、ARP防火墙。

25 数据库和端口

1.Oracle数据库默认端口号为,15212.MySQL数据库默认端口号为,33063.SQLServer数据库默认端口号为,1433;

NOSQL数据库: 
1.MongoDB默认端口号为:270172.Redis默认端口号为:63793.memcached默认端口号为:11211
  1. 常见的逻辑漏洞
    验证码回传

  2. 内网渗透流程

28.内网穿透TCP穿透原理

TCP穿透原理:其实就是客户端A绑定端口发送数据,然后监听该端口,然后由中转服务器告诉客户端B,客户端A的公网IP和公网端口,客户端B连接A的公网IP和公网端口,数据包自动由NAT转化为客户端内网IP和内网端口

29。CSRF漏洞预防

CSRF漏洞防御主要可以从三个层面进行,即服务端的防御、用户端的防御和安全设备的防御。
1.检测HTTP referer 字段同域。根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求必须来自于同一个网站。比如某银行的转账是通过用户访问http://bank.test/test?page=10&userID=101&money=10000页面完成,用户必须先登录bank.test,然后通过点击页面上的按钮来触发转账事件。当用户提交请求时,该转账请求的Referer值就会是转账按钮所在页面的URL(本例中,通常是以bank. test域名开头的地址)。而如果攻击者要对银行网站实施CSRF攻击,他只能在自己的网站构造请求,当用户通过攻击者的网站发送请求到银行时,该请求的Referer是指向攻击者的网站。因此,要防御CSRF攻击,银行网站只需要对于每一个转账请求验证其Referer值,如果是以bank. test开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求。
2.限制sessioncookie的生命周期。CSRF攻击是有条件的,当用户访问恶意链接时,认证的cookie仍然有效,所以当用户关闭页面时要及时清除认证cookie
3.使用验证码。虽然攻击者已经通过获取cookie得到用户的身份,但是通过在你的表单中包括验证码,事实上网站已经消除了跨站请求伪造攻击的风险。
4.cookie关键字段设置HttpOnly属性。可以在一定程度防御CSRF。
5.对敏感的请求增加安全的token,可以通过自定义http首部字段实现。

30.WEB类安全问题的应急处置过程中web日志溯源攻击路径的思路

首先确定受到攻击的时间范围,以此为线索,查找这个时间范围内可疑的日志,根据可疑ip、攻击特征等进一步排查(WEB日志会记录客户端对WEB应用的访问请求,这其中包括正常用户的访问请求和攻击者的恶意行为。通过大量的分析,我们发现攻击者在对网站入侵时,向网站发起的请求中会带有特定的攻击特征,如利用WEB扫描器在对网站进行漏洞扫描时往往会产生大量的404错误日志,当有攻击者对网站进行SQL注入漏洞探测时,WEB访问日志中通常会出现and 1=1等字样),最终锁定攻击者,确认攻击的手段,还原攻击过程。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201014231454298.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0J1bGxkb3plcl9HRA==,size_16,color_FFFFFF,t_70#pic_center)

31.心脏滴血漏洞产生的原因,危害都有哪些?

可以随机泄露内存中的64k数据,而且可通过重复读取获得更多内存数据,openssl又是存储用户请求中的明文数据,其中包括源码,登录时用的明文账号密码,登录后服务器返回的合法认证因素,软件序列后,机密文件,甚至是可以突破一些系统保护机制的关键数据。还可能暴露其他用户的敏感请求和响应,包括用户任何形式的POST请求,会话cookie和密码,这使攻击者可以劫持其他用户的服务身份。
Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。通过读取网络服务器内存,攻击者可以访问敏感数据,从而危及服务器及用户的安全。敏感的安全数据,如服务器的专用主密钥,可使攻击者在服务器和客户端未使用完全正向保密时,通过被动中间人攻击解密当前的或已存储的传输数据,或在通信方使用完全正向保密的情况下,发动主动中间人攻击。攻击者无法控制服务器返回的数据,因为服务器会响应随机的内存块。
漏洞还可能暴露其他用户的敏感请求和响应,包括用户任何形式的POST请求数据,会话cookie和密码,这能使攻击者可以劫持其他用户的服务身份。在其披露时,约有17%或五十万通过认证机构认证的互联网安全网络服务器被认为容易受到攻击。电子前哨基金会,ArsTechnica,和布鲁斯·施奈尔都认为心脏出血漏洞是“灾难性的”。
漏洞让特定版本的openSSL成为无需钥匙即可开启的“废锁”,入侵者每次可以翻检户主的64K信息,只要有足够的耐心和时间,就可以翻检足够多的数据,拼凑出户主的银行密码、私信等敏感数据。

32.Apache,IIS,Nginx的文件解析漏洞都是如何解析和利用的?

Apache 解析漏洞

对URL从右往左逐层判断解析,不可解析就一直往左解析判断,直到能正确解析出文件

上传木马文件时,将合法后缀放在URL最右,绕过本地文件上传限制和服务器的类比黑名单验证
,Apache服务器就会逐层从右往左解析,如xx.php.jpg.rar的一个木马文件最后会到php成功解析,那么
木马也就成功执行了。

IIS解析漏洞

一种是IIS5.x/6.0解析漏洞

在网站下建立文件夹啊名称中带有.asp,.asa等可执行的脚本文件后缀为后缀的文件夹,其目录内的任何扩展
名的文件都被当作可执行文件来解析

另外还有文件解析,IIS6.0下分号后面的不解析,也就是xx.asp;.jpg被当成xx.asp来解析
除了asp还有.asa,.cer,.cdx都可被解析

一种是IIS7.0/IIS7.5的畸形漏洞解析

在Fast-CGI开启下,会在例如URL为http://www.xxx.com/xx.jpg/.php中将xx.jpg当成php解析


Nginx解析漏洞

在Nginx0.50.6以及0.70.7.650.80.8.37上存在空字节代码执行漏洞

也就是在访问如以下http://www.xxx.com/xx.jpg%00.php中会将xx.jpg当作php文件解析
它将.jpg%00看成一段字符

在CVE-2013-4547 Nginx下
还存在着将如下URL http://www.xx.com/a.jpg%00\0.php中的a.jpg当作php执行漏洞

33.session和cookie的区别

34.SSRF

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

35 压力测试

QPS: Queries Per Second,每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。

TPS:Transaction Per Second,每秒钟处理完的事务次数,即服务器每秒处理的事务数。TPS包括一条消息入、一条消息出和一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)。一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。

并发量:Throughput,系统能同时处理的请求数

RT:Tesponse Time,响应时间,处理一次请求所需要的平均处理时间

CAPS:CAPS (Call Attempts Per Second)每秒建立呼叫数量。

36 sql注入拖库流程

收集应用程序的可测试点
确定可测试点是否是可注入点
数据库类型探测
数据库基本信息探测,包括当前数据库用户名、当前用户名权限、数据库表信息(几个表、几个列、表名称、列名称)
利用漏洞爆取数据(明注入、盲注入)

37 CSRF和SSRF和重放攻击的区别
https://www.freebuf.com/articles/es/195242.html

CSRF(跨站请求伪造)是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器。  

SSRF(服务端请求伪造)是服务器对用户提供的可控URL过于信任,没有对攻击者提供的RUL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或其他服务器。

重放攻击是将截获的数据包进行重放,达到身份认证等目的,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。

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

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

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

39 无论是在日常的网络维护,还是在渗透测试过程中,经常会使用到端口转发、代理、隧道技术,请详尽地说明这三种技术的异同点。

端口转发,顾名思义,就是指访问某一IP和端口的流量会被转发到另一个IP和端口,通过中转的方式,来访问无法直接访问到的主机和服务。

代理和隧道本质上都是一种端口转发技术,代理的特点是代理服务端可以根据客户端的数据包,自动判断向哪个目标机器转发;隧道技术主要是对端口转发的流量进行了加密和封装的处理。

如果可以说明本地端口转发、远程端口转发、动态端口转发、正向代理、反向代理的具体细节就更好了。

代理是一种有转发功能的应用程序

隧道可按要求建立起一条与其他服务器的通信线路

端口转发服务是由一组端口转发规则定义的策略。

隧道可按要求建立起一条与其他服务器的通信线路,使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径,确保客户端能与服务器进行安全的通信,届时使用SSL等加密手段进行通信。隧道本身不会去解析HTTP请求。也就是说,请求保持原样中转给之后的服务器。隧道会在通信双发断开连接时结束。

40 某系统存在防注入模块,注入时会被提示:
在这里插入图片描述
如何利用这个防注入系统拿shell?

在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。

41.发现test.jsp?id=1234 注入点,你有哪几种思路获取 webshell,哪种是优选?

有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 
使用sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 
通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传Shell
  1. CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。 
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer 
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。

43.写出病毒木马常用的hook技术以及大致实现。

1.INLINE HOOK将需要hook的api函数入口的部分代码修改为跳转代码,如将函数的       序言代码push ebp;mov ebp,esp等代码修改为jmp hook_func的指令
2.IAT HOOK遍历可执行程序的导入表,并修改导入表的地址为要跳转的函数地址
3.消息hook机制 利用setwindowshook函数配合全局参数劫持windows下的消息传递,利用callnexthookex将消息进行下一步的分发。通常该技术用来进行dll注入。
4.SSDT hook在内核层上通过KeServiceDescriptorTable内核导出变量来获取对应的ssdt表地址,接着查询需要hook的内核api的索引,将ssdt表对应索引的函数地址改为需要跳转的函数地址。

44。请回答如下端口默认对应的服务,以及在渗透测试过程中我们可以从哪些角度考虑其安全问题。

端口:21、22、873、1433、3306、6379、11211
在这里插入图片描述
45.请尽可能列举你知道的网站未能正确使用图片验证码机制的情况,以及如何绕过其限制?

客户端
1.在本地作验证码验证,可以通过burpsuite进行截取,修改后发出。
2.错误次数超过后才会显示验证码,可以选择不更新cookie中的logerror等字段避免出现
3.有的网站把验证码输出到客户端html中,送到客户端Cookie或response headers。

服务端
1.验证码不过期,没有及时销毁会话导致同一验证码反复可用。
2.没有对验证码进行非空判断

绕过:
1.关闭js,看看验证码是否还生成
2.审查元素,看看能不能直接打开验证码网址
3.查看源代码,是不是存在验证码
4.抓包,查看cookie,看看是不是直接存在
5.验证码爆破

46请尽可能列举你知道的网站未能安全实现文件上传功能的情况,以及如何绕过其限制?

47内网渗透流程
在这里插入图片描述

内网渗透的流程:内网信息收集与分析,内网权限维持,内网隧道建立,内网横向移动,内网渗透工具的灵活使用

内网信息收集:包括手机当前主机信息:”网络信息,主机信息,路由信息,主机上可用的资料,在域内收集域内用户信息,定位域控,定位域管“为下一步分析内网网络情况做准备,为横向移动提供部分技术信息,为在当前主机做权限维持提供有效资料支持

内网权限维持:留web后门,留木马后门,留短小的下载器,目前针对开源的后门工具在内网有杀软的情况是一定要做免杀的操作,而免杀首先要考虑过静态免杀(后门能够落地,也就是不进行任何操作,后门放到主机上不会被杀)和动态免杀(调用系统用命令,修改文件等不会被杀),留后门在于精巧,后门留在哪儿,怎么留,留什么样的后门,可以自行查找

内网隧道建立:隧道建立终归实在网络协议上进行过防火墙策略过杀软的限制,目前针对隧道建立可以有网络层的IPV6隧道、ICMP隧道。传输层的lcx端口转发,nc的反连,powercat隧道。应用层的ssh协议隧道,http/https隧道,dhs隧道,socks隧道。具体隧道的建立,主要还是落实到具体问题具体分析,针对内网网络情况的分析,得出当前主机,当前内网对外的流量的通信的了解进行隧道建立

内网横向移动:根据内网信息的收集与分析,对路由信息,对网段信息,对网络信息的分析收集到的部分IP段,在内网进行主机存存活检测,最有效的使用MSF的445端口扫描,可以有效的得出域内主机的主机信息,使用MS17-010进行横向移动最为有效的办法,当然不是大面积,整个内网渗透阶段都不会涉及大面积的进行扫描和攻击,而是有针对性的对服务器段进行攻击。

内网渗透工具的使用:域渗透命令(使用powershell和cmd能够完成信息收集以及解决实际渗透的命令)脱内存明文密码以及做域用户权限提升比较多的minikatz,脱取内存明文procdump,解密域哈希的ntd.exe,wmic.exe,msf,cs,各种代理工具,各类免杀shell的收集。

缓冲区溢出原理及预防,处理

当前流行的漏洞,简要分析

怎样理解安全?
安全是个动态的过程吧,没有绝对的安全 【人】

最近事件 【ddos】【说一下】

IPSEC :
OSPF:

反序列化漏洞原理:

SQL 注入报错函数: floor(rand() ) group by ; updatexml() exp() 等等

跨域问题?

防火墙常用的三种技术是什么?

139端口和445端口的区别?

主流的漏洞扫描工具,优缺点?

快速判断文件是否是病毒?

病毒和木马的区别?

如何判断一个文件是可执行文件?
windows下的可执行文件头两个字节都是0x4d 0x5a

sqlmap提权

代码执行漏洞 :应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。【一句话木马】

命令执行漏洞:相当于在cmd下敲命令

常见的逻辑漏洞:
1. 订单金额任意修改 提交订单时候抓取数据包或直接修改前端代码
2. 验证码回传 验证码在前端验证 只需要抓取response数据包就能知道验证码多少

渗透中POC、EXP、Payload与Shellcode的区别

1. POCEXPPayload与Shellcode

POC:全称 ' Proof of Concept ',中文 ' 概念验证 ' ,常指一段漏洞证明的代码。

EXP:全称 ' Exploit ',中文 ' 利用 ',指利用系统漏洞进行攻击的动作。

Payload:中文 ' 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。

Shellcode:简单翻译 ' shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。

2. 几点注意

POC是用来证明漏洞存在的,EXP是用来利用漏洞的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXPPayload有很多种,它可以是Shellcode,也可以直接是一段系统命令。同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXPShellcode也有很多种,包括正向的,反向的,甚至meterpreterShellcode与Shellshcok不是一个,Shellshock特指14年发现的Shellshock漏洞。


3. Payload模块

在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。

4. 总结

想象自己是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个POC。之后你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的窃听器,这一天你所做的就是一个EXP,你在他家所做的就是不同的Payload,就把窃听器当作Shellcode吧!

安全事件:
2018

迄今为止最大的DDoS攻击发生在20182月。这次攻击的目标是数百万开发人员使用的流行的在线代码管理服务GitHub。在此高峰时,此攻击以每秒1.3太字节(Tbps)的速率传输流量,以每秒1.269亿的速率发送数据包。

这是一个memcached DDoS攻击,因此没有涉及僵尸网络。相反,攻击者利用了一种称为memcached的流行数据库缓存系统的放大效应。通过使用欺骗性请求充斥memcached服务器,攻击者能够将其攻击放大约50,000倍!

幸运的是,GitHub正在使用DDoS保护服务,该服务在攻击开始后的10分钟内自动发出警报。此警报触发了缓解过程,GitHub才能够快速阻止攻击。最终这次世界上最大的DDOS攻击只持续了大约20分钟。

永恒之蓝,处理方法

(一)关闭445等端口(其他关联端口如: 135137139)的外部网络访问权限,在服务器上关闭不必要的上述服务端口(具体操作请见参考链接);
(二)加强对445等端口(其他关联端口如: 135137139)的内部网络区域访问审计,及时发现非授权行为或潜在的攻击行为;
(三)及时更新操作系统补丁。`在这里插入代码片`
(四)安装并及时更新杀毒软件。
(五)不要轻易打开来源不明的电子邮件。
(六)定期在不同的存储介质上备份信息系统业务和个人数据。

心脏滴血

今年:

14年openssl心脏出血”,表明网络上出现了“致命内伤”。利用该漏洞,黑客可以获取约30%的https开头网址的用户登录账号密码,其中包括购物、网银、社交、门户等类型的知名网站。
	存在于ssl/dl_both.c文件中。OpenSSL Heartbleed模块存在一个BUG,
	当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致
	memcpy把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以
	远程读取存在漏洞版本的openssl服务器内存中长大64K的数据。
成因:
	OpenSSL 有一个叫 Heartbeat (心跳检测)的拓展,所谓心跳检测,就是建立一个  Client Hello 问询来检测对方服务器是不是正常在线 ,服务器发回 Server hello,表明正常树立SSL通讯。就像我们打电话时会问对方 “喂听得到吗?”一样。
	
每次问询都会附加一个问询的字符长度 padlength,bug 来了,如果这个 padlength 大于实际的长度,服务器仍是会回来相同规模的字符信息,于是形成了内存里信息的越界访问。

总结:OpenSSL心脏出血漏洞(heartbleed)的产生主要由于OpenSSL的心跳处理逻辑没有检测心跳包中的长度字段是否和后续字段相吻合导致攻击者构造异常数据包,来直接获取心跳数据所在的内存区域的后续数据
Openssl 4月份 TLS 1.3 组件拒绝服务漏洞
	服务端或客户端程序在 SSL_check_chain() 函数处理TLS 1.3握手前后。可能会触发空指针
   取消引用,导致错误处理 tls 扩展 signature_algorithms_cert,导致崩溃。
   当服务端或客户端程序收到一个无效或无法识别的签名算法时可能会引发崩溃或拒绝服务漏洞。

WordPress主题插件严重漏洞修复,影响将近20万个网站

ThemeGrill 该漏洞为未经身份验证的用户提供了管理员特权。攻击者可以管理员身份登录,并将网站的整个数据库还原为默认状态,从而完全控制这些网站。

必须熟悉内网渗透流程:

作者:李萨摩
链接:https://www.nowcoder.com/discuss/543542?channel=1009&source_id=discuss_terminal_discuss_sim
来源:牛客网

1.自我介绍
2.介绍你实习期间完成的比较好的渗透项目,有什么成果,如何修复
3.平时自己渗透网站的流程
4.逻辑漏洞
5.Sql注入类型,时间盲注 布尔盲注原理
6.XSS CSRF区别
7.同源策略
8.跨域身份验证方法
9.PHP危险函数
10.代码审计思路
11.python 魔术方法 init __new__区别与作用
12.copy、deepcopy的区别
13.闭包是什么,有什么作用
14.迭代器、生成器区别
15.字典中的Key可不可以是列表、元组、字符,为什么
16.输入 www.baidu.com回车后发生了什么
17.常见端口号
18.dns请求
19.TCP三次握手
20.TCP6个标志位的哪些组合表示出现了异常
21.SYN包里是否可携带payload,如何携带,有什么用,服务端什么样的情况下可用
22.Cookie、Session区别与作用
反问环节:
公司在安全方面具体的业务和方向
基本都是常规问题,考察范围较大,某些点会很深入,还会给出一些场景题,在某个场景下如何进行渗透工作,最后面试官给分析了一下今天面试存在的不足,体验很好。
通知明天三面,也是技术面。
顺带提一句,有事耽误了面试时间,面试官打电话通知的,也没有因此故意刁难,点个赞

更新一下,三面结束了,说是技术面但是几乎没有问技术方面的东西,问一些研究生期间做过的课题,如何解决的,和同学有分歧怎么解决,老师任务要的很急怎么办,带点压力测试的感觉

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bulldozer Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值