2023常见渗透测试面试题

1、判断出网站的 CMS 对渗透有什么意义?

查找网上已曝光的程序漏洞。如果开源,还能下载对应的源码进行代码审计。

2、Nmap 主要功能有那些,扫描的几种方式、绕过 ping 扫描、漏洞检测等

(1)四大功能:分别为主机发现(参数-sn)、端口扫描(-sS -sU)、版本侦测(–sV)、

OS 侦测(-O)

(2)扫描方式有:

tcp connect()

这种方式最简单。直接与被扫描的端口建立tcp链接,如果成功,则说明端口开放,如果不成功则说明端口关闭的。这种扫描的特点是与被扫描端口建立完成的tcp链接,完整的tcp三次握手。优点主要是不需要root权限即可扫描端口。因为connect可以在用户态直接调用

TCP SYN scanning

这种扫描方式又被称为tcp半开放扫描。顾名思义,这种扫描不需要建立完整的tcp连接,即可扫描端口的状态。发送tcp syn数据包,这个也是tcp握手的第一个包。如果端口开放,则会返回 tcp syn+ack数据包。如果端口关闭,则返回 tcp rst数据包。这样我们就不用进行tcp 握手的第三步,也可以探测端口的状态。这种扫描需要构建raw socket。所以需要root权限

TCP FIN scanning

有些时候防火墙绘过滤tcp syn数据包,有些时候会记录syn数据包并检测时候有nmap扫描。这时候可以使用TCP FIN scanning。这种方式很简单。发送tcp FIN数据包到待测端口。如果返回RST数据包,则说明该端口关闭,如果无返回则说明该端口开放。这时tcp协议的一个BUG,所以这种扫描方式不一定百分之百可靠(例如windows),但是这种扫描方式适合大部分 *NIX 系统。

TCP NULL, FIN, and Xmas scans

在RFC 793的第65页写到,如果目的端口的是关闭的,并且接受到的tcp数据包如果可能会导致系统错误,则返回RST。如果开放的端口接受到诸如SYN RST ACK,则丢弃或者不做任何处理。根据此RFC描述,我们可以发送不包含SYN RST或者ACK标志的数据包,如果返回RST则说明端口是关闭状态,如果什么都没有返回则说明端口是开放状态。

Null scan

tcp flag headers 全为0

FIN scan

只设置tcp FIN标志

xmas scan

同时设置FIN PSH URG标志位。

上面这三种扫描的结果都是一致的,如果接受到到RST,则说明端口是关闭的。如果无响应,则端口可能是开放或者filteted状态。如果返回icmp unreachable error(type 3, code 0, 1, 2, 3, 9, 10, 13),则说明端口一定是filtered的。

TCP ACK scan

这种扫描只设置tcp ack标志位。这种扫描一般来探测防火墙是否过滤被扫描的端口。如果扫描的端口未被防火墙保护,那么无论是开放或者是关闭,都会返回RST。nmap将该端口标记为未被封锁的(unfiltered),但是不能确定该端口是开放或者关闭状态。如果无响应,或者返货icmp error,则该端口一定被防火墙封锁了

TCP Window scan

tcp窗口扫描,如果接收到RST,则说明端口封锁了。在某些操作系统,开放的端口会返回一个正数的tcp窗口值,如果端口关闭,则返回tcp窗口值为0或者负数。但是这种扫描不是很靠谱

TCP Maimon scan

这种扫描为发送同时设置FIN/ACK的数据包。如果返回RST,则说明端口是开放的,如果无响应,则是关闭状态的。

IP protocol scan

这种是专门扫描ip协议的。扫描类似于udp扫描,如果IP协议号不存在,返回 icmp错误。具体没用过,不太好写

UDP ICMP port unreachable scanning

如果udp端口开放,则无响应。如果udp端口关闭,则会返回icmp unreachable error错误。这种扫描需要root权限,因为需要构建raw socket。

UDP connect扫描

这种直接一个一个建立udp连接,如果能建立,则说明端口开放,不能建立则端口关闭。

(3)绕过 ping 扫描参数为:nmap -Pn XXX.XXX.XXX.XXX

(4)漏洞检测可直接 nmap 目标 --script=auth,vuln

3、mysql 注入点,用工具对目标站直接写入一句话,需要哪些条件?

Root权限、网站的绝对路径、需要数据库开启secure_file_priv相当于secure_file_priv的值为空,不为空不允许写入webshell(默认不开启,需要修改my.ini配置文件)

4、为何一个 mysql 数据库的站,只有一个 80 端口开放?

  1. 更改了数据库端口,没有扫描出来
  2. 站库分离
  3. 3306端口不对外开放

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

union select "",2 into outfile

"C:\\phpStudy\\WWW\\123.php"+--+&Submit=Submit

6、目前已知哪些版本的中间件有解析漏洞,具体举例

IIS6.0

文件夹目录解析 /xx.asp/xx.jpg "xx.asp"是文件夹名,这样只要在 xx.asp 目录下面的任意文件都会当脚

本解析。

xx.asp;.jpg 通过上传功能传到网站目录,直接会当作 asp 脚本执行。

IIS 7.0IIS7.5

默认 Fast-CGI 开启,直接在 url 中图片地址后面输入/1.php,会把正常图片当成 php 解析

Nginx

版本小于等于 0.8.37,利用方法和 IIS 7.0/7.5 一样,Fast-CGI 关闭情况下也可利用。

空字节代码 xxx.jpg.php

Apache

上传的文件命名为:test.php.x1.x2.x3Apache 是从右往左判断后缀

lighttpd

xx.jpg/xx.php 与上面一样

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

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

CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer

XXE和XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析

CSRF与XSS区别:

方向不一样

xss主要通过劫持用户信息,主动地去通过劫持的用户信息,去进行攻击

csrf主要通过伪造请求,将自己的请求伪装成正常请求,通过用户去访问正常网站

对象不一样

xss主要攻击客户端

csrf主要通过伪装去访问服务端

方法不一样

xss不需要登录,直接在页面进行语句构造进行攻击或者脚本攻击

csrf需要有被伪装攻击用户的登录信息

8、本地包含与远程包含的区别?

本地包含只需要找个上传点,把图片木马上传到对方服务器,通过本地包含漏洞直接包含木马脚本木马就可以运行webshell,远程包含需要服务器php关闭魔术符号与开启远程包含功能才行。

9、渗透过程中如何找到 Waf、CDN 真实 IP

  1. ping一个不存在的二级域名
  2. 查看IP与域名绑定的历史记录,可能会存在使用CDN钱的记录
  3. 观看IP变化
  4. 查询子域名
  5. 利用SSL证书寻找真实原始IP
  6. 网站漏洞查找
  7. 网站邮件订阅查找
  8. 通过国外服务器ping对方网站,国内很多CDN厂商在国外没做CDNjaisu
  9. 用Zmap扫全网、DDOS把CDN流量打光

10、说一次你映像比较深的渗透测试经历

在Wooyun或其他网站上找个有技术含量的案例背下来

联系我免费领取!2023完整版渗透测试面试题!

你可能感兴趣的:(网络,安全,web安全,面试)