渗透测试面试题分享与答案

前言

这篇文章是 XG小刚公众号发现的,抱着学习的心态我对其问题一一做了回答。小菜鸡一枚,一下所有问题肯定有说的不全的地方,望众佬见谅。有说错的地方也希望众佬能够与我沟通交流。感谢!

sqlmap –os-shell原理

这个问题在默安的一次面试中,我是亲历过的。当初我的回答是:使用此条命令必须获取到目标站点的绝对路径,且当前数据库权限必须是dba,sa。他的工作原理是使用 into outfile()函数去写一个可以进行文件上传的 php文件,再根据这个文件写了一个木马,通过木马进行命令执行。

其条件必须具备以下几点:

1.已知目标站点的绝对路径 
2.已知目标站点的脚本语言 
3.当前数据库权限必须是dba,sa权限
4.网站不查杀木马文件

这里简单扩充一点小知识,如何获取目标站点的绝对路径:

1.如果是IIS系统,尝试对参数进行恶意传值,使其出现报错页面
2.如果目标是 TinkPHP框架,尝试访问无效的路径,或对参数进行恶意传值使其报错,出现TP特有的报错页面
3.使用字典猜解目标站点的绝对路径(实战中还是较为有效)
4.对目标站点进行JS代码审计,查看是否存在信息泄露出站点的绝对路径
5.phpinfo页面泄露站点绝对路径

MySQL上传文件的条件

这个问题应该是想问MySQL数据库上传恶意文件的条件

1.已知目标系统的绝对路径
2.使用into outfile()进行文件上传
3.Mysql数据库身份需要有写文件权限

SQL server执行系统命令

使用 xp_cmdshell

exec xp_cmdshell 'echo mark';

如果xp_cmdshell被关闭我们可以使用如下命令开启xp_cmdshell

exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configuer 'xp_cmdshell',1;
reconfigure;

如果xp_cmd被删除,可以上传xplog70.dll修复

Exec master.dbo.sp_addextendedproc 'xp_cmdshell','D:\\xplog70.dll'

还可以通过沙盒、自启动等方式执行系统命令。

怎样进行信息收集

这里我就总结一下我实战中常用的方式

1.获取目标真实IP,若有CDN就绕一下
2.通过真实IP去进行半开放的端口扫描,获取目标服务
3.通过审计JS代码 + Jsfinder工具查看是否存在接口泄露可以使我们进一步利用
4.对站点进行指纹识别,查看CMS历史漏洞
5.通过乌云查找目标的历史漏洞,查看脆弱点
6.通过Google黑语法搜索目标站点的敏感关键词,如:登录、后台、学号、上传
7.通过网络搜索引擎,fofa,bountyteam等收集站点信息
8.通过dirsearch、御剑、dirmap等工具扫描目标站点文件,查看是否存在未授权访问文件或更多功能点
9.扫描目标站点要注意403、302,对其进行二级目录扫描
9.通过潮汐、在线子域名、layer子域名挖掘机进行子域名收集
10.通过nmap、goby对C段进行信息收集

TCP与UDP的区别

1.TCP是安全的传输协议,UDP是不安全的传输协议。比如QQ传文件就是走的TCP协议,视频通话就是UDP协议
2.UDP的传输速度要优于TCP
3.TCP的报文长度大于UDP
4.TCP是面向连接的,UDP是不用连接的
5.TCP是点对点的通信方式,UDP可以是一对多

各种端口对应的协议

举几个常见的吧..

21 FTP文件传输协议
22 ssh
23 telnet远程连接
53 DNS
80 HTTP
110 POP3
139 SMB
443 https
445 文件共享协议
1433 SQL server
1521 Oracle
3306 MySQL
3389 Windows远程登录
6379 redis
7001 weblogic

自己渗透测试的流程

信息收集 -> 漏洞探测 -> 漏洞利用 -> 权限提升 -> 权限维持 -> 端口转发、横向渗透 -> 清楚痕迹 -> 攥写报告

怎么绕CDN找真实IP

1.使用境外IP去ping目标系统
2.主动向我方主机进行请求,如发邮件
3.获取多个子域名IP做对比,因为有些站点只会对主域名做CND服务
4.查看DNS历史记录
5.通过网络搜索引擎去搜索目标

SQL注入原理

由于网站对用户传入的SQL语句过滤不当,导致攻击者通过构造恶意的SQL语句传入到数据库执行,出现了非预期的SQL语句,破坏了原有的语法树,导致泄露了数据库中的敏感信息。

盲注的原理

SQL注入中,在不能通过回显的情况下来判断是否存在SQL注入或获取数据库中信息,可以通过页面返回的不同信息来判断注入的一种方式。盲注分为 布尔盲注(页面是否回显正常数据)、时间盲注(回显页面的时间)

有哪些SQL注入的方式

联合注入,盲注,报错注入,二阶注入,堆叠注入。

平时怎么挖XSS漏洞

手工的方式会对与数据库有交互的用户输入位插入XSS语句,对一些参数会测其是否存在反射性XSS。

工具推荐 XSSstrike

XSS的类型和区别,常用XSS进行哪些利用

反射性XSS :通过发送已经构造好的XSS页面引诱受害者点击而触发的一种攻击方式(主动攻击)

存储型XSS :通过向数据库插入恶意的XSS语句,从而将XSS嵌入到网站中,受害者点击存在XSS页面即可触发(被动攻击)

DOM型XSS :有一些站点开发的DOM函数,如注册函数等等,将XSS代码嵌入其中从而触发XSS攻击

使用document.cookie()获取受害者cookie,从而登录网站。

对某些功能点进行伪造,如精心伪造一个登录button,其中写好的是修改密码。

