2021最新渗透测试⾯试题合集!
⽹上整理的⾯试问题⼤全,有些 HW ⾯试的题,已经收集好了,提供给⼤家。
1、介绍⼀下⾃认为有趣的挖洞经历
挖洞也有分很多种类型,⼀种是以渗透、⼀种是以漏洞为主,如果是前者会想各种办法获取权限继⽽获取想要的的东⻄完成渗透⽬标,这类跟 HW 类似,⽬标各种漏洞不算,要有Shell,服务器权限才给分,这才是最接近实战渗透,跟某部⻔有合作的话也是属于这种打击⽹络犯罪获得权限、传销数据、组织架构,服务器权限、等......
2、你平时⽤的⽐较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复⽅案?
SQL 注⼊、密码组合, 前者防护分为⼏种,CDN -> Web -> 数据库 -> 主机, 设置最⼩权限来应对。密码组合根据个⼈习惯
3、php/java 反序列化漏洞的原理? 解决⽅案?
php 中围绕着 serialize(),unserialize() 这两个函数,序列化就是把⼀个对象变成可以传输的字符串, 如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术⽅法⾥⾯的话,就容易造成很严重的漏洞了。
O:7:'chybeta':1:{s:4:'test';s:3:'123';}
这⾥的 O 代表存储的是对象(object), 假如你给 serialize() 传⼊的是⼀个数组,那它会变成字⺟ a。7 表⽰对象的名称有 7 个字符。'chybeta' 表⽰对象的名称。1 表⽰有⼀个值。
{s:4:'test';s:3:'123';} 中,s 表⽰字符串,4 表⽰该字符串的⻓度,'test' 为字符串的名称,之后的类似。当传给 unserialize() 的参数可控时,我们可以通过传⼊⼀个精⼼构造的序列化字符串控对象内部的变甚数化字符串,从⽽控制对象内部的变量甚⾄是函数。
JAVA Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、⽂件、数据库中,ObjectOutputStream 类的 writeObject() ⽅法可以实现序列化。Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() ⽅法⽤于反序列化。
4、如果⼀台服务器被⼊侵后, 你会如何做应急响应?
1. 准备相关的⼯具,查后⻔等⼯具
2. 初步判断事件类型, 事件等级。
3. 抑制范围,隔离使受害⾯不继续扩⼤
4. 查原因,封堵攻击源。mysql面试题基础知识
5. 业务恢复正常⽔平.
6. 总结,报告,并修复、监控
以上是常规的回答,想知道你是否有这⽅⾯应急相关的经验,像这类问题甲⽅⾯试⽐较多。
5、你平时使⽤哪些⼯具? 以及对应⼯具的特点?
AWVS、Masscan、BurpSuitestrstr返回什么
AWVS 常规漏洞扫描,masscan 快速查端⼝,burp 重复提交数据包
想知道是否有⾃⼰开发⼯具,如果没有你对每个安全⼯具有哪些独特的⻅解以及别⼈不知道的技巧⽤法。如:awvs 如何批量扫描?burpsuite 如何爆破 401、脱库等、等等...
6、如果遇到 waf 的情况下如何进⾏ sql 注⼊ / 上传 Webshell 怎么做?请写出曾经绕过 WAF 的经过 (SQLi,XSS,上传漏洞选⼀)
PHP 上传,⽆法上传 php、解析、后台没有办法拿到,只有⼀处点可以上传。通过 Windows 特性 sh
ell.php::$DAT,是⼀个项⽬管理系统
7、如何判断 sql 注⼊,有哪些⽅法
提交错误语句是否有异常,除此之外这些显⽰的错误可以通过 sleep, 修眠语句执⾏ 5 秒等,除此之外通过 DNSlog 判断是还有传回值
8、如何判断 SQL 注⼊漏洞成因,如何防范?注⼊⽅式有哪些?除了数据库数据,利⽤⽅式还有哪些?
select * from news where id = '$SQL';
当程序执⾏访问新闻等⼀些操作都会执⾏到 sql 语句进⾏调⽤,如果在此调⽤过程中,提交了不合法的数据,⽽数据库⽆法识别则会报错。也就是⼀切输⼊都是有害的。
注⼊类型有 6 种,可以参考 SQLMAP,报错、盲注、联合、时间、内联、堆叠
注⼊提交⽅式:GET、POST、Cookies、⽂件头
利⽤⽅式:具体看什么数据库类型,像 SQLSERVER 可以命令执⾏,MYSQL 写 shell 有些权限⼤也可以执⾏命令但是条件是在 lINUX 环境下。
防范: 边界, CDN -> 脚本语⾔过滤 -> 数据库过滤最⼩权限 -> 主机
9、为什么有的时候没有错误回显
没有进⾏错误打印或者错误屏蔽
10、宽字符注⼊的原理?如何利⽤宽字符注⼊漏洞,payload 如何构造?
在 mysql 中使⽤了 gbk 编码,占⽤ 2 个字节, ⽽ mysql 的⼀种特性, GBK 是多字节编码,它认为两个字节就代表⼀个汉字,所以 %df 时候会和转义符 %5c 进⾏结合, 所以单引号就逃逸了出来,当第⼀个字节的 ascii 码⼤于 128,就可以了。
11、CRLF 注⼊的原理
CRLF 注⼊在 OWASP ⾥⾯被称为 HTTP 拆分攻击(HTTP Splitting)CRLF 是” 回⻋ + 换
⾏”(rn)的简称, 在 HTTP协议中,HTTP Header 与 HTTP Body 是⽤两个 CRLF 分隔的,浏览器就是根据这两个 CRLF 来取出 HTTP 内容并显⽰出来。所以,⼀旦我们能够控制 HTTP 消息头中的字符,注⼊⼀些恶意的换⾏
12、mysql 的⽹站注⼊,5.0 以上和 5.0 以下有什么区别?
5.0 以下没有 information_schema 这个系统表,⽆法列表名等,只能暴⼒跑表名。
5.0 以下是多⽤户单操作,5.0 以上是多⽤户多操作。
13、php.ini 可以设置哪些安全特性
禁⽤ PHP 函数
允许 include 或打开访问远程资源
14、php 的 %00 截断的原理是什么?
因为在 C 语⾔中字符串的结束标识符 %00 是结束符号,⽽ PHP 就是 C 写的,所以继承了 C 的特性,所以判断为%00 是结束符号不会继续往后执⾏
条件:PHP<5.3.29,且 GPC 关闭
15、webshell 检测,有哪些⽅法
grep、关键词、关键函数
16、php 的 LFI,本地包含漏洞原理是什么?写⼀段带有漏洞的代码。⼿⼯的话如何发掘?如果⽆报错回显,你是怎么遍历⽂件的?
if ($_GET['fifile']){
include $_GET['fifile'];
}
包含的⽂件设置为变量,并且⽆过滤导致可以调⽤恶意⽂件还可以对远程⽂件包含,但需要开启 allow_url_include = ON 通过测试参数的地⽅进⾏本地⽂件 / etc/passwd 等包含如何存在漏洞⽽且没有回显,有可能没有显⽰在⻚⾯⽽是⽹⻚源代码中,除了些可以利⽤ DNSlog 进⾏获取包含的信息。从 index.php ⽂件⼀级级往读取也可以利⽤ PHP 封装协议读取⽂件
17、说说常⻅的中间件解析漏洞利⽤⽅式
IIS 6.0
/xx.asp/xx.jpg 'xx.asp' 是⽂件夹名
IIS 7.0/7.5
默认 Fast-CGI 开启,直接在 url 中图⽚地址后⾯输⼊ / 1.php,会把正常图⽚当成 php 解析
Nginx
版本⼩于等于 0.8.37,利⽤⽅法和 IIS 7.0/7.5 ⼀样,Fast-CGI 关闭情况下也可利⽤。
空字节代码 xxx.jpg%00.php
Apache
上传的⽂件命名为:test.php.x1.x2.x3,Apache 是从右往左判断后缀
18、mysql 的⽤户名密码是存放在那张表⾥⾯?mysql 密码采⽤哪种加密⽅式?
mysql -> users
SHA1
19、Windows、Linux、数据库的加固降权思路,任选其⼀
禁⽤ root
禁⽌远程访问
禁⽌写⼊
单独帐号
禁⽌执⾏ system 等函数
20、你使⽤什么⼯具来判断系统是否存在后⻔
Chkrootkit
Rkhunter
21、如何绕过 CDN 获取⽬标⽹站真实 IP,谈谈你的思路?
类似 phpinfo、⽹站信息
C 段、⼦域名
DDOS
zmap 全⽹扫描识别 http 头
⽹站域名管理员邮箱,注册过的域名等相关信息关联
22、如果给你⼀个⽹站, 你的渗透测试思路是什么? 在获取书⾯授权的前提下。
其实这是⼀个⾮常⼤的话题,渗透⼤部分思路都是如此,⽽⾯试官是想听到你回答不⼀样的答案让⼈眼前⼀亮如何才做到让⼈眼前⼀亮都需要看你的经验,把你实践的过程拿出来说,以及遇到什么问题如何解决,最终取得成果渗透其它⼤同⼩异, ⽽做为渗透者知识的储备、基础扎实、耐⼼、细⼼都是必不可少。
23、谈⼀谈 Windows 系统与 Linux 系统提权的思路?
Windows
Windows 服务⽐较多所以⽅法也如此,最基本的就是 Exp 提权,数据库 SQLServer、MYSQL UDF 等、第三⽅软件提权。
除此之外提权的成功与否和在于信息收集也⾮常重要,你对这台服务器和管理员了解多少。
windows 权限提升 (⼆)
Linux
Linux 也是类似,除了 EXP 或者⾼版本的内核⽆法提权之外,通过第三⽅软件和服务,除了提权也可以考虑把这台机器当跳版, 达到先进⼊内⽹安全防线最弱的地⽅寻有⽤的信息,再迂回战术。
linux 权限提升
Brief
枚举脚本
以 root 权限运⾏的程序
⽤户安装的软件
弱⼝令或者明⽂密码
只能内部访问的服务
suid 和 guid 错误配置
滥⽤ sudo 权限
以 root 权限运⾏的脚本⽂件
错误的路径配置
计划任务
未挂载的⽂件系统
NFS 共享
通过键盘记录仪窃取密码
其它有⽤的和提权相关的东⻄
内核提权
xml格式化css代码24、列举出您所知道的所有开源组件⾼危漏洞 (⼗个以上)
Tomcat
Nginx
周边街景怎么看
Apache
Hadhoop
Docker
Jenkins
Zenoss
Jboss
MongoDB
Redis
GlassFish
25、反弹 shell 的常⽤命令?⼀般常反弹哪⼀种 shell?为什么?
nc -lvvp 7777 -e /bin/bash
bash 是交互式, 否则像 useradd ⽆法执⾏交互
26、CMD 命令⾏如何查询远程终端开放端⼝
htmlcheckbox选中tasklist /svc
netstat -ano
27、服务器为 IIS+PHP+MySQL,发现 root 权限注⼊漏洞,讲讲你的渗透思路
可以读取 IIS 信息,知道路径, 如果像 WAMMP 类似构建,通过 @@datadir 知道数据库路径也可以猜测⽹站路径。或者直接写 Shell
28、请写出 Mysql5 数据库中查询库’helloworld’中’users’表所有列名的语句
select COLUMN_NAME from information_schema.COLUMNS where table_name =
'your_table_name' and
table_schema = 'your_db_name';
29、下⾯这段代码存在漏洞吗?如果存在请说出存在什么漏洞并利⽤<?php
$s_func = $_GET['s_func'];
$info = $_GET['info'];
$s_func($info);
>
代码执⾏, 通过 assert 调⽤
30、udf 提权
MySQL 可以⾃定义函数, 通过⾃定义函数做到类似 xp_cmdshell 效果
>abap开发是什么意思
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论