【漏洞篇】面试

渗透测试面试总结【漏洞篇】

    • 1.OWAP TOP 10都有哪些?
    • 2.中间件漏洞
        • 常见的中间件漏洞及修复建议
        • Apache Shiro
    • 3.框架类漏洞
        • django
        • Fastjson反序列化
        • ThinkPHP框架特征
        • Struts 2 框架特征
    • 4.未授权访问漏洞
    • 5.编辑器漏洞

1.OWAP TOP 10都有哪些?

1、SQL注入
2、失效的身份认证和会话管理
3、跨站脚本攻击XSS
4、直接引用不安全的对象
5、安全配置错误
6、敏感信息泄露
7、缺少功能级的访问控制
8、跨站请求伪造CSRF
9、使用含有已知漏洞的组件
10、未验证的重定向和转发

2.中间件漏洞

常见的中间件漏洞及修复建议

IIS

1-	IIS解析漏洞:基于文件名,该版本 默认会将 *.asp;.jpg 此种格式的文件名,当成Asp解析,原理是:服务器默认不解析`;`号及其后面的内容,相当于截断。
	修复建议:1、限制上传目录执行权限,不允许执行脚本
			  2、不允许新建目录
			  3、上传的文件需经过重命名(时间戳+随机数+.jpg等)
2-  PUT任意文件写入:IIS Server 在 Web 服务扩展中开启了 WebDAV之后,支持多种请求,配合写入权限,可造成任意文件写入
    修复建议:关闭WebDAV和写权限
3-  HTTP.SYS远程代码执行
    修复建议:安装修复补丁

apache

1-  未知扩展名解析漏洞:Apache默认一个文件可以有多个以点分割的后缀,当最右边的后缀无法识别(不在mime.types文件内),则继续向左识别,直到识别到合法后缀才进行解析
2-  AddHandler导致的解析漏洞:如果运维人员给.php后缀增加了处理器:AddHandler application/x-httpd-php .php
	那么,在有多个后缀的情况下,只要一个文件名中含有.php后缀,即被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

Nginx

1-  Nginx配置文件错误导致的解析漏洞:对于任意文件名,在后面添加/xxx.php(xxx为任意字符)后,即可将文件作为php解析。
	例:info.jpg后面加上/xxx.php,会将info.jpg 以php解析。
2-  目录穿越:Nginx在配置别名的时候,如果忘记加/,将造成一个目录穿越漏洞。可以访问服务器的根目录外还可以访问目录里面的数据
    修复建议:只需要保证location和alias的值都有后缀/或都没有/这个后缀
3-  目录遍历:当Nginx配置文件中,autoindex 的值为on时,将造成一个目录遍历漏洞
    修复建议:将autoindex 的值为置为off

Tomcat

1-  Tomcat 任意文件写入:Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致我们可以往服务器写文件
    修复建议:readonly=true
2-  Tomcat manager App 暴力破解:通过burp生成的字典暴力破解manager页面的密码
    修复建议:若无必要,取消manager/html功能;若要使用,manager页面应只允许本地IP访问

Apache Shiro

什么是反序列化漏洞?

首先了解一下序列化和反序列化的含义:序列化是指Java对象转化为二进制内容,转换的原因就是为了便于网络传输和本地存储。反序列化的含义是将相应的二进制转换为Java对象。
漏洞成因:当输入的反序列化的数据可以被用户控制,那么攻击者就可通过构造恶意输入,让反序列产生非预期对象,同时执行构造的恶意代码

Shiro反序列化漏洞

原理:当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化。由于AES加密是对称式加密(key既能加密数据也能解密数据),所以当攻击者知道了AES key后,就能够构造恶意的rememberMe cookie值从而触发反序列化漏洞。

1-  Shiro550:Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。
    在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。
    Payload产生的过程: 命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值
2-  Shiro721:Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题
    用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行

3.框架类漏洞

django