XSS和CSRF的区别

XSS称为跨站脚本攻击,CSRF称为跨站请求伪造。

CSRF是攻击者在受害者被动的情况下去使用受害者身份去执行某些操作的一种攻击手段。

http only的作用,有http only怎么获取cookie

如果在cookie中设置了http only属性,那么将不能从 JS脚本中获取到cookie信息,也就是说不能用 document.cookie()来获取cookie。

我一个好兄弟在一次面试中遇到过这个问题,当时我俩都不会…

1.信息泄露,http only是只对指定的cookie做保护,所以前端是会泄露指定保护的cookie

2.配置错误,可能在设置 hettp only的时候只对某个 cookie做了保护,关键的 cookie未保护 

3.如果apache版本较低,使用CVE-2012-0053 ,通过发送超长 cookie,可以获取 http only保护下的cookie

怎么找SSRF漏洞,SSRF可以做什么

SSRF称为服务端请求伪造攻击,通常是目标系统对外发起请求的情况下才会造成该攻击生效,一般是通过某些对外发起请求的参数,攻击者通过SSRF可以对目标系统进行内网打点,使用file伪协议可以读取系统内的文件,使用dict伪协议可以查看内网存活主机,使用gopher伪协议反弹shell,配合redis写shell操作。

PHP代码审计如何查找ssrf漏洞,或ssrf相关的函数是什么

关注对外发起请求的自定义功能函数,如:分析、转码、在线翻译、图片加载下载、收藏。

函数:file_get_contents(),fsockopen(),curl_exec()

SSRF可以使用哪些协议,大致讲讲gopher伪协议攻击redis或其他服务

file:// 利用file伪协议可以读取系统内存在的文件
dict:// 利用dict伪协议可以对内网主机进行端口探测,横向打点,会返回其banner信息
gopher:// 利用gopherr伪协议可以向服务器发送精心构造的GET或POST请求数据包

利用方式 SSRF进行内网渗透 -> gopher伪协议反弹shell -> redis写webshell

PHP文件包含漏洞的函数,利用文件包含有哪些限制条件

include()
require()
include_once()
require_once()

php中 allow_url_include(本地文件包含开关) 和 allow_url_forpen(远程文件包含开关)

文件包含如何getshell

上传图片马,通过文件包含的方式getshell

通过登录ssh,将木马写入ssh登录日志getshell

通过恶意访问 HTTP,通过包含web日志进行getshell

php伪协议getshell php://input

怎么测试文件上传漏洞绕waf

常规头像、附件、模板修改处存在文件上传点

CMS、框架、富文本编辑器 历史漏洞文件上传

文件上传饶waf

利用中间件文件解析漏洞,IIS php\php3\php4\php5\php7\phtml\phr,apache多文件后缀,apache x0a截断

tomcat后台传war包,IIS PUT写文件,tomcat写文件,apache .htacces

大小写、双写绕过

Windows文件特性、Windows流特性

php低版本 00截断

换行符、filename字段加 + 号、大小写、双引号变单引号、分号后加空格

双文件上传

参数污染

脏数据绕过内容waf绕过

冰蝎等马绕waf

只有一个登录页面如何测

1.测试逻辑漏洞点:

密码找回方式,发送邮件、手机号是是否可以拦截

登录时是否为前端认证,通过修改HTTP回显包是否可以绕过

注册功能是否可以覆盖注册 admin,注册页面是否存在二阶注入

验证码是否可以绕过

用户名是否可以进行暴力破解

2.SQL注入漏洞

登录处是否存在报错注入、联合、盲注

注册是否存在SQL注入漏洞

密码找回处是否存在SQL注入

3.JS代码是否存在 JS接口泄露

有些功能点屏蔽掉,但是JS代码可以看到,通过控制台可以触发

通过JSfinder查看是否存在可以利用的接口

通过源码查看是否存在接口泄露

4.目录扫描

探测是否存在未授权访问

探测二级目录、三级目录、robots.txt

5.查看漏洞库是否存在历史漏洞

6.提取登录页面关键字,通过fofaAPI工具去搜,看看有无站点源码泄露去代码审计

常见逻辑漏洞

横纵向越权

支付漏洞

登录页面密码找回

登录页面用户覆盖

登录是否前端可绕过

越权漏洞测试方法思路

捕获个人信息页面数据包,查看个人信息是否是通过某一个参数有规律的去控制的

查看Cookie是否为弱加密

PHP伪协议的利用姿势

php://filter base64读文件

php:://input 写文件

data;,读文件

zip:// getshell

phar:// getshell

知道哪些中间件漏洞、原理

IIS

IIS解析漏洞。php3/5/7。。。但是这个IIS不承认是漏洞

IIS解析漏洞 创建文件夹 a.asp,在a.asp下创建文件都会当作 asp解析

IIS解析漏洞 a.asp;.jpg ,分号当作截断符

IIS7.5解析漏洞 上传 a.jpg的图片马,访问时在后面加 /.php会当作 php解析

IIS PUT写文件,IIS配置WebDAV不当引起的

IIS 短文件猜解漏洞

Apache

apache解析漏洞。从右往左识别可以解析的后缀名

apache /x0a截断漏洞

apache换行解析漏洞

apache ssi远程命令执行漏洞

cve-2012-0053

Tomcat

tomcat弱口令后台上传war包

tomcat put写文件

常见绕过验证码的方式,常用爆破后台密码工具

登录时拦截数据包,防止验证码刷新,且验证码不是一次一验

短信找回密码时,通过抓包查看是否可以获取到验证码

查看是否存在默认验证码 1111 1234

通过python编写脚本进行自动化学习

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
大佬不来一句? 抢沙发

请登录后发表评论