一些渗透测试基础面试题

收集自互联网

(1)SQL注入的成因、代码层防御方式
对用户输入未进行完整过滤就将其拼接到SQL语句中,addslashes()函数可以过滤单双引号、反斜线和空或者用intval()函数将变量里所有字符串移出,只返回数字部分。

(2)XSS的成因、代码层防御方式、写出3条xsspayload:
对用户往Web页面输入部分过滤不严格导致攻击者可以插入恶意js代码。Httpspecialchars()会将输出HTML标记实体转义。

Payload:<img src=@ onerror=javascript:alert(/xss/)>

<svg><script>alert(/1/)</script>

Onfocus=alert(/xss/)

(3)mysql的网站注入,5.0以上和5.0以下有什么区别?
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
5.0以下是多用户单操作,5.0以上是多用户多操做。
(4)在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。(基本都死了)
社工找出社交账号,里面或许会找出管理员设置密码的习惯 。
利用已有信息生成专用字典。
观察管理员常逛哪些非大众性网站,拿下它,你会得到更多好东西。
 (5)判断出网站的CMS对渗透有什么意义?
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。
(6)一个成熟并且相对安全的CMS,渗透时扫目录的意义?
敏感文件、二级目录扫描
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
(7)常见的网站服务器容器
IIS、Apache、nginx、Lighttpd、Tomcat

(8)mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
 root权限以及网站的绝对路径。

(9)如何手工快速判断目标站是windows还是linux服务器?
linux大小写敏感,windows大小写不敏感。

(10)为何一个mysql数据库的站,只有一个80端口开放?
更改了端口,没有扫描出来。
站库分离。
3306端口不对外开放
(11)3389无法连接的几种情况。
 没开放3389 端口
端口被修改
防护拦截
处于内网(需进行端口转发)
(12)如何突破注入时字符被转义?
宽字符注入
hex编码绕过
(13)在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞。

(14)拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?
   .htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令。
    .htaccess主要的作用有:URL重写、自定义错误页面、MIME类型配置以及访问权限控制等。主要体现在伪静态的应用、图片防盗链、自定义404错误页面、阻止/允许特定IP/IP段、目录浏览与主页、禁止访问指定文件类型、文件密码保护等。
       .htaccess的用途范围主要针对当前目录。
可以插入解析信息:
<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>
这样就制造了个apache解析漏洞。

(15)提权时选择可读写目录,为何尽量不用带空格的目录?
因为exp执行多半需要空格界定参数

(16)某个防注入系统,在注入时会提示:
系统检测到你有非法注入的行为。

已记录您的ip xx.xx.xx.xx

时间:2016:01-23

提交页面:test.asp?id=15

提交内容:and 1=1
如何利用这个防注入系统拿shell?

在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。

(17)上传大马后访问乱码时,有哪些解决办法?
浏览器中改编码

(18)目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码。
其实有些站点,在登陆处也会这样提示
所有和数据库有交互的地方都有可能有注入。
(19)目标站发现某txt的下载地址为http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
这是下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。

(20)甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
直接在网站二级目录/abc/下扫描敏感文件及目录。

(21)在有shell的情况下,如何使用xss实现对目标站的长久控制?
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。
在登录后才可以访问的文件中插入XSS脚本。
(22)目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过

(23)审查元素得知网站所使用的防护软件,你觉得怎样做到的?
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到<hws>内容<hws>。

(24)在win2003服务器中建立一个 .zhongzi文件夹用意何为?
隐藏文件夹,为了不让管理员发现你传上去的工具。

(25)HTTP状态码
301   URL 重定向,永久移动

302   URL 重定向,临时移动

400   客户端请求有语法错误,不能被服务器理解

401   请求未经授权

403   服务器收到请求,但是拒绝服务

500   服务器内部错误

503   服务器当前不能处理客户端请求,一段时间后可能恢复正常

(26)灰鸽子是一个什么软件能够实现什么功能
灰鸽子就是一款远程控制和管理计算机的工具!它的功能有:

1.对远程计算机文件管理:模枋 Windows 资源管理器,可以对文件进行复制、粘贴、删除,重命名、远程运行等,可以上传下载文件或文件夹,操作简单易用。
2.远程控制命令:查看远程系统信息、剪切板查看、进程管理、窗口管理、键盘记录、服务管理、共享管理、代理服务、MS-Dos模拟(telnet)!
3.捕获屏幕
4.视频监控
5.语音监听和发送
6.键盘记录
7.注册表模拟器
8代理服务
9.命令广播
(27)请模拟一次对大型商业网站的攻击,请写出你的思路和基本步骤
收集信息,多利用搜索引擎.
对服务器进行常规扫描:包括开放端口,常规弱口令(sql,ftp,smtp…),系统溢出漏洞等等;
看看能不能进行脚本注入攻击; 网站登陆口有没有弱口令; 有没有论坛,留言本之类的; 有没有上传漏洞;
能不能暴库
如果能知道网站脚本程序,搜索相关信息,能下载到源码的,可以下载回本机研究;
网站一级目录没有收获,可以查询二级目录进行新一轮攻击尝试; 看看服务器有没有绑定其他网站域名,旁注; 网站服务器没办法突破,可以扫同一网段的机子,如果能入侵其中一台,嗅探.
(28)XXE漏洞的原理、危害、防御方法
XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。

XML文件作为配置文件(Spring、Struts2等)、文档结构说明文件(PDF、RSS等)、图片格式文件(SVG header)应用比较广泛,此外,网上有一些在线XML格式化工具也存在过问题

xxe漏洞检测
第一步检测XML是否会被成功解析:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ANY [
<!ENTITY name "my name is guolala">]>
<root>&name;</root>
如果页面输出了my name is guolala,说明xml文件可以被解析。