1-  任意URL跳转漏洞:Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中
2-  Django JSONField/HStoreField SQL注入漏洞:该漏洞需要开发者使用了JSONField/HStoreField,且用户可控queryset查询时的键名
    在键名的位置注入SQL语句。Django自带的后台应用Django-Admin中就存在这样的写法
3- Django GIS SQL注入漏洞:该漏洞需要开发者使用了GIS中聚合查询的功能,用户在oracle的数据库且可控tolerance查询时的键名,在其位置注入SQL语句。

Fastjson反序列化

fastjson 是阿里巴巴开发的 java语言编写的高性能 JSON 库,用于将数据在 Json 和 Java Object之间相互转换。它没有用java的序列化机制,而是自定义了一套序列化机制

利用过程:

fastjson中,在反序列化的时候 jdk中 的 jdbcRowSetImpl 类一定会被执行,我们给此类中的 setDataSourcesName 输入恶意内容(rmi链接),让目标服务在反序列化的时候,请求rmi服务器,执行rmi服务器下发的命令,从而导致远程命令执行漏洞

恶意类怎么上传到服务端?

通过jndi在服务端创造一个有危害的类,目标服务器收到rmi的命令之后,就会加载这个jndi生成的恶意类

fastjson rce的原理

jdk 中的 jdbcRowSetImpl 类中的 setAutoCommit 方法中的 lookup方法中的 getDataSourcesName 参数输入可控

ThinkPHP框架特征

1-  类库导入:采用基于类库包和命名空间的方式导入类库,让类库导入看起来更加简单清晰,而且还支持冲突检测盒别名导入
2-  URL模式:可以随心所欲地构建需要的URL地址和进行SEO优化工作
3-  编译机制:独创的核心编译和项目的动态编译机制,有限减少OOP开发中文件加载的性能开销
4-  查询语言:内建丰富的查询机制
5-  视图模型:轻松动态第创建数据库视图,多表查询不再麻烦
6-  分组模块:不用担心大项目的分工协调和部署问题,分组模块解决跨项目的难题
7-  模板引擎:系统内建了一款卓越的基于XML的编译型模板引擎
8-  Ajax支持:内置Ajax数据返回方法,支持JSON、XML和EVAL格式返回客户端
9-  缓存机制

Struts 2 框架特征

1-  POJO形式和POJO动作:Struts2可以使用任何的POJO接收的形式输入。同样的,你现在可以看到任何POJO的Action类
2-  Tag支持:新标签让开发人员写更少的代码
3-  AJAX支持:Struts2整合到产品中AJAX支持创建AJAX的标签
4-  模板支持:支持生成使用模板
5-  插件支持:可以加强和扩大使用插件。大量的插件可供Struts2
6-  概要分析:Struts2的提供集成的配置,调试和分析应用程序
7-  标签修改容易:在Struts2标签标记,可以调整使用FreeMarker模板
8-  提升更少的配置:Struts2的促进更少的配置与用于各种设置的帮助下,使用默认值

4.未授权访问漏洞

# 常见的未授权访问漏洞:

    1- Redis 未授权访问漏洞
    2- MongoDB 未授权访问漏洞
    3- Jenkins 未授权访问漏洞
    4- Memcached 未授权访问漏洞
    5- JBOSS 未授权访问漏洞
    6- VNC 未授权访问漏洞
    7- Docker 未授权访问漏洞
    8- ZooKeeper 未授权访问漏洞
    9- Rsync 未授权访问漏洞
    10- Atlassian Crowd 未授权访问漏洞
    11- CouchDB 未授权访问漏洞
    12- Elasticsearch 未授权访问漏洞
    13- Hadoop 未授权访问漏洞
    14- Jupyter Notebook 未授权访问漏洞

5.编辑器漏洞

# 其实还是文件上传漏洞
    1-    FCKeditor编辑器
    2-    EWEbeditor编辑器
    3-    DotNetTextBox编辑器
    4-    Kedit编辑器
    5-    Cute Editor 在线编辑器

你可能感兴趣的:(Hvv,渗透测试,web安全)