Cyber_Security_Notes/网安经典面试题.md
2024-11-20 15:52:08 +08:00

23 KiB
Raw Blame History

网安经典面试题

01、php爆绝对路径方法

单引号引起数据库报错 访问错误参数或错误路径 探针类文件如phpinfo 扫描开发未删除的测试文件 google hacking phpmyadmin报路径/phpmyadmin/libraries/lect_lang.lib.php 利用漏洞读取配置文件找路径 恶意使用网站功能,如本地图片读取功能读取不存在图片,上传点上传不能正常导入的文件

02、你常用的渗透工具有哪些最常用的是哪个

burp、nmap、sqlmap、awvs、蚁剑、冰蝎、dirsearch、御剑等等

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

钓鱼管理员 信息收集

04、鱼叉式攻击和水坑攻击

鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马 水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问

05、什么是虚拟机逃逸

利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的

06、中间人攻击

原理:

在同一个局域网中,通过拦截正常的网络通信数据,并进行数据篡改和嗅探

防御:

在主机绑定网关MAC与IP地址为静态 在网关绑定主机MAC与IP地址 使用ARP防火墙

07、TCP三次握手过程

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认 第二次握手服务器收到syn包,必须确认客户的SYNack=j+1,同时自己也发送一个SYN包syn=k,即SYN+ACK包,此时服务器进入SYN_RECV状态 第三次握手客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

08、七层模型

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

09、对于云安全的理解

融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念通过网状的大量客户端对网络中软件行为的异常监测获取互联网中木马、恶意程序的最新信息传送到Server端进行自动分析和处理再把病毒和木马的解决方案分发到每一个客户端

10、了解过websocket吗

WebSocket是一种在单个TCP连接上进行全双工通信的协议最大特点是服务器可以主动向客户端推送信息客户端也可以主动向服务器发送信息是真正的双向平等对话。

11、DDOS是什么有哪些CC攻击是什么区别是什么

DDOS

分布式拒绝服务攻击,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应 主要方式: SYN Flood UDP Flood ICMP Flood Connection Flood HTTP Get UDP DNS Query Flood

CC攻击

模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面造成服务器资源的浪费CPU长时间处于100%,网络拥塞

两者区别:

CC攻击网页DDOS攻击服务器更难防御 CC门槛较低DDOS需要大量服务器 CC持续时间长DDOS产生的影响大

12、land攻击是什么

局域网拒绝服务攻击DDOS攻击的一种通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包致使缺乏相应防护机制的目标设备瘫痪

13、你会如何进行信息收集

服务器信息ip、中间件、操作系统 域名whois、ipwhois、网段归属 子域名探测 网站目录扫描、接口信息扫描 端口扫描 各大引擎搜索相关信息

14、什么是CRLF注入攻击

通过“回车”和“换行”字符注入HTTP流实现网站篡改、跨站脚本、劫持等。

15、防止XSS前端后端两个角度

前端:

用户输入特殊字符过滤转义为html实体 用户输出编码

后端:

实体化编码 函数过滤 限制字符长度

16、如何防护一个端口的安全

利用WAF、IDS、IPS等设备 危险服务端口禁止对外访问或限制IP访问 服务定期更新版本

17、webshell检测思路

静态检测:匹配特征码,特征值,危险函数 动态检测WAF、IDS等设备 日志检测通过IP访问规律页面访问规律筛选 文件完整性监控

18、发现IIS的网站怎样试它的漏洞根据版本

https://mp.weixin.qq.com/s/5XV984kErF2Zhh-P5aoUwQ

19、SQL注入问题总结

https://mp.weixin.qq.com/s/frwK49IatUqUoT-4DR08GQ

20、GPC是什么开启了怎么绕过

GPC

php.ini配置文件中的magic_quotes_gpc实现为get、post、cookie传入的单引号、双引号、反斜线、NULL字符添加反斜线

绕过:

PHP5的GPC对$_SERVER的忽略可在http请求头注入 二次注入 宽字节注入

21、web常用的加密算法有什么

单向散列加密 MD5、SHA、MAC 对称加密 AES、DES 非对称加密 RSA、RSA2

22、XSS除了获取cookies还能做什么

获取管理员ip xss蠕虫 钓鱼攻击 前端JS挖矿 键盘记录 屏幕截图

23、运营商或其他网络劫持

运营商劫持:广告投放 DNS劫持通过各种手段篡改DNS劫持网络

