渗透测试面试题
https://github.com/h4m5t/Sec-Interview
1、include、include_once、require、 require_once区别
参考答案:
1、require()和require_once()函数:
(1)require()函数引入文件不存在时,将立即退出程序,不再向下执行。
(2)require()函数当文件已经存在时,则还是会重复的引入;require_once()会先判断文件是否包含过了,如果已经包含过则不会再重复引入。
2、include() 函数和include_once()函数
(3)include()函数和include_once()函数引入文件不存在时,不会立即退出程序,会继续向下执行。
(4)include函数当文件已经存在时,则还是会重复的引入;include_once()会先判断文件是否包含过了,如果已经包含过则不会再重复引入。
2、相对路径和绝对路径的区别
参考答案:
绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe
相对路径:是从当前路径开始的路径
3、全局变量和超全局变量的区别
参考答案:
1、全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。
2、超全局变量作用域在所有脚本都有效
4、拿到一个待检测的站,你觉得应该先做什么? 参考答案:
参考答案:
收集信息whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、***、维护者信息另说...
5、mysql的网站注入,5.0以上和5.0以下有什么区别
参考答案:
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
5.0以下是多用户单操作,5.0以上是多用户多操做。
6、在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
参考答案:
丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。
用邮箱做关键词进行丢进搜索引擎。
利用搜索到的关联信息找出其他邮进而得到常用社交账号。
社工找出社交账号,里面或许会找出管理员设置密码的习惯 。
利用已有信息生成专用字典。
观察管理员常逛哪些非大众性网站,拿下它,你会得到更多好东西。
4.判断出网站的CMS对渗透有什么意义?
参考答案:
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。
5.一个成熟并且相对安全的CMS,渗透时扫目录的意义?
参考答案:
敏感文件、二级目录扫描
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
6.常见的网站服务器容器。
参考答案:
IIS、Apache、nginx、Lighttpd、Tomcat
7.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
参考答案:
root权限以及网站的绝对路径。
8.目前已知哪些版本的容器有解析漏洞,具体举例。
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是从右往左判断后缀
lighttpd
xx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!
9.如何手工快速判断目标站是windows还是linux服务器?
参考答案:
linux大小写敏感,windows大小写不敏感。
10.为何一个mysql数据库的站,只有一个80端口开放?
参考答案:
1、更改了默认端口号
2、***拦截无法扫描出来。
3、站库进行了分离。
4、3306端口不对外开放
11.3389无法连接的几种情况。
参考答案:
1、没开放3389 端口
2、端口被修改
3、防护拦截
4、处于内网(需进行端口转发)
12.如何突破注入时字符被转义?
参考答案:
宽字符注入
hex编码绕过
13.在某后台新闻编辑界面看到编辑器,应该先做什么?
参考答案:
查看编辑器的名称版本,然后搜索公开的漏洞。
14.拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?
参考答案:
能做的事情很多,用隐藏网马来举例子:
插入
<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>
.jpg文件会被解析成.php文件。
具体其他的事情,不好详说,建议大家自己去搜索语句来玩玩。
15.注入漏洞只能查账号密码?
参考答案:
1、查询账号密码只是一部分,只要权限够大,能做任何事情。
16.安全狗会追踪变量,从而发现出是一句话木马吗?
参考答案:
安全狗主要是是根据特征码进行判断
17. access 扫出后缀为asp的数据库文件,访问乱码。如何实现到本地利用。
参考答案:
迅雷下载,直接改后缀为.mdb。
18. 提权时选择可读写目录,为何尽量不用带空格的目录?
参考答案:
因为exp执行多半需要空格界定参数
19.某服务器有站点A,B 为何在A的后台添加test用户,访问B的后台。发现也添加上了test用户?
参考答案:
同数据库。
19. 注入时可以不使用and 或or 或xor,直接order by 开始注入吗?
参考答案:
and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省那步骤去。
21.某个防注入系统,在注入时会提示:
系统检测到你有非法注入的行为。
已记录您的ip xx.xx.xx.xx
时间:2016:01-23
提交页面:test.asp?id=15
提交内容:and 1=1
如何利用这个防注入系统拿shell?
在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。具体文章参见
http://ytxiao.lofter.com/post/40583a_ab36540
22.上传大马后访问乱码时,有哪些解决办法?
参考答案:
浏览器中改编码。
23.审查上传点的元素有什么意义?
参考答案:
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。
24. 目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
参考答案:
先爆破用户名,再利用被爆破出来的用户名爆破密码。
其实有些站点,在登陆处也会这样提示
所有和数据库有交互的地方都有可能有注入。
25.目标站发现某txt的下载地址为Client Validation,你有什么思路?
这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。
26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
参考答案:
直接在网站二级目录/abc/下扫描敏感文件及目录。
27.在有shell的情况下,如何使用xss实现对目标站的长久控制?
参考答案:
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。
在登录后才可以访问的文件中插入XSS脚本。
28.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
参考答案:
审查元素 把密码处的password属性改成text就明文显示了
29.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
参考答案:
原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过
30.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
参考答案:
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到<hws>内容<hws>。
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==
DATA有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成测试
34、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?
参考答案:
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell
使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高
通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
35、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
参考单:
1、XSS跨站点脚本攻击
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。
修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
3、CSRF 跨站点脚本攻击
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。
修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer
3、CSRF 跨站点脚本攻击
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。
修复方式:XML解析库在调用时严格禁止对外部实体的解析。
36、CSRF、SSRF和重放攻击有什么区别?
参考答案:
CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包进行重放,达到身份认证等目的
37、说出至少三种业务逻辑漏洞,以及修复方式?
参考答案:
1、密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码
2、身份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到 Session 或 Cookie 即可伪造用户身份
3、验证码漏洞中存在验证码允许暴力破解、验证码可以通过 Javascript 或者改包的方法来进行绕过
38、圈出下面会话中可能存在问题的项,并标注可能会存在的问题?
get /ecskins/demo.jsp?uid=2016031900&keyword=”hello world”
HTTP/1.1Host:*******.com:82User-Agent:Mozilla/
5.0 Firefox/40Accept:text/css,*/*;q=0.1
Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3
Referer:http://*******.com/eciop/orderForCC/
cgtListForCC.htm?zone=11370601&v=145902
Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;
uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;
st_uid=N90PLYHLZGJXI-NX01VPUF46W;
status=True
Connection:keep-alive
39、Apache解析漏洞
它 是从右到左开始判断解析,如果为不可识别解析,就再往左判断.
比如upupimage.php.owf.rar “.owf”和”.rar”?这两种后缀是apache不可识别解析,apache就会把upupimage.php.owf.rar解析成php.
40、IIS解析漏洞
一是IIS5.x/6.0中的/xx.asp/xx.jpg ,网站下建立文件夹的名字为.asp、.asa 的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。
二 是123.asp;.jpg会被服务器看成是123.asp,IIS6.0 默认的可执行文件除了asp还包含这三种/upupimage.asa/upupimage.cer /upupimage.cdx
41、nginx解析漏洞
一是nginx默认Fast-CGI开启状况下,上传一个名字为upupimage.jpg,内容为<?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>的文件,然后访问upupimage.jpg/.php,在这个目录下就会生成一句话木马 shell.php。
二是Nginx在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码,影响版:0.5.,0.6.,0.7 <= 0.7.65, 0.8 <= 0.8.37
41、找一类你最擅长的漏洞,谈下绕过漏洞修复后的方案?
42、你常用的渗透工具有哪些,最常用的是哪个?
43、描述一个你深入研究过的 CVE 或 POC。
44、谈谈你经常关注的安全平台?
#面试##渗透测试##网络安全##深信服##秋招#