渗透测试网安面试题汇总
为了应对校招,我有点心虚,所以花了几天时间整理了一些网安面试题--首发土司论坛
希望对大家能有所帮助(比较基础的漏洞原理和防护绕过就先过滤了--大家应该都耳熟能详了):
1、JWT(json web token)攻击手法(头部、负载、签名)?
未校验签名 解码后换内容再编码
禁用哈希 算法修改为none
暴破弱密钥
操纵Key ID 原因是key ID 里的内容可能被作为参数进数据库或者查询 (SQL注入、目录遍历、命令注入)
2、如何实现跨域?
jsonp跨域
CORS跨域
代理跨域请求(CDN)
Html5 postMessage 方法
修改 document.domain 跨子域(可跨同级域或父域)
基于 Html5 websocket 协议
3、jsonp跨域和CORS跨域的区别?(严格说这两种都属于CSRF漏洞)
jsonp是jquery提供的跨域方式
cors是w3c提供的一个跨域标准
——————————————————————
jsonp只支持get方式的跨域
cors支持get和post方式的跨域
——————————————————————
jsonp支持所有的浏览器(因为所有浏览器都可以使用script标签发送请求)
cors不支持IE10以下的浏览器
4、SSRF漏洞利用
本地:
文件读取:file:///etc/passwd
使用dict协议获取Redis配置信息:dict://127.0.0.1:6379/info
使用gopher协议一键反弹Redis(未授权访问) shell fastcgi
攻击内网中比较脆弱的服务:Redis、数据库、fastcgi等
远程:
读文件发送到远程服务器
跳板
5、DNS外带可以用在那些漏洞?
sql
盲XXE和SSRF
XSS无回显
命令执行无回显
6、数据库种类?
关系型数据库(SQL):MySql、Oracle、MSSQL、Access、Sqlite、postgersql
非关系型数据库(NO SQL):mongodb、Redis
Xml文件:Xpath注入
7、SQL和NoSQL的区别?
SQL优点:结构稳定、逻辑性强、易于理解
SQL缺点:不适于高并发、不适于海量数据高效读写、维护开销大、相对nosql速度慢
NoSql优点:易扩展、数据结构灵活、查询速度快
比较:没有好坏之分,只看应用环境。关系型数据库可靠性更强、适用于银行等数据精度要求高的环境。非关系型数据库适用于高并发、大量数据库交互、数据准确度不高的环境。
8、文件上传绕过?
轻量级检测绕过
a.绕过前端JavaScript检测:使用Burp抓包改包。
b.绕过服务器端MIME类型检测:使用Burp抓包改包。
路径/文件扩展名检测绕过
a.黑名单检测方式
大小写、扩展名(php4)
特殊文件名绕过;
0x00截断绕过;
.htaccess文件攻击(windows流)
b.白名单检测方式
截断绕过
Content-Disposition: form-data; Content-Type: application/octet-stream
这两项 加减空格 变换大小写 字符串拼接(form-data->form-da+ta)
双文件上传
上传木马时,提示格式错误 直接抓包修改Content-Type 为正确的格式尝试绕过
文件内容检测:
1、正常图片末尾添加一句话木马
2、二次渲染
3、文件头检测
PNG 的文件头为十六进制的 89 50 4E 47 0D 0A 1A 0A
GIF 为 47 49 46 38 37 61 GIF89a
JPG 为 FF D8 FF E0
文件编辑器上传:FCKEditor、Ewebeditor、UEditor、KindEditor、XHditor
9、open_basedir访问目录限制绕过方法?
利用命令执行函数bypass(system(‘cat /etc/passwd’);
推特最新Bypass(chair()函数改变工作目录)
mkdir(“/tmp/fuck”);
chdir(‘/tmp/fuck/‘);
ini_set(‘open_basedir’,’..’);
chdir(‘..’);
chdir(‘..’);
chdir(‘..’);
chdir(‘..’);
ini_set(‘open_basedir’,’/‘);
var_dump(file_get_contents(“/etc/passwd”));
glob伪协议
<?php
$a = “glob:///var/www/test/.txt”;
if ( $b = opendir($a) ) {
while ( ($file = readdir($b)) !== false ) {
echo “filename:”.$file.”\n”;
}
closedir($b);
}
?>
10、php爆绝对路径方法?
单引号爆路径
错误参数值爆路径
www.xxx.com/researcharchive.php?id=-1
Google爆路径
Site:xxx.edu.tw warning
测试文件爆路径(test.php、1.php、ceshi.php、info.php)
phpmyadmin爆路径
/phpmyadmin/libraries/lect_lang.lib.php
配置文件找路径
11、常见后门方式?
windows:
1.替换系统文件类(shift后门,放大镜后门)
2.修改注册表类
自启动项、屏幕保护程序注册表、用户登陆初始化、映像劫持、影子账户、文件关联
3.文件类
自启动文件夹、office启动劫持
4.计划任务 schtasks 、WMI、bitsadmin
Linux
1.预加载型动态链接库后门
2.SSH 后门
3.SUID后门
4.vim后门
5.PAM后门
6.进程注入
7.Rootkit
8.端口复用
12、发现IIS的网站,怎样试它的漏洞?(根据版本)
1、IIS5.0/6.0/7.5解析漏洞
2、IIS7.5 NET源代码泄露和身份验证漏洞
3、IIS7.5ASP验证绕过
4、IIS 6.0安装PHP绕过认证漏洞/IIS PUT (webDAV)这应该算是一个配置漏洞吧
13、如果存在 SQL 注入怎么判断不同的数据库?
(1)注释符判断
/是 MySQL 中的注释符,返回错误说明该注入点不是 MySQL;
继续提交如下查询字符:–是 Oracle 和 MSSQL 支持的注释符,如果返回正常,则说明为这两种数据库类型之一。
继续提交如下查询字符:;是子句查询标识符,Oracle 不支持多行查询,因此如果返回错误,则说明很可能是 Oracle 数据库。
(2)函数判断
and (select count()from MSysAccessObjects)>0 access 数据库
and (select count()from sysobjects)>0 返回正常说明是 mssql 数据库
and length(user())>10 返回正常说明是 Mysql
Oracle 可以根据 from dual 虚拟库判断
(3)根据语言和中间件常识
Asp和.net通常使用sqlserver
Php通常使用mysql或者postgresql
Java通常是oracle或mysql
IIS服务器是基于windows的架构,后台数据库有可能是sqlserver
Apache服务器,可能使用开源数据库mysql或postgresql
14、鱼叉式攻击和水坑攻击?
鱼叉式钓鱼攻击一般通过电子邮件等电子通信方式进行,针对特定个人、组织或企业,窃取的资料信息更敏感更有价值。主要通过诱使点击恶意连接或者输入账号密码获取信息。
水坑攻击算是鱼叉攻击的延伸:
攻击者定期观察受害者或特定团体经常访问的网站,然后用恶意软件感染这些网站。
然后寻找这些网站的漏洞,并将恶意编程代码(通常以JavaScript或HTML形式)注入到网站上显示的广告或横幅上。
然后恶意代码会将受害者重定向到存在恶意软件或恶意广告的网络钓鱼网站上。
当受害者访问这些网站时,受害者的计算机就会自动下载包含恶意软件的脚本。
然后恶意软件会收集受害者的个人信息,并将其发送给攻击者操作的C&C服务器。
其他的钓鱼方式:
钓鱼WiFi、伪基站、钓鱼二维码、U盘钓鱼
15、中间件漏洞总结?
(一) IIS
1、PUT漏洞
2、短文件名猜解
3、远程代码执行
4、解析漏洞
(二) Apache
1、解析漏洞
2、目录遍历
(三) Nginx
1、文件解析
2、目录遍历
3、CRLF注入
4、目录穿越
(四)Tomcat
1、远程代码执行
2、war后门文件部署
(五)jBoss
1、反序列化漏洞
2、war后门文件部署
(六)WebLogic
1、反序列化漏洞
2、SSRF
3、任意文件上传
4、war后门文件部署
(七)其它中间件相关漏洞
1、FastCGI未授权访问、任意命令执行
2、PHPCGI远程代码执行
16、XSS?(XSS的根源主要是代码层没有对输入输出做好过滤)
反射性XSS都是把恶意数据传入服务器,不过滤再回传浏览器造成的;
DOM型XSS主要是通过改变浏览器页面的DOM节点形成的,可能不会经过服务器(PHP_SELF)
存储型XSS主要是从数据库里取出来输出到浏览器时没有做实体化编码过滤。
XSS蠕虫的产生条件:(不一定需要存储型XSS)
一个是产生XSS点的页面不属于self页面
用户之间产生交互行为的页面
XSS防护
处理输出编码,js转译.实体化编码
黑白名单过滤(编码限制,标签限制,符号限制)
跨域限制
CSP内容安全策略(浏览器前端防护策略) 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。将同源同域发挥到极致。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。主要防止XSS漏洞,但是不能杜绝XSS。
绕过:
Html5新标签属性
JavaScript伪协议
编码混淆
17、中间人攻击(Burp抓包原理)?
中间人攻击是一个(缺乏)相互认证的攻击;由于客户端与服务器之间在SSL握手的过程中缺乏相互认证而造成的漏洞 (攻击方式SSLSniff、SSLStrip)
防御中间人攻击的方案通常基于以下几种技术:
1.公钥基础建设PKI 使用PKI相互认证机制。
2.延迟测试
使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费20秒来计算,并且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中间人。
3.使用其他形式的密钥交换形式
ARP欺骗:
原理:
每台主机都有一个ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址。在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。这样攻击者就有了偷听主机传输的数据的可能
防护
1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC
2.在网关绑定主机MAC与IP地址
3.使用ARP防火墙
18、数据库存储引擎?
数据库体系结构由客户端连接层、数据库服务层及存储引擎层组成。
存储引擎是数据库中具体与文件打交道的子系统,存储引擎底部是物理存储层,是文件的物理存储层,包括二进制日志、数据文件、错误日志、慢查询日志、全日志等。
不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能
InnoDB:主流的存储引擎。(MySQL)
MyISAM:访问速度快,不支持事务,逐渐被淘汰
MEMORY:BTREE索引或者HASH索引。
19、https的建立过程、TCP三次握手四次挥手过程、OSI四层网络模型及其各层协议、还有个七层模型?
这些个结合图记忆吧,搜一搜 应该好多的
20、PHP代码审计中容易出问题的点?
详见:
https://github.com/bowu678/php_bugs
https://github.com/hongriSec/PHP-Audit-Labs
1、弱类型(比较、字符类型转换)
intval函数四舍五入(小数取整绕过)
intval函数转换字符串
if($a>1000){
mysql_query(‘update … …. set value=$a’)
} //$a一定是整数。然而,你输入1002/*/union 也能进入这个语句
数组转字符串
Array转换整型int/浮点型会返回元素个数;
Array转换bool返回Array中是否有元素;
Array转换成string返回Array,并抛出warning。
MD5()函数===使用数组绕过 ?username[]=1&password[]=2 数组hash之后都是null
MD5()函数==,使用md5碰撞 ?username=s878926199a&password=s155964671a hash碰撞+弱类型
2、函数缺陷
Strcmp()函数 无法比较数组,比较时报错并返回0 PHP5.3之前版本
ereg正则%00截断 16.php?nctf=1%00%23biubiubiu 支持5.3之前版本的php之后使用preg_match()函数替代(也有绕过分析)
strpos出错返回的也是null 原来是判断字符串,我们传入一个数组返回值就是null null!=false
序列化:将php中对象、类、数组、变量、匿名函数等,转化为字符串 方便保存到数据库或者文件中(将状态信息保存为字符串)
unserialize()反序列化参数可控
iconv在字符编码转换时可能导致字符串截断。上传的文件名为shell.php{%80-%99}.jpg 上传绕过
filter_var ( url,FILTER_VALIDATE_URL )使用PHP内置特定过滤器过滤url
可能使用伪协议绕过,再次输出url时造成XSS
?url=javascript://comment%250a alert(1)
foreach 语句滥用造成的变量覆盖
3、默认缺省参数缺陷
in_array(a,array,FALSE)函数 检查数组中是否存在某个值
第三个参数默认为FALSE,若粗心的开发没有写第三个参数为true的话,比较过程只进行弱类型检查,容易产生绕过
htmlentities(string,缺省参数) 将字符转换为 HTML 转义字符
三大缺省参数:
ENT_COMPAT(默认值):只转换双引号。
ENT_QUOTES:两种引号都转换。
ENT_NOQUOTES:两种引号都不转换。
同样的若是开发人员不专心,没加缺省参数,造成单引号逃逸
21、IP伪造
由于TCP需要三次握手连接,在实现正常的TCP/IP 双方通信情况下,是无法伪造来源 IP 的,也就是说,在 TCP/IP 协议中,可以伪造数据包来源 IP ,但这会让发送出去的数据包有去无回,无法实现正常的通信 但是一些DDoS攻击可以
后端IP获取来源
REMOTE_ADDR是远端IP,默认来自tcp连接客户端的Ip。可以说,它最准确,确定是,只会得到直接连服务器客户端IP。如果对方通过代理服务器上网,就发现。获取到的是代理服务器IP了。
HTTP_X_FORWARDED_FOR 为了能在大型网络中,获取到最原始用户IP,或者代理IP地址。对HTTp协议进行扩展,定义的实体头。 后端处理若这种方法,可能会造成XFF注入和伪造IP绕过访问限制
X-Real-IP X-Forwarded-For在无代理时可以理解为用户的IP地址,有反向代理时,先将REMOTE_ADDR赋给X-Real-IP,最后可以从X-Real-IP中获取用户的IP。
CDN-Src-IP CDN节点会以某种方式将源客户端的IP传递给源服务器
22、sql注入过滤了逗号,怎么弄?
1、可以用join
select id,ip from client_ip where 1>2 union select from ((select user())a JOIN (select version())b);
2、可以用from 1 for 1
select substr(database() from 1 for 1);
select mid(database() from 1 for 1);
3、offset
select * from news limit 0,1
等价于下面这条SQL语句
select * from yang limit 1 offset 0
22、了解过websocket吗?
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
其他特点包括:
(1)建立在 TCP 协议之上,服务器端的实现比较容易。
(2)与 HTTP 协议有着良好的兼容性。
(3)数据格式比较轻量,性能开销小,通信高效。
(4)可以发送文本,也可以发送二进制数据。
(5)没有同源限制,客户端可以与任意服务器通信。
(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。
23、DDOS是什么? 非正常的数据包(syn,flood)等
分布式拒绝服务攻击(DDoS)是目前黑客经常采用而难以防范的攻击手段。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。
随着计算机与网络技术的发展,计算机的,内存大大处理能力迅速增长增加,可以缓解DDoS攻击。但是多台傀儡机同时发送也受不了。
CC攻击
模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的请求,网络拥塞,正常访问被中止。这种攻击技术性含量高,见不到真实源IP,见不到特别大的异常流量。
CC攻击与传统DDoS的不同
攻击对象不同:DDoS针对IP,CC针对网页
流量大小不同:DDoS需要的流量更大
危害不同:DDoS危害大,CC危害时间长
门槛不同:DDoS需要大量傀儡机,CC更容易利用
被攻击的服务器有以下症状
有大量等待的TCP连接;
网络中充斥着大量的无用的数据包,源地址为假;
网络拥塞,受害主机无法正常和外界通讯;
造成死机。
DDoS防护
网络设备设施(加带宽、硬件防火墙、高性能设备)
负载均衡CDN、分布式集群防御
流量清洗服务
限制特定流量、过滤不必要服务和端口
Syn洪流
向服务器发送了SYN报文后突然死机或掉线,服务器第三次握手找不到客户端,会进行重试,就是重试这个时间,一般是分钟级的
IP欺骗DOS攻击
发假IP,连接不成功,服务器清空缓存重连的时间空隙
UDP洪水攻击
无用数据流占用带宽
Ping洪流攻击
声称自己的数据包大于64K,对方服务器看到这个声称后,内存分配错误,导致TCP/IP堆栈错误而死机
Land攻击
特别打造的SYN包,它的原地址和目标地址都被设置成目标服务器地址。接受服务器向它自己的地址发送 SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时
24、当你输入一个网址会发生什么?
1)找域名对应IP(找dns、依次是浏览器缓存、系统缓存、路由器缓存、ISP缓存、递归搜索)
2)应用层-浏览器给Web服务器发送一个Http请求
3)传输层-HTTP数据包会嵌入到TCP报文中
4)网络层-TCP报文段嵌入IP数据包中
5)网络接口层-IP数据包嵌入到帧中,在网络中传输
6)网关转发到达相关服务器,请求对应端口的服务
7)服务器返回一个HTTP响应
8)浏览器以相同的步骤,读取HTTP响应的内容,解析页面
25、webshell检测思路?
静态检测 匹配特征码
动态检测 cmd bash等敏感应用异常启用
日志检测 HTTP异常请求模型检测
语法检测 关键危险函数的捕捉
计划任务 防止后门
26、GPC是什么?开启了怎么绕过
php.ini中的magic_quotes_gpc,默认为off,如何打开了,会实现addslashes()和stripslashes()的功能,对于从GET,POST,COOKIE输入的单引号、双引号、反斜线和NULL会加反斜线进行转义
绕过:
http的请求头的内容是可以在$_SERVER读取的,可将其作为传参变量
二次注入
编码解码绕过(UTF-7、GBK、二次编码等)
代码审计—单引号逃逸
27、web常用的加密算法有什么
单向散列加密 MD5、SHA、MAC
对称加密 AES、DES
非对称加密 RSA、RSA2
前端加密 RSA、MD5、AES
对称加密:加、解密使用的同是一串密钥 效率高 不安全
非对称加密:加、解密使用不同的密钥,互相加解密 效率低 安全 https就是这个
28、XSS除了获取cookies还能干嘛?
获取服务器真实ip
xss蠕虫
钓鱼攻击
前端JS挖矿
获取键盘记录
29、网络安全事件应急响应
取证,登录服务器
备份,检查服务器敏感目录
查毒(搜索后门文件 - 注意文件的时间,用户,后缀等属性),调取日志(系统日志,中间件日志,WAF日 志等);
处理,恢复备份(快照回滚,最近一次),确定入侵方法(漏洞检测,并进行修复)
溯源,查入侵IP,入侵手法(网路攻击事件)的确定等
记录,归档—-预防-事件检测-抑制-根除-恢复-跟踪-记录
通用漏洞的应对等其他安全应急事件
30、HTML5新的安全特性
iframe沙箱 默认除了显示静态页面以外,不准提交表单、不准弹窗、不准执行脚本
CSP内容安全策略
Flash加载取消
31、病毒,木马,蠕虫的区别?
病毒,木马,蠕虫统称为电脑病毒。
病毒是编制者在计算机程序中插入的破坏计算机功能或者数据的代码。
木马是指通过特定的程序来控制另一台计算机。(一句话木马)
蠕虫是一种能够利用系统漏洞通过网络进行自我传播的恶意程序。(XSS蠕虫)
病毒、蠕虫的共同特征是自我复制、传播、破坏电脑文件。
木马伪装、潜伏在电脑中、窃取资料、远程操控。
32、对于云安全的理解?
权限管理,内网威胁,信息泄露,过于依赖托管厂商
33、防止XSS,前端后端两个角度?
前端:尽量不要使用直接拼接 HTML 的方法,如果框架允许,使用 createElement之类的方法实现。或者采用比较成熟的渲染框架,如 Vue
CSP策略
后端:实体化编码、长度截取、过滤
34、虚拟机逃逸
虚拟机逃逸指的是突破虚拟机的限制,实现与宿主机操作系统交互的一个过程,攻击者可以通过虚拟机逃逸感染宿主机或者在宿主机上运行恶意软件。
35、如何防范羊毛党?
相应的活动门槛和限制(什么用户、次数)
对于有猫池、卡池的采用封IP、封用户、增加验证码、身份核验
36、Mysql一个@和两个@什么区别
一个@是 用户自定义的变量
两个@是 globa(全局变量)l或session变量
37、webshell已经上传如何禁止菜刀等工具连接
安全狗拦截、扫描木马删除、可以流量分析(蚁剑、冰蝎流量免杀)
绕过防护:改超全局变量法、改连接函数法@eval(base64_decode($_POST[action]));
38、一个互联网网站端口如何防护,发现入侵如何解决?
如何防护:防火墙、WAF、IPS(入侵防御系统)、IDS(入侵检测系统)
如何解决:关闭危险服务如SMB、RDP、数据库端口不对外网访问 封禁ip,查看日志。
39、NAT的两种模式
SNAT: 源网络地址转换
原理:修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
将内网发出的请求报文原地址转换成自己的地址发往远端服务器,对回来的响应报文在作做反向处理,类似网络代理。
DNAT:目的网络地址转换
原理:修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据包的目的地地址,如负载、端口转发和透明代理就是属于DNAT。
将内网服务端口映射在公网出口地址上。
NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机
40、企业内部安全
物理威胁:门禁、监控、禁止USB设备接入、封闭PC、定时巡检
网络威胁:部署行为管控设备、可靠的网络结构、IP和MAC地址绑定,将网络行为分组、限制不必要的软件和通信协议、定期审核日志
41、eval和system的区别?
eval类型函数是代码执行
system类型函数是命令执行
eval函数里必须是一个符合php语法的语句,如果语句结尾没有分号会报错
<?php
system(“whoami”); //whoami命令被执行
eval(“whoami”); //whoami命令不被执行
?>
<?php
eval(“phpinfo();”); //phpinfo()被执行
system(“phpinfo()”); //phpinfo()不被执行
?>
<?php
$num=1;
eval(“\$a = $num;”); //有效,$a=1
system(“\$b = $num;”); //无效,$b=NULL
?>
代码执行函数:eval、assert、call_user_func、create_function、array_map
命令执行函数:system、passthru、exec、pcntl_exec、shell_exec、popen()、``
42、python 黑科技之迭代器、生成器、装饰器
迭代器:是一种访问集合元素的一种方式。 可迭代对象 list、set和dict
生成器:保存的是算法,又叫生成器函数。
装饰器:不改变原来函数功能的基础上增加其他功能。
43、缓冲区溢出原理和防御
通过往程序的缓冲区,写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的“堆栈”,使程序转而执行其它指令,以达到攻击的目的。造成“缓冲区溢出”的原因是,程序中没有仔细检查用户输入的参数。
44、进程和线程
进程是操作系统分配资源的最小单元, 线程是操作系统调度的最小单元。
一个应用程序至少包括1个进程,而1个进程包括1个或多个线程,
每个进程在执行过程中拥有独立的内存单元,线程在执行过程中共享内存。
45、MS08-067漏洞原理分析
445端口,SMB网络服务和MSRPC网络服务相关,缓冲区溢出造成的远程代码执行
46、http代理
普通代理:这种代理扮演中间人角色 类似burp
隧道代理:HTTP 客户端通过 CONNECT 方法请求隧道代理创建一条到达任意目的服务器和端口的 TCP 连接,并对客户端和服务器之间的后继数据进行盲转发。 类似机场节点
47、MySQL 4.1/5.0/5.5各版本的主要区别?
4.1 增加了子查询的支持,字符集增加UTF-8
5.0 增加了INFORATION_SCHEMA系统数据库
5.5 默认存储引擎更改为InnoDB、引入了一种新的性能架构P_S,用于mysql监控服务器运行时的性能
48、什么是CRLF注入攻击?(%0d%0a)(\r\n)
是一种当用户将回车换行字符插入到应用中而触发漏洞的攻击技巧。
当该字符与HTTP协议请求和响应的头部一起联用时就有可能会出现各种各样的漏洞,包括http请求走私和http响应拆分。
http请求走私:
缓存毒化—攻击者可以修改缓存中的内容然后不显示正常页面而显示恶意页面。
防火墙逃逸—攻击者通过构造数据包来逃避安全检查(两个包),通常会利用CRLF和构造超大的数据包。
请求劫持—攻击者可以通过该利用获取HttpOnly的cookie和http认证数据,类似于xss但是不需要攻击者和黑客进行交互。
http响应拆分:加入一些请求头,造成类似XSS的攻击效果
49、内网黄金票据、白银票据的区别和利用方式
(1)白银票据:抓取到了域控服务hash的情况下,在客户端以一个普通域用户的身份生成TGS票据,并且是针对于某个机器上的某个服务的,生成的白银票据,只能访问指定的target机器中指定的服务。
(2)黄金票据:直接抓取域控中账号的hash,在客户端生成一个TGT票据,那么该票据是针对所有机器的所有服务
50、预编译能否100%防sql注入? 不能
预编译原理:
先将查询语句固定
通过函数将传参变为字符串
拼接字符串去执行
你的关键字根本不会当作关键字去执行
$pdo->query(‘SET NAMES gbk’);
$var = “\xbf\x27 OR 1=1 /“;
$query = ‘SELECT FROM test WHERE name = ? LIMIT 1’;
$stmt = $pdo->prepare($query);
$stmt->execute(array($var)); 类似于宽字节注入
51、reverse_tcp 和 bind_tcp 的区别?
(1)reverse_tcp 木马会主动连接目标服务器 测试机主动连接攻击机
(2)bind_tcp 木马会监听本地的端口 攻击机主动连接测试机
采用reverse的方法一般较为安全,因为是在测试机连接攻击机,所以一般不会被防火墙发现;而bind在测试机打开端口时很容易被安全软件和防火墙发现
52、谈谈对安全的理解
互联网的发展便捷了生活,也带来了安全问题
安全是相对的,打破安全壁垒的代价如果高于安全保护的价值,就可以说是安全的
渗透测试中安全的本质是一种信任机制,是否每次都对用户发来的请求做安全验证
安全是一群不走寻常路、不按常规出牌的人摸索出来的
攻防相互促进(漏洞填堵、绕过)
53、CMS指纹规则
Website 官方网站
JS文件
Headers 匹配的请求头信息
Cookies 匹配的cookies字段
Version 版本信息
Product 产品名称匹配
Meta特征
URI特征
54、如何保护dom不被修改 防止dom xss
浏览器写入页面渲染前先转义
不要使用eval函数处理不可控的外部数据 JS中
使用filter.js库 filter.js由一系列针对常见业务场景下造成DOM XSS的恶意数据开展过滤的函数组成。
55、python爬虫的常见问题
爬虫常用模块:requests、BeautifulSoup、lxml、re、xpath、selenium、
数据存储、txt/csv/mysql
Selenium(无界面浏览器)突破JS加密
传统爬虫多线程 现在提倡异步IO协程 异步IO模块主要有aiohttp、aiomysql、asyncio
推荐的爬虫策略:爬取之后写入数据库,单独写提取、过滤办法 防止需求改了重新爬取
网络池解决增量爬取、断点续爬、去重
GIL 全局解释器锁 为保证线程安全的资源锁
56、IDS/IPS防护原理及绕过思路
IDS工作在网络层,旁路部署,通过抓取和分析网络流量来发现攻击;
IPS一般也是在网络层旁路,可以理解为具备阻断能力的IDS,是IDS的升级版(也有IDS检测到攻击通知阻断设备执行阻断动作的设备联动模式),可以覆盖网络层和应用层;
WAF是在应用层防护Web攻击的程序,一般是跟Web接入层对接,可旁路可串行,仅能覆盖应用层
绕过:
1、TCP分片重组
2、IP分片Python下的组件Scapy
3、伪造TCP状态
4、IPv6 正在服役的IDS/IPS/WAF不一定支持
57、运营商(或其他)网络劫持
本地劫持:魔改浏览器(hao123)
网络劫持:运营商劫持(数据包注入广告劫持代码)、cdn缓存污染(CDN服务器中的关键JS文件被污染注入)、DNS劫持(路由器漏洞)
58、红蓝对抗中蓝队反杀红队场景和姿势?
蚁剑反杀rce、蜜罐、宏病毒诱饵
59、验证码相关利用点
1、验证码可重用 (特定账户暴力破解、CSRF)
2、验证码可识别 (特定账户暴力破解)
3、验证码在客户端生成、显示、校验 (特定账户暴力破解、CSRF)
4、空验证码绕过 (特定账户暴力破解、CSRF)
5、验证码数量有限 (特定账户暴力破解)
6、是否校验客户端可控 (特定账户暴力破解、CSRF)
7、验证码可预测 (特定账户暴力破解)
8、错误超过一定次数才开启验证码 (撞库)
60、为什么aspx木马权限比asp大?
aspx使用的是.net技术。IIS 中默认不支持,ASP只是脚本语言而已。入侵的时候asp的木马一般是guest权限…APSX的木马一般是users权限。
61、内网服务器,如何进行信息收集?
(1)手动,用一些小工具(批量看存活)
new user /domain查域、net view看共享、hosts文件内网ip域名映射、wifi记录和密码、浏览器中的密码、敏感文件、各类服务的配置文件中信息、历史命令、ssh私钥、FTP的连接信息、xshell等ssh连接工具的session文件,3389连接历史和被连接历史信息、某些内网api接口未授权访问
(2)扫描器
主机扫描、端口扫描、漏洞扫描、识别内网环境、密码爆破、抓密码
(3)留后门,抓信息
62、只有一个登录页面有哪些思路
注入、万能密码、爆破、JS里面的敏感信息(接口未授权访问)、密码找回、敏感目录,注册后尝试越权(或者进入系统后再看看)
63、token和referer做横向对比,谁安全等级高?
token安全等级更高,因为并不是任何服务器都可以取得referer,如果从HTTPS跳到HTTP,也不会发送referer。并且FLASH一些版本中可以自定义referer。但是token的话,要保证其足够随机且不可泄露。(不可预测性原则)
对referer的验证,从什么角度去做?如果做,怎么杜绝问题
空referer,referer正则过滤不完善。
针对token,对token测试会注意哪方面内容,会对token的哪方面进行测试?
重放、分析加密规则、结合信息泄露缓存日志替换越权
64、栅栏密码
把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。
不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。
凯撒密码是栅栏密码的一种
65、一个互联网网站端口如何防护,发现入侵如何解决?
防火墙,waf,ips,ids,终端准入,网页防篡改,规范开发代码,关闭危险服务例如SMB,RDP,数据库端口不对互联网访问等,发现异常入侵可在防火墙封禁ip,或者是查看日志。
66、cookie响应消息头的secure和HttpOnly分别作用是什么?
secure:在Cookie中标记该变量,表明只有当浏览器和web server之间的通信协议为加密认证协议时,浏览器才向服务器提交响应的Cookie。
Httponly:禁止Javascript读取(防XSS)
67、如何生成一个安全的随机数?
通过一些物理系统生成随机数,如电压的波动、磁盘磁头读/写时的寻道时间、空中电磁波的噪声等。
欢迎有需要的师傅们查阅,要是有什么不妥的地方欢迎留言。
这些是我整理的一部分,附件里还会包含一些基础漏洞原理和各种工具要点,而且排版也稍微好一点,大家有兴趣可以下载下来,打印看看