24、DNS欺骗是什么

攻击者冒充域名服务器的一种欺骗行为

25、缓冲区溢出原理和防御

原理:

当写入缓冲区的数据量超过该缓冲区所能承受的最大限度时,发生缓冲区溢出,溢出的数据被黑客加以利用,形成远程代码执行漏洞。

防御:

基于操作系统防御 缓冲区边界检查 安全编程

26、网络安全事件应急响应

断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹 取证通过分析登录日志、网站日志、服务日志寻找黑客ip查看黑客进行的操作 备份:备份服务器文件,对比入侵前后产生变化的文件 查漏:通过上述步骤寻找业务薄弱点,修补漏洞 杀毒清除黑客留下的后门、webshell、管理账号 溯源通过黑客ip地址入侵手段等 记录:归档、预防

27、企业内部安全

实名制联网 重要网段隔离 禁止接入任何USB设备 禁用WIFI网络 IP与MAC地址绑定 部署网络监控、IDS、IPS设备 定期培训,提高员工安全意识

28、业务上线前怎么测试从哪些角度测试

安全测试:寻找产品漏洞,页面漏洞,服务漏洞,敏感信息泄露,逻辑漏洞,弱口令 性能测试:压力测试 功能完整性测试

29、应用有漏洞但是无法修复和停用你怎么办

限制IP白名单访问 使用WAF、IDS、防火墙设备

30、CSRF怎么防护

验证HTTP Referer字段 添加Token字段并验证 添加自定义字段并验证

31、文件上传绕过方法

WAF绕过

修改上传表单字段 表单字段大小写替换 表单字段增加或减少空格 表单字段字符串拼接 构造双文件上传表单,同时上传双文件 编码绕过 垃圾数据填充绕过 文件名大小写绕过

服务器检测绕过:

MIME类型绕过 前端JS检测抓包改包绕过 黑名单绕过php3、asa、ashx、windows特性test.asp_、流特性、apache解析漏洞 图片内容检测使用图片马绕过 .htassess绕过

白名单检测绕过:

截断上传绕过 IIS6/7/7.5解析漏洞nginx低版本解析漏洞 文件包含绕过

32、验证码相关利用点

验证码复用 验证码可识别 验证码失效 验证码DDOS

33、cookie你会测试什么内容

sql注入 xss 权限绕过 敏感信息泄露

34、说出几个业务逻辑漏洞类型

任意用户密码重置 短信轰炸 订单金额修改 忘记密码绕过 恶意刷票 验证码复用

35、简述文件包含漏洞

调用文件包含函数时未严格限制文件名和路径如include()、require()等函数

36、业务逻辑漏洞用户任意密码重置有什么例子因为什么因素导致的

普通用户重置管理用户密码 普通用户重置普通用户密码 未设置用户唯一Token导致越权

37、渗透测试过程中发现一个只能上传zip文件的功能有什么可能的思路

shell压缩上传程序自解压getshell 尝试解析漏洞getshell 寻找文件包含漏洞 木马钓鱼管理员

38、为什么aspx木马权限比asp大

aspx使用的是.net技术,IIS中默认不支持ASPX需要依赖于.net frameworkASP只是脚本语言 入侵的时候asp的木马一般是guest权限APSX的木马一般是users权限

39、只有一个登录页面有哪些思路

SQL注入、万能密码 暴力破解 权限绕过 目录扫描 敏感信息泄露

40、请求头中哪些是有危害的

COOKIE注入 user-agent注入 X-Forwarded-For注入 Referer注入

41、谈谈水平/垂直/未授权越权访问的区别?

水平越权:普通用户越权访问普通用户 垂直越权:普通用户越权访问管理用户 未授权访问:权限控制不严,导致无需登录访问已登录用户页面

42、xss有什么执行存储型的xss的危害和原理

存储型、反射型、DOM型 存储型XSS是指应用程序通过Web请求获取不可信赖的数据在未检验数据是否存在XSS代码的情况下便将其存入数据库

存储型XSS危害

窃取用户Cookie XSS钓鱼攻击 XSS蠕虫攻击 获取键盘记录 获取用户信息 获取屏幕截图

43、主机疑似遭到入侵要看哪里的日志

系统登录日志 服务访问日志 网站日志 数据库日志

44、python常用的标准库

