安服面试笔记(上)

admin 2025年5月7日11:20:36评论4 views字数 6233阅读20分46秒阅读模式

面试笔记分为上下两部分,前半部分总体来说偏向于基础

面试不同的岗位,相对应的面试题量及难易程度也会不同,安服偏向于应急等知识,所以侧重点不是渗透的知识

借用一句话:背诵面试题目只是骗自己,技术晋升大部分都是实战大于理论,但理论基础也必不可少,二者相辅相成,万一人家让你远程直播实战操作,或者现场面试呢

本文章只为帮助大家入职,后续共同补强技术能力

反序列化原理

反序列化过程中,对用户输入的对象没有进行足够的检查而导致的

攻击者可以在序列化数据中插入恶意代码,使得在反序列时执行该代码

从而达到攻击目的

OSI体系结构

物理层、数据链路层、网络层、运输层、会话层、表示层、应用层

红队的一个大致流程

信息搜集–>找到脆弱资产–>漏洞利用→getshell

情报收集

建立据点

横向移动

给定目标如何渗透

信息收集

服务器相关信息(真实IP,系统类型与版本,开放端口,WAF等)

网站指纹识别(CMS,CDN,DNS记录,证书等)

whois信息:姓名,备案,电话,邮箱(丢进社会库)

子域名、旁站、C段等(一般主站比较难,可以看旁站有无漏洞利用方式)

探测网站的信息、后台、敏感文件

站长之家、CMSeek

使用多地ping如果出现多个解析IP地址,那就说明使用了CDN,那就会问了,有CDN怎样查真实IP呢,首先第一种就是利用漏洞漏洞去访问你的服务器、IP就是真实的,第二种就是自己搭建邮件服务器,发送或者收取给对方的邮件可以找到真实IP,第三种就是通过空间引擎搜索,工具进行全网扫描,微步等平台

子域名可以通过fofa、鹰图等搜索引擎、证书查询、DNS历史记录查询(并不准确)、子域名挖掘机layer等等工具

漏洞挖掘

测试网站功能点,尝试

相应端口进行漏洞检测、目录扫描、弱口令

XSS,SQL注入,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等

漏洞利用

利用挖掘点拿到webshell、或者其他RCE方式

权限提升

mysql提权、linux内核版本提权、linux脏牛提权、udf提权等等

输出报告

如何在大量目标中快速拿下内网权限

工具批量化扫描,比如goby+awvs+xray等常见漏洞扫描工具进行联动

主流中间件+web服务组件进行漏洞检测

平时复现的漏洞

shiro550/721反序列化

fastjson反序列化

weblogic反序列化

log4j2远程代码执行

Jboss未授权

redis主从复制

linux命令

读写执行、rwx、421

find / -name "flag"所有目录查找flag文件

awk -F: '$3==0{print $1}' /etc/passwd-F分隔符为冒号、$3==0第三个字段UID是否为0(即root)、{print $1}输出符合条件行的第一个字段

find / -perm -u=s -type f 2>/dev/null2>/dev/null 的意思就是将标准错误 、-perm:按权限模式匹配文件、u 表示用户权限位、s 表示设置 SUID 位、-type f仅搜索普通文件

等等不再枚举

常见端口

端口
服务
描述
常见漏洞
20/21
FTP (File Transfer Protocol)
用于文件传输协议,支持上传和下载。
匿名访问、弱口令
22
SSH (Secure Shell)
安全的远程登录协议,用于加密的命令行访问。
弱口令、暴力破解
23
Telnet
不加密的远程登录协议,提供命令行界面。
弱口令、明文传输
25
SMTP (Simple Mail Transfer Protocol)
用于邮件发送的协议。
弱口令、邮件伪造
43
Whois
提供域名和IP地址的注册信息查询服务。
信息泄露
53
DNS
域名解析协议,支持TCP/UDP传输。
DNS缓存中毒、未授权访问
69
TFTP
简单文件传输协议。
未授权访问、弱口令
80
HTTP
超文本传输协议,用于网页服务。
XSS、SQL注入、弱口令
110
POP3
邮件接收协议,与SMTP配合使用。
弱口令、邮件窃取
135
RPC
远程过程调用协议,用于分布式计算。
弱口令、信息泄露
137/138/139
SMB/CIFS
文件和打印共享协议
未授权访问、永恒之蓝 (MS17-010)
143
IMAP
邮件协议,用于支持离线模式的邮箱访问。
弱口令、信息泄露
389
LDAP (Lightweight Directory Access Protocol)
目录访问协议,常用于身份验证。
注入漏洞、弱口令
443
HTTPS (SSL/TLS)
安全的超文本传输协议,用于加密的网页访问。
心脏滴血漏洞、过期TLS协议
445
SMB
文件和打印共享协议,用于网络共享。
未授权访问、永恒之蓝 (MS17-010)
1099
Java RMI
Java远程方法调用协议。
反序列化漏洞、远程命令执行
1433
MSSQL
微软的关系数据库服务。
弱口令、注入漏洞
1521
Oracle Database
Oracle数据库服务端口。
弱口令、远程代码执行
2049
NFS (Network File System)
文件共享协议,用于网络存储。
配置不当、信息泄露
3306
MySQL
开源关系数据库服务。
开源关系数据库服务
3389
RDP (Remote Desktop Protocol)
远程桌面协议
弱口令、CVE-2019-0708
5432
PostgreSQL
开源关系数据库服务。
弱口令、远程代码执行
5900
VNC (Virtual Network Computing)
远程桌面服务
弱口令、默认密码、未授权访问
6379
Redis
高性能键值存储数据库。
未授权访问
7001/7002
WebLogic
Oracle Java EE应用服务器
默认弱口令、远程代码执行
8069
Zabbix
集群监控系统
弱口令 Getshel
8080
Tomcat
开源Web应用服务器
管理页面弱口令,put上传
8080
JBoss
开源的企业级Java中间件系统
未授权、反序列化RCE

