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 端口开放?
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.0、IIS7.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.x3,Apache 是从右往左判断后缀
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
10、说一次你映像比较深的渗透测试经历
在Wooyun或其他网站上找个有技术含量的案例背下来
联系我免费领取!2023完整版渗透测试面试题!