渗透测试面试常见问题总结(连更七天)Day5

目录

1、常见的OA系统?

2、什么是反序列化漏洞?

3、常见的webshell连接工具流量特征?

4、常见的未授权访问漏洞有哪些?

5、csrf产生的原因是什么?

6、ssrf是什么?

7、ssrf和csrf有什么区别?

8、Java内存马有哪几种?

9、Java反序列化是什么?

10、文件包含漏洞的原理和防护?


1、常见的OA系统?
1、PHP:通达OA、泛微 Eoffice

2、Java:泛微OA/云桥、致远OA、蓝凌OA、用友OA

3、ASP:启莱OA
2、什么是反序列化漏洞?
原理:

序列化是指程序将对象转化为字节序列从而便于存储运输的一种方式,反序列化则与其相反,即将字节序列转化为对象供程序使用。程序在进行反序列化时会调用一些函数,比如常见的PHP反序列化函数unserialize()以及一些常见的魔术方法,比如构造函数_construct(),析构函数_destruct(),_wakeup(),_toString(),_sleep()等等。如果这些函数在传递参数时没有进行严格的过滤措施,那么攻击者就可以构造恶意代码并将其序列化后传入函数中,从而导致反序列化漏洞。

Java反序列化
Java反序列化就是将java对象转化为字节序列的过程。反序列化的过程就是
1、创建一个对象输出流
2、通过对象输出流的ReadObject()方法来读取对象
3、常见的webshell连接工具流量特征?
1、中国菜刀
连接过程中使用base64编码对发送的指令进行加密,其中两个关键payload z1 和 z2,名字都是可变的。
然后还有一段以QG开头,7J结尾的固定代码。

2、蚁剑
默认的user-agent请求头是antsword xxx,不过可以修改。
一般将payload进行分段,然后分别进行base64编码,一般具有像eval这样的关键字,然后呢大概率还有@ini_set("display","0");这段代码。

3、冰蝎
php代码中可能存在eval,assert等关键词,jsp代码中可能会有getclass(),getclassLoader()等字符特征。

4、冰蝎2.0
第一阶段请求中返回包的状态码是200,返回内容是16位的密钥。建立连接后的cookie格式都是Cookie:PHPSessid=xxxx ;path=/;特征。

5、冰蝎3.0
请求包中的conten-length字段是5740或者5720,然后请求头也具有特征信息,不过这个比较长,没有记住。

6、哥斯拉
a.jsp代码中可能会具有getclass,getclassLoader等关键字,payload使用base64编码等特征。php和asp则是普通的一句话木马。
b.在响应包的cache-control字段中有no-store,no-cache等特征。
c.所有请求中的cookie字段最后面都存在特征。


4、常见的未授权访问漏洞有哪些?
Active MQ 未授权访问
Atlassian Crowd 未授权访问
CouchDB 未授权访问
Docker 未授权访问
Dubbo 未授权访问
Druid 未授权访问
Elasticsearch 未授权访问
FTP 未授权访问
Hadoop 未授权访问
JBoss 未授权访问
Jenkins 未授权访问
Jupyter Notebook 未授权访问
Kibana 未授权访问
Kubernetes Api Server 未授权访问
LDAP 未授权访问
MongoDB 未授权访问
Memcached 未授权访问
NFS 未授权访问
Rsync 未授权访问
Redis 未授权访问
RabbitMQ 未授权访问
Solr 未授权访问
Spring Boot Actuator 未授权访问
Spark 未授权访问
VNC 未授权访问
Weblogic 未授权访问
ZooKeeper 未授权访问
Zabbix 未授权访问


5、csrf产生的原因是什么?
CSRF(Cross-Site Request Forgery,跨站请求伪造)攻击是一种常见的 Web 安全漏洞,它利用用户在已登录的情况下访问恶意网站时,绕过同源策略,以用户身份执行未经授权的操作。