内存马原理

内存马是一种不需要在磁盘上写入任何文件、通过直接加载到目标系统内存中的恶意代码。

它依赖于Java虚拟机(JVM)动态类加载特性,通过注入和持久化恶意类,实现远程控制、信息窃取或其他恶意操作。

由于它们驻留在内存中,除非重启或手动清理,否则内存马在攻击期间会持续存在。

java反射

在运行时判断任意一个对象所属的类

在运行的时候构造任意一个类的对象

在运行时判断一个类所具有的成员变量和方法

在运行时调用任何一个对象的方法

xss类型和防护

反射、存储、DOM型

使用htmlspecialchars函数将预定义的字符&、”、 ’、<、>通过HTML转义变换为HTML实体,从而防止浏览器将输入的部分内容作为HTML元素

DOM型XSS与前面两种XSS的区别就在于DOM型XSS攻击的代码不需要与服务器端进行交互,DOM型XSS的触发基于浏览器端对DOM数据的解析来完成,也就是完全是客户端的事情。

存储是持久型,反射和DOM型是非持久型

log4j2和weblogic反序列化原理

log4j2

log4j2框架下的lookup查询服务提供了{}字段解析功能,传进去的值会被直接解析。例如${java:version}会被替换为对应的java版本。

在lookup的{}里面构造payload,调用JNDI服务(LDAP)向攻击者提前部署好的恶意站点获取恶意的.class对象,造成了远程代码执行(可反弹shell到指定服务器)

weblogic

T3协议和IIOP协议默认开启且未对访问权限进行严格限制,允许未经身份验证的远程用户通过7001端口直接与WebLogic服务交互

攻击者通过构造恶意请求,利用协议层对远程对象绑定的支持,将恶意对象注入服务端。

JNDI(java命名和目录接口)是一组在java应用中访问命名和服务器的API,命令服务将名称和对象联系起来,使得我们可以用名称访问对象

  • RMI(JAVA远程方法调用)
  • LDAP(轻量级目录访问协议)
  • DNS(域名服务)

SQL注入时间盲注函数,报错注入函数和原理

时间盲注

sleep():如果写入到数据库被执行了,sleep(N)可以让此语句运行N秒钟

通过一个页面加载的时间延时来判断

报错注入

updatexml():当第二个参数包含特殊符号时会报错,并将第二个参数的内容显示在报错信息中updatexml(1, 0x7e, 3)

有长度限制不超过32字符,一般用limit(,)分页和substr(,,)截取字符

extractvalue()也是

floor():返回整数,mysql在执行该语句会建立一个虚拟表,表中有两个字段(一个是分组的值和一个计数的值),当分组已经存在后就会爆错。

sql注入绕过