第二步检测服务器是否支持DTD引用外部实体:

<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE ANY [
<!ENTITY % name SYSTEM "http://localhost/index.html">
%name;
]>
可通过查看自己服务器上的日志来判断,看目标服务器是否向你的服务器发了一条请求test.xml的请求。

 

如果支持引用外部实体,那么很有可能是存在xxe漏洞的。

xxe漏洞修复和防御
php:

libxml_disable_entity_loader(true);
JAVA:

DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
Python:

from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
过滤用户提交的XML数据:

过滤关键词:<!DOCTYPE和<!ENTITY,或者SYSTEM和PUBLIC。

 

(29)SSRF漏洞
是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

如何寻找SSRF漏洞
从 Web 功能上寻找

1)分享:通过URL地址分享网页内容
2)图片加载与下载:通过URL地址加载或下载图片
3)图片、文章收藏功能
从 URL 关键字寻找
大致有以下关键字:

share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain

如果利用 google 语法加上这些关键字去寻找 SSRF 漏洞,耐心的验证,现在还是可以找到存在的 SSRF 漏洞

防御方法
1,过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

2, 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。

3,限制请求的端口为http常用的端口,比如,80,443,8080,8090。

4,黑名单内网ip。避免应用被用来获取获取内网数据,攻击内网。

5,禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。

 

(30)如何做扫描器-思路-为什么要这么设计
通过连接测试服务端口可以判断端口是否开放

(1) TCP 全连接扫描
尝试与目标主机建立正常的TCP三次握手,如果能建立三次握手,说明目标端口开放,但是扫描过程容易被检测到。

(2) TCP SYN 扫描 ( TCP 的半连接扫描)
利用 TCP 前两次握手,如第二次握手回复了,则证明端口开放,因为没有第三次握手建立连接,降低了被发现的可能,同时提高了扫描性能

(3) TCP FIN 扫描
向目标主机发送 FIN 标志位为 1 的数据包进行探测。

如果目标端口开放,则丢弃此包,不进行回应

若未开放,则返回一个 RST 标志位为 1 的数据包

这种扫描更隐秘又叫秘密扫描通常用于 UNIX 操作系统主机

有的 Windows 主机 ( Windows NT ),不论端口是否开放都回复 RST。

(4) UDP 的 ICMP 端口不可达扫描
用 UDP 协议向目标主机 UDP 端口发送探测数据包。

如果目标端口未打开,会返回一个 ICMP_PORTUNREACHABLE 错误。

根据是否收到这个消息,可以发现关闭的 UDP 端口

(5) ICMP 扫描
用 ICMP 协议向目标主机发送一个协议存在错误的 IP 数据包

根据反馈的 ICMP 信息判断目标主机使用的网络服务和端口

(6) 乱序扫描和慢速扫描
将扫描端口的顺序打乱,降低扫描速度,躲避防火墙和入侵检测系统的检查

(31)Jsonp劫持漏洞的原理、利用方式、防御方法
JSON 劫持又为“ JSON Hijacking ”,这里其实是属于CSRF的范畴。攻击者可以在自己的站点中写入一条访问Json的JS,在用户Cookie未过期的情况下,Json中会返回敏感的用户信息,然后攻击者可以获取到数据,并发送到自己的站点。

 

(32)请说明电商系统的加车、下单、支付过程中,常见的逻辑漏洞有哪些,如何挖掘?
登录系统,结算商品提交订单确认支付时,用burp抓取数据包,修改金额的参数,跳转到支付页面,看实际支付金额是否被修改。

 

(33)逻辑漏洞
1.订单金额任意修改

2.验证码回传

3.未进行登陆凭证验证

4.接口无限制枚举

5.cookie设计存在缺陷

6.找回密码存在设计缺陷

7.单纯读取内存值数据来当作用户凭证

https://www.freebuf.com/vuls/112339.html
 

(34)什么是同源策略,有什么作用?同源策略中Access-Control-Allow-Origin的作用是什么?
所谓同源,就是指两个页面具有相同的协议、主机(也常说域名)、端口,三个要素缺一不可。

限制范围:
1.cookie、localstorage和indexDB无法读取。
2.Dom无法获得。
3.AJAX请求不能发送。
虽然限制很必要但是有些合理的用途也会受到影响,比如同站点下的不同域名不能共享cookie。

有什么作用
浏览器出于安全方面的考虑,不允许跨域调用其他页面的对象,防止恶意网站盗窃数据。但在安全限制的同时也给注入iframe或是Ajax应用上带来了不少的麻烦,所以有时候就必须跨域。

Access-Control-Allow-Origin
Access-Control-Allow-Origin是HTML5中定义的一种解决资源跨域的策略。

他是通过服务器端返回带有Access-Control-Allow-Origin标识的Response header,用来解决资源的跨域权限问题。

 

(35)CSRF的成因、利用方式、哪些功能容易有CSRF,防御方法
成因
攻击者通过构造好的URL可以伪造用户执行操作。

CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用

防御
CSRF的防御可以从服务器和客户端两方面着手,防御效果是从服务器着手效果比较好,现在的CSRF防御也都在服务器端进行的。

1.Cookie Hashing(所有表单都包含同一个伪随机值):
2.验证码
3.验证 HTTP Referer 字段

4.Anti CSRF Token

 

(36)Mysql导出php一句话木马
select  ’<?php eval($_POST[cmd]);?>’  into outfile ’e:/www/eval.php’;

 

posted @ 2019-05-21 16:31  卿先生  阅读(2866)  评论(0编辑  收藏  举报