CSRF 攻击产生的原因主要有两个:
1. Web 中的一些重要请求不合理地使用了 GET 方法:通常情况下,GET 方法用于获取资源,而 POST 方法用于提交数据。但是,在 Web 应用程序中,有时会把一些重要的请求用 GET 方法来实现,例如修改密码、转账等操作,这样容易被攻击者利用。
2. 应用程序没有正确验证用户的来源:当应用程序接受到一个请求时,如果没有正确验证请求的来源是否合法,那么攻击者可以通过构造伪造的请求,以用户身份执行未经授权的操作。
总之,要防止 CSRF 攻击,开发人员需要确保应用程序中所有的关键请求都使用 POST 方法,同时,还需要对请求进行适当的验证和授权,例如添加随机 token 或验证码等机制,以确保请求的来源是合法的。
6、ssrf是什么?
SSRF(Server-side Request Forgery,服务端请求伪造)是一种攻击技术,攻击者通过在受害者服务器上执行恶意代码,使该服务器对指定的目标URL发起网络请求。这种攻击通常利用了开发人员在编写Web应用程序时没有正确处理用户输入数据的漏洞,例如将用户提供的URL参数直接传递给后台服务器而没有做任何验证。
在SSRF攻击中,攻击者可以欺骗Web应用程序向其他服务器发送HTTP请求,例如内部服务器、本地网络资源或公共Web API等。攻击者还可以使用SSRF攻击来绕过防火墙保护,访问内部系统,并执行未授权的操作,例如读取机密数据、修改配置文件或上传恶意文件等。
为了避免SSRF攻击,开发人员需要采取以下措施:
1. 对所有输入进行严格的验证和过滤:开发人员在编写Web应用程序时应对所有输入数据进行严格的验证和过滤,以确保不会将任何恶意代码或非法请求发送到受害者服务器。
2. 使用白名单:开发人员可以使用白名单技术限制应用程序仅向可信的服务器发送请求,例如内部服务器或特定的Web API。
3. 限制服务器端请求发出范围: 在服务器上的Web应用程序必须限制服务器端请求的发出范围,例如通过禁止或限制特定的协议、域名或IP地址,以避免攻击者可以利用SSRF漏洞来发送恶意请求。
4. 防火墙保护:使用防火墙的隔离技术可帮助防止恶意代码和非法请求进入Web应用程序,并限制其对其他系统的访问。
7、ssrf和csrf有什么区别?
SSRF(Server-side Request Forgery,服务端请求伪造)和CSRF(Cross-site Request Forgery,跨站请求伪造)是两种不同的攻击类型,它们主要的区别在于攻击的目标和方式。
SSRF攻击是一种通过欺骗服务器来发送恶意请求的攻击技术,攻击者利用服务器上的漏洞进行攻击,并使服务器对指定的目标URL发起网络请求,从而达到恶意操作的目的。SSRF攻击主要针对服务器端应用程序。
而CSRF攻击则是一种利用用户身份验证信息来执行未经授权的操作的攻击,攻击者通过欺骗用户访问包含恶意代码的网站,来达到获取用户敏感信息、执行交易等攻击目的。CSRF攻击主要针对客户端浏览器。
另外,防御SSRF攻击和CSRF攻击的方法也有所不同。防御SSRF攻击需要对所有输入进行严格的验证和过滤,并使用白名单技术限制应用程序只向可信的服务器发送请求。而防御CSRF攻击需要使用随机的令牌(如CSRF Token)来验证每个请求的来源是否合法,并防止攻击者能够伪造请求或欺骗用户进行非法操作。
总之,虽然SSRF攻击和CSRF攻击是两种不同的攻击类型,但它们都需要开发人员采取必要的防御措施来确保Web应用程序和用户数据的安全。
8、Java内存马有哪几种?
Java内存马是指一种恶意软件,通过利用Java虚拟机的特性,在目标机器上执行恶意代码,从而控制被感染的机器。以下是几种常见的Java内存马:
1. 基于反射的内存马:该类型的内存马通过Java反射机制动态加载字节码,绕过了Java程序的安全检查,可以在受害机器上执行任意代码。
2. 基于Instrumentation的内存马:Instrumentation是Java提供的一组API,可以对正在运行的Java程序进行监控和修改。黑客可以利用这个机制来在目标机器上注入恶意代码。
3. 基于ClassLoader的内存马:ClassLoader是Java中负责加载类的机制。黑客可以通过自定义ClassLoader来加载恶意代码,从而实现控制目标机器的目的。
4. 基于JNI的内存马:JNI(Java Native Interface)是Java提供的一组API,可以在Java程序中调用本地代码。黑客可以编写本地代码,并将其作为DLL或SO文件加载到目标机器上,然后通过JNI接口与Java程序通信,从而实现控制目标机器的目的。
需要注意的是,以上仅列举了部分常见的Java内存马,黑客也可能采用其他方式来实现内存马。为了保护系统的安全,建议及时更新Java版本,并加强对Java程序的安全审计。
9、Java反序列化是什么?
Java反序列化是一种Java对象序列化(将Java对象转换为字节流)的逆过程,即将字节流重新转换回Java对象。在Java中,可以使用ObjectInputStream类来实现反序列化。虽然Java反序列化本身是一种有用的技术,但它也可能导致安全风险。
Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。
为了防止Java反序列化漏洞的攻击,开发人员可以采取以下措施:
1. 处理未信任的数据:开发人员应该避免反序列化未受信任的数据,例如来自不可靠来源的网络请求或从未知来源的文件读取的数据。
2. 使用安全的序列化库:一些第三方序列化库,如Jackson和Gson等,提供了更加安全的序列化和反序列化功能。开发人员可以使用这些库来避免Java反序列化漏洞。
3. 实现自定义反序列化方法:对于那些包含重要数据且需要进行反序列化的Java对象,可以实现自定义反序列化方法以控制反序列化过程。
4. 消除未使用的反序列化代码:如果没有必要进行反序列化操作,开发人员可以将其删除或注释掉,以减少潜在的攻击面。
5. 定期更新和维护应用程序:及时更新和修复应用程序中的漏洞和错误,并使用相关的安全工具来检测和防止Java反序列化漏洞。
总之,要解决Java反序列化漏洞,开发人
10、文件包含漏洞的原理和防护?
文件包含漏洞(File Inclusion Vulnerability)是一种常见的Web应用程序漏洞,攻击者可以利用该漏洞向服务器传递恶意数据或代码,从而获取敏感信息或控制服务器。其原理主要涉及到以下内容:
1. 文件包含方式:Web应用程序通常会使用动态脚本语言(如PHP、ASP等)来动态地生成网页内容。其中,文件包含函数(如include、require等)允许将一个文件的内容嵌入到另一个文件中,以实现模块化和重用性。
2. 用户输入信任:当Web应用程序采用用户输入作为文件路径参数时,如果未对这些参数进行足够的过滤和验证,就可能导致恶意数据或代码被动态地加载到页面中。
3. 恶意代码注入:攻击者可以通过向文件路径参数中注入恶意代码或文件名来触发文件包含漏洞,并在服务器上执行恶意操作。例如,攻击者可以上传一个包含恶意代码的文件,并将其作为文件路径参数传递给目标服务器,从而执行恶意操作。
为了防止文件包含漏洞,需要采取一些安全措施,如下所示:
1. 过滤和验证用户输入:在接收用户输入作为文件路径参数时,必须对其进行过滤和验证,确保其中不包含任何恶意数据或代码。
2. 使用绝对路径而非相对路径:在使用文件包含函数时,应该使用绝对路径而非相对路径,以避免攻击者通过注入如“../”等文件路径跳出当前目录并访问其他文件。
3. 限制访问范围:为了防止攻击者利用文件包含漏洞攻击服务器上的敏感文件,可以通过配置文件访问权限和文件夹安全策略等方式来限制访问范围。
4. 升级和更新软件:Web应用程序中经常会存在许多漏洞和安全风险,因此需要及时升级和更新相关软件和组件,以确保最新的补丁和安全措施已经被采纳。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值