空格过滤绕过:${IFS}(空格)、${IFS}$9(空格)、/**/(空格)、%09(制表符)、%0a(换行符)、**`**(反引号)

内联注释绕过:/*!50726select*/*/*!50726from*/users;(MySQL会执行放在/!…/中的语句,大于该版本就会报错,小于等于不会报错)

大小写绕过、双写字符绕过、编码绕过(双重url编码绕过)、十六进制编码绕过、Unicode编码绕过、ASCII编码绕过、

等价函数字符替换绕过:用like或in代替=

http://id/index.php?id=1 and 1 like 1

sleep函数可以用benchmark函数代替

ascii函数可以用hex, bin函数代替

group_concat函数可以用concat_ws函数代替

updatexml函数可以用extractvalue函数代替

逻辑符合替换:and --> &&or --> ll

宽字节绕过:

编码绕过(数字型可以绕过,字符型不行)

宽字节绕过(前提数据库的编码是gbk)。在gbk中,中文由两个字节组成,首字节对应81-EF(129-239),尾字节40-7E(64-126)

利用函数转移特殊字符代替magic_quotes_gpc:addslashes()

具体见:宽字节详解

正则规则:

“[-]”:字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符“/”:表示正则表达式的开始、再一个/表示结束,在结束的/后面跟上的为定界符“i”:表示在和模式进行匹配进不区分大小写“s”:如果没有使用这个模式修正符号,元字符中的"."默认不能表示换行符号,将字符串视为单行

文件上传绕过

客户端JS校验:抓包修改文件名后缀

服务端校验:

content-type字段绕过(Content-Type: text/plain-->image/jpeg)

文件头绕过(GIF89a)

文件后缀名绕过(双写,大小写、::$DATA%00截断)

.htaccess是apache配置文件,可覆盖相应设置,将某某文件当问php或者指定文件形式分析

逻辑漏洞具体怎么挖

水平、垂直越权

常见的越权高发功能点有:根据订单号查订单、根据用户 ID 查看帐户信息、修改 / 找回密码等。

SRC中的逻辑漏洞总结

1.注册

1.短信轰炸

2.验证码安全问题

3.密码爆破

4.邮箱轰炸

2.用户任意注册、批量注册

3.用户名枚举

4.XSS(有框的地方就可以尝试插XSS

5.登录

1.短信轰炸、验证码安全问题、密码爆破、邮箱轰炸

2.SQL注入

3.撞库

4.抓包把password字段修改为空值发送

5.认证凭证替换、比如返回的数据包中包含账号,修改账号就能登录到其他账号

6.Cookie仿冒

7.修改返回包的相关数据,可能会登陆到其他的用户

6.找回密码

1.短信邮箱轰炸、短信邮箱劫持

2.重置任意用户账户密码、验证码手机用户未统一验证

3.直接跳过验证步骤

7.购买支付、充值(要利用抓包去仔细查看每一个可用的参数)

1.交易金额、数量修改、更换支付模块(比如更换支付的模块金额)

2.交易信息订单编码/导致信息泄露

3.整数溢出,int最大值为2147483647,超过最大值

4.修改充值账户

5.支付绕过

8.抽奖活动

1.刷奖品、积分

2.并发

9.优惠卷、代金卷

1.并发逻辑漏洞(burp批量获取优惠券)

2.修改优惠券金额、数量

10.订单信息

1.订单信息遍历、泄露

2.订单信息泄露导致用户信息泄露

3.删出他人订单

11.会员系统

1.修改个人信息上传文件,上传带弹窗的html

2.如遇上上传xlsx、docx,可能存在XXE,上传恶意的文档盲测

3.图片上传也可能遇到imagereagick命令执行,上传恶意图片

4.视频上传如果使用ffmpeg<3.2.4(视频按帧分割成图片),上传恶意avi盲测ssrf

5.用户横向越权访问、遍历、导致用户信息泄露

6.SQL注入、个人简历处存储XSS个人信息注册的名称也可以插入XSS

12.传输过程

1.明文传输账户密码

2.修改信息处无session/token导致csrf

3.POST/COOKIE注入

13.评论

1.POST注入

2.存储型XSS

3.无session/token导致CSRF

1.验证码问题

1.万能验证码

2.返回包中存在验证码

3.删除验证码或者cookie中的值可以爆破账号密码

2.短信轰炸

1.一直重放

2.删除修改cookie,重放数据包

3.遍历参数发送数据包

4.手机号后面加空格或者前面加其他的比如+86或者逗号分号等,然后重发数据包

5.请求参数修改大小写,或者添加请求参数比如&id=1

6.一个站的登录处可能做了防护,但是再找回密码处可能没有安全防护,或者在注册流程中没有安全防护,所以说多测试接口

7.如果对手机号一天的次数进行了限制,还可以再发一次短信,DO intercept之后修改为成功回显

3.水平越权

1.主要登陆后还是修改参数,主要找到多个接口不断测试

2.关注网页源代码,有时候会有表单,但被bidden(隐藏标签)给隐藏起来了,可以修改返回包然后尝试获取数据检测

3.多个账号,主要分析请求参数

4.数据泄露

1.再找回密码处,填写数据后抓包查看返回信息,有可能存在敏感数据返回

5.任意用户密码重置

1.目前大部分都是在修改密码处参数修改

2.有些是前端验证

shiro利用链有没有了解

黄金票据白银票据

黄金票据:是直接抓取域控中ktbtgt账号的hash,来在client端生成一个TGT票据,那么该票据是针对所有机器的所有服务。

白银票据:实际就是在抓取到了域控服务hash的情况下,在client端以一个普通域用户的身份生成TGS票据,并且是针对于某个机器上的某个服务的,生成的白银票据,只能访问指定的target机器中指定的服务。

网站被篡改怎么办

将受影响的系统进行隔离,查杀确认并修复导致篡改的漏洞

恢复到最近一次的备份

如果是通过通过凭证泄露造成,立即修改所有账户密码,包括数据库、服务器、管理界面等

常见中间件日志位置

apache

/var/log/httpd/access_log或者/var/log/apache2/access.log

nginx

/var/log/nginx/access.log

mysql

/var/log/mysql/error.log

php

/var/log/php/php_error.log

postgresql

/var/log/postgresql/postgresql-<port>.log

redis

日志文件通常禁用

原文始发于微信公众号(hutututu):安服面试笔记(上)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月7日11:20:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安服面试笔记(上)https://cn-sec.com/archives/4035553.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息