1、TCP与UDP区别总结?
TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务;UDP是无连接的,即发送数据之前不需
要建立连接,;UDP尽最大努力交付,即不保证可靠交付。(由于UDP无需建立连接,因此UDP不会引入
建立连接的时延,TCP需要在端系统中维护连接状态,比如接受和发送缓存,拥塞控制,序号与确认号
的参数等,故TCP会比UDP慢)
UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
UDP分组首部开销小,TCP首部开销20字节;UDP的首部开销小,只有8个字节。
个完整的报文,报文不可分割,报文是UDP数据报处理的最小单位)。6.UDP适合一次性传输较小数据的网络应用,如DNS,SNMP等
2、三次握手四次挥手?为什么?
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确
认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包
(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,
客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据
客户端先发送FIN,进入FIN_WAIT1状态,用来关闭Client到Server的数据传送
服务端收到FIN,发送ACK,进入CLOSE_WAIT状态,客户端收到这个ACK,进入FIN_WAIT2状态
服务端发送FIN,进入LAST_ACK状态,用来关闭Server到Client的数据传送
客户端收到FIN,发送ACK,进入TIME_WAIT状态,服务端收到ACK,进入CLOSE状态(等待2MSL时间,约4分钟。主要是防止最后一个ACK丢失。)
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告
诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的
ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动
关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成
四次挥手。
3、OSI 的七层模型都有哪些?
物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层
网络层:将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路
径。
传输层:在源端与目的端之间提供可靠的透明数据传输
会话层:负责在网络中的两节点之间建立、维持和终止通信
表示层:处理用户信息的表示问题,数据的编码,压缩和解压缩,数据的加密和解密
应用层:为用户的应用进程提供网络通信服务
拿到待检测的站,你觉得应该先做什么?
-
信息收集
1. 获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。
2. 查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3. 查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4. 查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
5. 扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
6. google hack 进一步探测网站的信息,后台,敏感文件
-
漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
-
漏洞利用
利用以上的方式拿到webshell,或者其他权限
-
权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
-
日志清理
-
总结报告及修复方案
5、判断出网站的CMS有什么意义?
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。
6、如何手快速判断目标站是windows还是linux服务器?
linux大小写敏感,windows大小写不敏感。
7、3389无法连接的几种情况
没开放3389 端口
端口被修改
防护拦截
处于内网(需进行端口转发)
8、SQL注入防护
1、使用安全的API
2、对输入的特殊字符进行Escape转义处理
3、使用白名单来规范化输入验证方法
4、对客户端输入进行控制,不允许输入SQL注入相关的特殊字符
5、服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除。
6、规范编码,字符集
7、预编译
9、Sql注入过滤空格的方法有哪些?
%0a、%0b、%a0 等 /**/ 等注释符 <>
10、XSS蠕虫
XSS蠕虫是一种利用Web应用程序中的XSS漏洞进行自动化传播的蠕虫病毒。它借助Ajax技术,通过用户节点与网站节点之间的交互,实现恶意代码的自动传播和感染。
XSS蠕虫的传播速度随Web应用程序的用户访问量几何数递增,感染效果非常可怕。它能够在用户之间自动传播,导致整个系统的用户沦陷。
11、金融行业常见逻辑漏洞
单针对金融业务的 主要是数据的篡改(涉及金融数据,或部分业务的判断数据),由竞争条件或者设计不当引起的薅羊毛,交易/订单信息泄露,水平越权对别人的账户查看或恶意操作,交易或业务步骤绕过。
12、SSRF漏洞的成因 防御 绕过
成因:模拟服务器对其他服务器资源进行请求,没有做合法性验证。利用:构造恶意内网IP做探测,或者使用其余所支持的协议对其余服务进行攻击。防御:禁止跳转,限制协议,内外网限制,URL限制。绕过:使用不同协议,针对IP,IP格式的绕过,针对URL,恶意URL增添其他字符,@之类的。301跳转+dns rebindding。
原文始发于微信公众号(菜鸟学信安):渗透测试高频面试题分享
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论