正则表达式 re 时间模块 time 随机数 random 操作系统接口 os 科学计算 math 网络请求 urlib http库 requests 爬虫库 Scrapy 多线程库 threading

45、reverse_tcp 和 bind_tcp 的区别?

reverse_tcp攻击机设置一个端口和IPPayload在测试机执行连接攻击机IP的端口这时如果在攻击机监听该端口会发现测试机已经连接 白话就是让受控机主动连接我们 bind_tcp攻击机设置一个端口LPORTPayload在测试机执行打开该端口以便攻击机可以接入 白话就是我们主动连接受控机 使用reverse_tcp较为安全一般不会被防火墙发现

46、oauth认证过程中可能会出现什么问题导致什么样的漏洞?

CSRF redirect_uri校验不严格 错误的参数传递

47、做了cdn的网站如何获取真实IP

全球ping 查询历史解析记录 探针文件如phpinfo等 利用命令执行连接我们的服务器或DNSlog 寻找网站配置 通过二级域名 全网扫描title匹配

48、如何实现跨域

jsonp CORS跨域资源共享 代理跨域请求 Html5 postMessage 方法 修改 document.domain 跨子域 基于 Html5 websocket 协议 http://document.xxx + iframe

49、jsonp跨域与CORS跨域的区别

jsonp浏览器支持较好CORS不支持IE9及以下浏览器 jsonp只支持GETCORS支持所有类型的HTTP请求 jsonp只发一次请求复杂请求CORS发送两次

50、算法了解过什么排序

冒泡排序 选择排序 插入排序

51、SSRF漏洞利用

本地文件读取 服务探测、端口扫描 攻击内网redis、mysql、fastcgi等服务

  • 利用到的协议有http/s、file、gopher、tftp、dict、ssh、telnet

52、常见后门方式

Windows:

注册表自启动 shift后门 远控软件 webshell 添加管理用户 影子用户 定时任务 dll劫持 注册表劫持 MBR后门 WMI后门 管理员密码记录

Linux:

SSH后门 SUID后门 Crontab计划任务 PAM后门 添加管理员账号 Rootkit

53、open_basedir访问目录限制绕过方法

使用命令执行函数绕过 使用symlink()函数绕过 glob伪协议绕过

54、PHP代码审计中容易出问题的点

参数拼接方式皆有可能产生SQL注入老生常谈 全局变量注册导致的变量覆盖 fwrite参数未过滤导致的代码执行 权限校验疏漏导致的后台功能访问 接口任意文件上传 unserialize反序列化漏洞

55、红蓝对抗中蓝队反杀红队场景和姿势

钓鱼、蜜罐、蚁剑RCE

56、linux计划任务黑客隐藏自己的计划任务会怎么做

临时任务at、batch命令

57、Redis未授权常见getshell的几种方式

web绝对路径写shell 写入ssh公钥获取服务器权限 主从复制getshell

58、JWT的攻击手法头部、负载、签名

加密算法置为空绕过身份验证 爆破弱密钥 kid参数任意文件读取、SQL注入、命令注入 未校验签名,内容重新编码

59、JAVA中间件的漏洞举几个例子

JBoss反序列化 WebLogic反序列化 Tomcat任意文件写入、弱口令+后台getshell

60、DNS外带可以用在哪些漏洞

SQL盲注 无回显的命令执行 XXE盲打 SSRF盲打

61、HTTP-Only禁止的是JS读取cookie信息如何绕过这个获取cookie

劫持登录页面钓鱼绕过

62、中间件漏洞总结

这里只写常利用的漏洞

IIS:

IIS6.0 PUT漏洞 IIS6.0 远程代码执行漏洞 IIS6.0 解析漏洞 IIS启用.net 短文件名漏洞 IIS7.0/7.5 解析漏洞

Apache:

未知扩展名解析漏洞 配合错误导致的解析漏洞、目录遍历

Nginx

配置错误导致的解析漏洞、目录遍历

Tomcat:

配置错误导致的任意代码执行、任意文件写入漏洞 弱口令+管理后台war包部署getshell manager/html 管理后台弱口令爆破

JBoss:

5.x/6.x反序列化漏洞CVE-2017-12149 JMXInvokerServlet反序列化 EJBInvokerServlet反序列化 JMX Console未授权访问 弱口令+管理后台war包部署getshell

WebLogic:

XMLDecoder 反序列化漏洞CVE-2017-10271 & CVE-2017-3506 wls9_async_response,wls-wsat 反序列化远程代码执行漏洞CVE-2019-2725 WLS Core Components 反序列化命令执行漏洞CVE-2018-2628 弱口令+管理后台war包部署getshell

63、谈一谈Windows系统与Linux系统提权的思路

Windows:

数据库提权mysql、sqlserver 第三方软件提权serv-u DLL劫持 系统内核溢出漏洞提权cve系列

Linux

sudo提权 suid提权 redis 内核提权

64、python有哪些框架其中出现过哪些漏洞

Django、Flask、Scrapy Django任意代码执行 Flask模板注入

65、小程序的渗透和普通渗透的差异

渗透过程不变,依旧是抓包修改参数渗透 不同点是小程序会将包下载到本地,可以使用逆向还原工具反编译

66、app本身的漏洞测试 四大组件

Activity组件:

activity绑定browserable与自定义协议 ActivityManager漏洞

Service组件:

权限提升,拒绝服务攻击

Broadcast Receiver组件:

权限管理不当 BroadcastReceiver导出漏洞 动态注册广播组件暴露漏洞

Content Provider组件:

读写权限漏洞 Content Provider中的SQL注入漏洞 Provider文件目录遍历漏洞

67、IDS/IPS防护原理及绕过思路

原理:

IDS工作在网络层旁路部署通过抓取和分析网络流量来发现攻击 IPS一般也是在网络层旁路可以理解为具备阻断能力的IDS是IDS的升级版也有IDS检测到攻击通知阻断设备执行阻断动作的设备联动模式可以覆盖网络层和应用层

绕过:

TCP分片拆分出两个TCP包 IP分片原理同TCP分片但是丢包严重 程序bug/性能问题发送大量无效包消耗IPS性能 伪造TCP状态绕过基于状态追踪的IPS IPV6绕过使用IPV6地址绕过

68、json的csrf的利用

使用XMLHttpRequest、fetch构造出JSON请求利用Flash的跨域与307跳转来绕过http自定义头限制

69、json格式的数据包可以测哪些漏洞

csrf json劫持 xss

70、简述xxe漏洞原理与利用方式

原理:

XML外部实体注入在应用程序解析XML输入时当允许引用外部实体时可构造恶意内容产生漏洞

利用:

DTD Document Type Definition DTD 内部声明 DTD 外部引用 引用公共DTD ENTITY

图片来自网络

71、内网服务器如何进行信息收集

使用脚本收集:端口信息、服务信息 系统命令收集:域内用户可使用域命令收集域信息,等 端口扫描工具全段扫描 本机信息收集管理密码、登录日志看管理员ip、服务密码收集、网段信息查看、历史记录查看 内网DNS域传送漏洞

72、如果拿下了内网边界层的某一个机器如何对内网其他进行探测

首先使用代理进入内网reg、ew等 第二在本机进行信息收集包括管理员ip、端口服务、账号密码、路由信息、网段信息等 第三扩展到收集到的网段进行渗透,利用常用服务:SMB、MYSQL、SQLserver、ftp、telnet等 借助轻量化脚本或扫描器扫描,但一般不这么做,动静太大容易被管理员发现

73、内网黄金票据、白银票据的区别和利用方式

图片来自网络

黄金票据:

一旦攻击者拥有管理员访问域控制器的权限就可以使用Mimikatz来提取KRBTGT帐户密码哈希值。

生成票据

普通域账户,利用黄金票据,创建域管账户

此时域管账号创建成功

img

白银票据:

获取SID和NTLM

伪造票据

针对服务名伪造

img

成功获取域管账号

金票银票区别:

获取的权限不同 金票伪造的TGT可以获取任意Kerberos的访问权限 银票伪造的ST只能访问指定的服务如CIFS 认证流程不同 金票同KDC交互但不同AS交互 银票不同KDC交互直接访问Server 加密方式不同 金票由krbtgt NTLM Hash 加密 银票:由服务账号 NTLM Hash 加密

74、简述一下目前主流编程语言的相关漏洞

