面试题总结

时间:2020-05-22
本文章向大家介绍面试题总结,主要包括面试题总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1 自我介绍

自我介绍,经历,工作经验,爱好,自己总结

2  讲一下xxe

XXE全称是——XML External Entity,也就是XML外部实体注入攻击.漏洞是在对不安全的外部实体数据进行处理时引发的安全问题。

1.访问主机文件系统。
2.执行拒绝服务攻击。
3.将XXE与跨站点脚本相结合问题并发起钓鱼攻击。
4.执行内部运行的服务的服务指​​纹识别。
5.执行内部网络端口扫描。
6.使用存在漏洞的Web应用程序服务器作为关键点将其攻击扩展到其他主机。
7.使用存在漏洞的Web应用程序隐藏他自己。这些利用方法应该允许攻击者执行各种未经授权的操作并颠覆应用逻辑来发起其他类型的攻击。尽管此漏洞存在于Web应用程序中,但它只是涉及代码注入的更广泛攻击的一部分。
更多姿势:https://xz.aliyun.com/t/3357
参考:https://www.jianshu.com/p/77f2181587a4

3 sql注入有哪几种类型

1、常见的sql注入按照参数类型可分为两种:数字型和字符型。

2、也可以根据数据库返回的结果,分为回显注入、报错注入、盲注。

3、按照注入位置及方式不同分为:post注入,get注入,cookie注入,盲注,延时注入,搜索注入,base64注入,无论此种分类如何多,都可以归纳为以上两种形式。

参考:https://www.kanxue.com/book-6-110.htm

4  dnslog,数据库提权,redis提权

DNS在解析的时候会留下日志,这类工具就是读取多级域名的解析日志,来获取信息,简单来说就是把信息放在多级子域名中,传递到我们自己的服务器中,然后读取日志,获取特定信息,最后根据获取的信息来判断我们渗透测试的动作是否成功运行。
1,UDF提权
UDF提权的意思就是在 mysql 数据操作中,如果需要执行 cmd 命令,就会调用 UDF这个 dll 文件,我们就是利用这个一个不算漏洞的漏洞,进行利用。

关于这个 UDF提权,我们需要注意一个点就是版本问题,主要分为 小于5.1版本和大于5.1版本这两个,区别就在于因为配置的问题,他们需要导出的文件目录不一样。

小于5.1版本导出路径:c:/windows

大于5.1版本导出路径:../lib/plugin 不存在需创建

2,MOF提权,

MOF提权算是一个漏洞提权,简单的意思就是,我们在网站的根目录创建一个 php 文件,然后我们把固定的漏洞添加账号代码写进去里面,然后我们利用 mysql 的读取和写入把这个文件写入到一个特定的目录,这个网站,会时不时的加载那个文件夹里的文件,这样我的门的账号就被添加上了
3,启动项提权

https://www.jianshu.com/p/fbbf8fc0a1ee

参考:https://wh0ale.github.io/2019/01/13/2019-1-13-dnslog/

第一种:利用计划任务执行命令反弹shell

第二种: 写ssh-keygen公钥登录服务器

第三种:获取web服务的shell

参考:https://www.cnblogs.com/zpchcbd/p/11739232.html

4 知道ssrf吗?

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

0x01 可能出现的地方
1.社交分享功能:获取超链接的标题等内容进行显示

2.转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览

3.在线翻译:给网址翻译对应网页的内容

4.图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片

5.图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验

6.云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试

7.网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作

8.数据库内置功能:数据库的比如mongodb的copyDatabase函数

9.邮件系统:比如接收邮件服务器地址

10.编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等

11.未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法加上这些关键字去寻找SSRF漏洞

一些的url中的关键字:share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain……

12.从远程服务器请求资源(upload from url 如discuz!;import & expost rss feed 如web blog;使用了xml引擎对象的地方 如wordpress xmlrpc.php)

0x02 漏洞验证
1.排除法:浏览器f12查看源代码看是否是在本地进行了请求

比如:该资源地址类型为 http://www.xxx.com/a.php?image=(地址)的就可能存在SSRF漏洞

2.dnslog等工具进行测试,看是否被访问

--可以在盲打后台用例中将当前准备请求的uri 和参数编码成base64,这样盲打后台解码后就知道是哪台机器哪个cgi触发的请求。

3.抓包分析发送的请求是不是由服务器的发送的,如果不是客户端发出的请求,则有可能是,接着找存在HTTP服务的内网地址

--从漏洞平台中的历史漏洞寻找泄漏的存在web应用内网地址

--通过二级域名暴力猜解工具模糊猜测内网地址

4.直接返回的Banner、title、content等信息

5.留意bool型SSRF
0x03 利用方式
1.让服务端去访问相应的网址

2.让服务端去访问自己所处内网的一些指纹文件来判断是否存在相应的cms

3.可以使用file、dict、gopher[11]、ftp协议进行请求访问相应的文件

4.攻击内网web应用(可以向内部任意主机的任意端口发送精心构造的数据包{payload})

5.攻击内网应用程序(利用跨协议通信技术)

6.判断内网主机是否存活:方法是访问看是否有端口开放

7.DoS攻击(请求大文件,始终保持连接keep-alive always)
0x04 绕过小技巧
注:参考[8]会有更详细的绕过方式总结

1.http://baidu.com@www.baidu.com/与http://www.baidu.com/请求时是相同的

2.各种IP地址的进制转换

3.URL跳转绕过:http://www.hackersb.cn/redirect.php?url=http://192.168.0.1/

4.短网址绕过 http://t.cn/RwbLKDx

5.xip.io来绕过:http://xxx.192.168.0.1.xip.io/ == 192.168.0.1 (xxx 任意)

指向任意ip的域名:xip.io(37signals开发实现的定制DNS服务)

6.限制了子网段,可以加 :80 端口绕过。http://tieba.baidu.com/f/commit/share/openShareApi?url=http://10.42.7.78:80

7.探测内网域名,或者将自己的域名解析到内网ip

8.例如 http://10.153.138.81/ts.php , 修复时容易出现的获取host时以/分割来确定host,

但这样可以用 http://abc@10.153.138.81/ 绕过
0x05 漏洞修复
1.禁止跳转

2.过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

3.禁用不需要的协议,仅仅允许http和https请求。可以防止类似于file://, gopher://, ftp:// 等引起的问题

4.设置URL白名单或者限制内网IP(使用gethostbyname()判断是否为内网IP)

5.限制请求的端口为http常用的端口,比如 80、443、8080、8090

6.统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。

参考:https://xz.aliyun.com/t/2115

7 怎么读取文件源码

php伪协议进行base64编码

php://filter/read=convert.base64-encode/resource=upload.php

8 反序列化

在程序执行结束时,内存数据便会立即销毁,变量所储存的数据便是内存数据,而文件、数据库是“持久数据”,因此PHP序列化就是将内存的变量数据“保存”到文件中的持久数据的过程。
简单来理解起来就算将序列化过存储到文件中的数据,恢复到程序代码的变量表示形式的过程,恢复到变量序列化之前的结果。

当用户的请求在传给反序列化函数unserialize()之前没有被正确的过滤时就会产生漏洞。因为PHP允许对象序列化,攻击者就可以提交特定的序列化的字符串给一个具有该漏洞的unserialize函数,最终导致一个在该应用范围内的任意PHP对象注入。
参考:https://bealright.github.io/2019/08/12/PHP%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%E5%AD%A6%E4%B9%A0(%E4%B8%80)/





原文地址:https://www.cnblogs.com/ahacker15/p/12935080.html