答:

  • 这个题的相关思路就是聊一聊目前主流语言的漏洞,你可以从两个方面进行阐述:
  • ThinkPHP的远程代码执行
  • PHP的反序列化
  • ThinkPHP文件包含
  • PHP不安全函数 chroot、exec、一句话木马、proc_open等
  • Java最著名的就是反序列化漏洞反序列化漏洞出现在WebLogic、JBoss等常见Web容器
  • Structs2就是任意代码执行
  • Log4j2 也是很火的漏洞
  • Shiro 的身份验证绕过、远程代码执行;
  • 注入Django 2022新的SQL注入漏洞即使Django采用参数化查询和ORM的防范SQL注入也存在字典注入的方式2022最新的CVE漏洞利用QuerySet.annotate()、aggregate()和extra()方法进行注入;
  • XML XML的读取会造成DoS攻击XXE 攻击的利用;
  • assert 语句: 不要使用 assert 语句来防止用户访问特定代码段。默认情况下Python 以 debug 为 true 来执行脚本,但在真实环境中,通常使用优化运行,这将会跳过 assert 语句并直接转到安全代码,而不管用户是否是 is_admin 。
  • site-package 伪造官方库进行代码注入和代码伪造;

75、如何发现目前在运行的相关系统正在遭受DDoS攻击

答:

  • 问题背景:
  • 首先现在大多数企业已经不自己购买抗DoS的相关防御设备了或者只是简单部署DoS流量防御设备系统因为如果企业遭受到DoS攻击指望那几台互联网出口的抗D设备已经无法满足需求如果互联网出入口出现高峰流量就会直接将设备打挂从而设备流量被绕过还是无法做到流量清洗和DoS的相关防御
  • 本身这种攻击就没有有效的防御方法,最好的方法是在运营商上就做好流量清洗和流量黑洞,才能更有效的防范,因此最为省事和有效的办法是购买运营商的流量清洗服务;
  • CDN其实也是一个很有效的防范DoS攻击的途经也是成本低廉的解决问题的方式

76、如何发现系统正在遭受攻击

  • netstat -npt | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

    这个命令组合是用来显示系统中每个远程IP地址的连接次数按照连接数量排序并且只显示TCP连接

  • net.ipv4.tcp_max_syn_backlog = 4096 #表示SYN队列的长度加大队列长度可以容纳更多等待连接的网络连接数net.ipv4.tcp_syncookies = 1 #表示开启SYN Cookies功能。当出现SYN等待队列溢出时启用cookies来处理可防范少量SYN攻击默认为0表示关闭1表示打开net.ipv4.tcp_synack_retries = 2 #下面这两行表示定义SYN重试次数net.ipv4.tcp_syn_retries = 2 #提高TCP连接能力net.ipv4.tcp_rmem = 32768net.ipv4.tcp_wmem = 32768net.ipv4.tcp_sack = 0 #打开tcp_sack功能1表示"关闭"0表示"打开"

  • DDoS deflate 也是一个控制 netstat 和 iptables 有效的工具,通过 netstat 监测跟踪创建大量网络连接的IP地址在检测到某个结点超过预设的限制时该程序会通过APF或IPTABLES禁止或阻挡这些IP

  • 利用分布式多核硬件技术基于深度数据包检测技术DPI监测、分析网络流量数据快速识别隐藏在背景流量中的攻击包以实现精准的流量识别和清洗。恶意流量主要包括 DoS/DDoS 攻击、同步风暴(SYN Flood)、UDP 风暴(UDPFlood)、ICMP 风暴(ICMP Flood)、DNS 查询请求风暴DNS Query Flood)、HTTP Get 风暴HTTP Get Flood、CC 攻击等网络攻击流量。

  • 首先可以在现网中部署流量监视系统或者流量审计系统从而对业务流量进行监视进行业务正常流量和IP地址的追踪和观察形成自身的业务流量安全相关模型明确内网服务器或者自身应用系统对于服务流量的上限设立相关的警戒阈值超过该阈值需要考虑是否遭受DoS攻击

  • 其次Linux服务器对于CC攻击和DoS攻击有自身的日志记录dmesg 和 message 日志都会有相关的Flood的日志记录这个日志的记录是由于net.ipv4.tcp_max_syn_backlog 参数设置的Linux也有其他参数来防止DoS攻击主要思路是控制连接数

  • 一些框架例如Apache的Web框架就记录了access log 来记录访问;

  • 此外可以检查Linux服务器的相关进程资源使用情况通过 top命令查看监视系统进程的资源使用情况对系统的资源使用进行监控这里涉及到主机的监控的相关技术或者通过 netstat 查看目前系统正在连接数;

  • 也可以直接抓取网络流量进行分析使用的相关工具有tcpdump 和 tshark 可以抓取网络流量进行分析;