HVV2024护网面试题

应急响应基本思路和流程

收集信息:收集客户信息和中毒主机信息,包括样本

判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等

抑制范围:隔离使受害⾯不继续扩⼤

深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源

清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产

产出报告:整理并输出完整的安全事件报告

Windows入侵排查思路

  1. 检查系统账号安全

    1. 查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano命令、或者问服务器管理员)

    2. lusrmgr.msc命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉

    3. 用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号

    4. 结合日志,查看管理员登录时间、用户名是否存在异常

      检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”,导出 Windows 日志--安全,利用 Log Parser 进行分析

  2. 检查异常端口、进程

    1. netstat -ano检查端口连接情况,是否有远程连接、可疑连接

    2. 任务管理器-进程

  3. 检查启动项、计划任务、服务

  4. 检查系统相关信息

    查看系统版本以及补丁信息

    查找可疑目录及文件

  5. 日志分析

安全设备

1.你对市面上安全设备了解多少,具体是哪几种类型?

奇安信:椒图,鹰图

IPS,IDS,WAF,APT检测,态势感知,蜜罐,防篡改等等具体情况根据面试而定

2.如何使用帮我介绍一下?

Sql注入

1、sql注入漏洞原理

开发者没有在网页传参点做好过滤,导致恶意 sql 语句拼接到数据库进行执行

2、sql注入分类

联合注入 、布尔盲注 、时间盲注 、堆叠注入 、宽字节注入 、报错注入

3、堆叠注入原理

在 mysql 中,分号 代表一个查询语句的结束,所以我们可以用分号在一行里拼接多个查询语句

4、宽字节注入原理

a 数据库使用 gbk 编码

b 使用反斜杠进行转义

5、报错注入原理:

a 报错注入函数,例如:floor() 、group by 、exp() 、updatexml() 、extractvalue()

6、Dnslog注入原理

a 利用 load_file() 函数读取共享文件

b共享文件形式:\hex(user()).dnslog.cn/ 或者 \host\

c 利用 mysql 的 load_file() 函数解析拼接过的 dnslog 域名,进而带出数据

7、联合注入的步骤

a 找传参点

b 判断闭合符

c 判断列数

d 判断显示位

e 查询database()

f 查表

g 数据

8、盲注分类

a 布尔盲注(页面回显 长度 :burp 里的 Content-Length )

b 时间盲注(页面回显 时间 :burp 包的 右下角 )、Dnslog

9、盲注函数

if() 、sleep() 、substr() 、left() 、limit 、ascii() 、length()

10、判断闭合符方式:

构造真和假:id=1 and 1=1 、id=1' and 1=2 、=1" or 1=1 、') or 1=2 、and 234=234 、and 1 、or 1 、and 1^1 、&&1 、||0

11、sql注入绕waf

a 代替空格:/**/ 、/!/ 、+ 、%09 、%0a 、%00 、括号

b 关键字:16进制 、char() 、字符串拼接

c 等价函数替换:sleep()==benchmark() 、if()==case when then else end 、ascii()==ord() 、substr()==substring()

d 内联注释:/*! */

12、sqlmap常用参数

a -r :用于post型注入,指定 txt 文件的 post 数据包

b -u :指定url,通常用于 get 型注入

c -p:指定注入点,例如: python sqlmap.py-u http://127.0.0.1/index.php?id=1&mid=2&page=3 -p "page"

d * :指定注入点,例如:python sqlmap.py-u http://127.0.0.1/index.php?id=1*&mid=2&page=3* 注意:* 号也可以用于伪静态的注入,用法同前面一样,直接在注入点后面加 *

e -m :用于sqlmap批量跑注入,指定一个含有多个 url 的 txt 文件

f --os-shell :用户获取 shell

g --os-cmd :执行系统命令

h --tamper :指定绕过用的脚本文件

i --level 3 :指定测试等级,等级越高,检查项越多,共 1-5 个等级

j --risk 3 :指定风险等级,等级越告,payload 越复杂,共 1-3 个等级

k --random-agent :指定随机 agent 头

l --batch :默认选项

m --dbms :指定数据库类型

13、sql注入获取 webshell 的方式

a 写文件(需要写权限)

b 写日志文件(不要学权限,但是需要通过命令开启日志记录功能,而且还需要把日志文件的路径指定到网站根路径下面)

14、sql注入防御

a 过滤敏感字符,例如:information_schema 、into out_file 、into dump_file 、' 、" 、()

b 预编译

c 站库分离:增加攻击者的时间成本、防止通过数据库拿到webshell

15、mysql提权方式

a mof提权

b udf提权

XSS:跨站脚本攻击

1、XSS原理

开发人员没有做好过滤,导致我们可以闭合标签进而插入并执行恶意JS代码

2、xss类型分类

a DOM型 :由 DOM 文档完成解析

b 反射型 :即插即用,没有存储在数据库里面

c 存储型 :被存储在数据库里面,造成持久型的攻击

3、常用的JS函数

a document.cookie() :弹出当前网址的浏览器 cookie

b console.log('xss') :在控制台输出日志

4、绕过方式

a 改变大小写:<script>

b 编码绕过( html 实体编码、 十进制十六进制八进制编码、 unicode 编码)、

c 关闭标签:利用大于号 > 关闭标签使得xss生效

d 双写饶过:<scr<script>ipt>

e 可以使用 空格 , 换行 ,tab 键或者 /**/ , /!a/,的形式绕过 关键词的检测

f 用/代替空格

g 用 反引号 代替 括号 、双引号

h 用 throw 代替括号

i 用 html 实体编码 : 代替 冒号

j 用 jsfuck 编码绕过大部分字符过滤

5、扫描工具

xsstrick,AWVS,nmap

6、XSS钓鱼平台

kali工具:BEEF

7、xss防御

过滤敏感字符

a 例如:aler() ,script ,onerror

b 增加 httponly :禁止前端执行JS代码

8、如何从根本防御XSS

进行预编译

文件上传

1、漏洞原理

开发人员未在上传点对文件名和文件内容做严格的过滤

2、如何绕过黑名单

1 特殊后缀名绕过:php3-php5 、 phtml 、通过修改 httpd.conf 文件按可以实现解析任意后缀名

2 通过上传 .htaccess 文件可以实现解析任意后缀名

3 上传 .user.ini 文件,利用包含实现getshell

4 空格绕过,利用的是 windows 和 linux 不允许文件名出现包括 空格 在内的特殊字符,例如上传:1.php[空格]

5 点绕过,windows 不允许出现点结尾的文件名,会自动去掉文件名后面的点, linux 允许出现点结尾的文件

6 流文件绕过,windows 中,::$DATA 符号后面的内容会被当成字节流数据,上传之后会自动去掉 ::$DATA 以及后面的内容

7 双写后缀名,例如上传 1.pphphp ,只适用于将 php 替换为空的情况

3、绕过白名单

1 00 截断

2 配合文件包含

4、对文件内容进行绕过

1 填充垃圾字符

2 免杀

5、绕过前端验证

1 在浏览器关闭前端 JS 功能

2 burp 抓包修改

文件包含

1、文件包含函数

a include() 、 require 、 include_once() 、 require_once()

2、文件包含支持的协议

a php 伪协议:fiter 、 input 、 data 、 zip 、phar

b file 协议

c http 和 https

3、利用条件

a 本地文件包含不需要开启 allow_url_* 参数

b 部分伪协议需要开启一个或者两个 allow_url_* 参数

4、防御

a 过滤关键字,例如:php:// 、 file:// 、 http://

b 关闭 allow_url_* 参数

命令执行

1、拼接 & 、&& 、 | 、 ||

2、原理:在操作系统中, & 、&& 、 | 、 || 都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令

CSRF:跨站请求伪造

1、原理:

在 cookie 有效期范围内,诱使受害者点击某个页面,进而执行非受害者本意的操作。

2、防御

a 验证 referer字段

b 加 token 验证

SSRF:服务器请求伪造

1、原理

大都是由于服务端提供了从其他服务器获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

2、支持的协议

a http://

b https://

c dict://

d ftp://

e file1

f php 伪协议

g gopher://

3、危害

a 内外网的端口和服务扫描

b 主机本地敏感数据的读取

c 内外网主机应用程序漏洞的利用

d 内外网Web站点漏洞的利用

4、防御

a 过滤 file:// 、 gocher:// 等,过滤 端口

b 把网站需要访问的内网资源路径写死,不从外部接收

信息泄露

1、原理:

信息泄露可能是不慎泄露给浏览该网站信息用户的,也有可能是攻击者通过恶意的交互从网站获得数据。例如.svn、.git、.ds_store

2、利用手法:

a 通过 robots.txt 泄露网站隐藏目录/文件.或者站点结构

b 网站站点的 备份文件 未删除导致的泄露,可能会泄露网站源代码

c 没有正确处理网站的一些 错误消息 ,在错误消息中泄露数据库表,字段等

d 一些高度敏感的用户信息,银行账号等泄露

e 在源代码中泄露数据库 账号密码 ,等等(GitHub)

f 网站某些程序的细微差别提示是否存在某些资源,用户名

中间件漏洞

Apache

a 解析漏洞:多后缀名解析漏洞(从后往前解析,一直解析到可识别的后缀)、罕见

b 后缀名解析漏洞、.htaccess解析漏洞

命令执行漏洞:CVE-2021-42013

IIS

a 文件名解析漏洞,从前往后解析,遇到分号就截断,忽略分号后面的内容

例如:1.asp;.jpg

b 罕见后缀名,例如:.asa、.cer、.cdx

c IIS 5.X/6.0的文件夹解析漏洞,例如:将文件夹以1.asp命名,该文件夹中的所有文件都会被当做asp文件执行:1.asp/1.jpg、1.asa/1.jpg、1.cer/1.jpg、1.cdx/1.jpg

d IIS 7.0/IIS 7.5的CGI解析漏洞,例如上传1.jpg然后访问1.jpg/.php

e IIS PUT文件上传漏洞

f HTTP.sys远程代码执行漏洞:MS15-034

Nginx

a CGI解析漏洞,例如上传1.jpg然后访问1.jpg/.php

其他

1、IIS:目录解析漏洞、分号截断、CGI解析漏洞、PUT文件上传漏洞、MS15-034

2、Apache:多后缀名解析漏洞、目录遍历、命令执行漏洞:CVE-2021-42013

3、Nginx:CGI解析漏洞

4、Tomcat:后台部署war包、PUT文件上传漏洞、反序列化漏洞、样例目录session操控漏洞

5、Weblogic:后台部署war包、一大堆反序列化漏洞、未授权RCE漏洞

6、Jboss:后台部署war包、一堆反序列化

框架漏洞

thinkphp5.x RCE

基本都是对模型,对方法的路由处理有误导致RCE,反序列化漏洞的话需要有反序列化点

thinkphp5.0.x漏洞原因是对url处理有关,导致远程命令执行

Struts2

1、原理:struts2是一个框架,他在处理action的时候,调用底层的getter/setter来处理http的参数,将每一个http的参数声明为一个ONGL。导致命令执行

框架特点:文件后缀名”.action ” “.do”

2、例子:

S2-062漏洞形成的原因是struts在处理标签的name属性时,将用户输入当作表达式进行二次解释,导致OGNL表达式注入。

s2 046 通过Content-Type这个header头 filename 后面需要00截断,注入OGNL语言,进而执行命令,通过不恰当的 filename 字段或者大小超过 2G 的 Content-Length 字段来触发异常,进而导致任意代码执行。

Shrio 反序列化

1、原理:Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理,Shiro提供了RememberMe的功能,当用户关闭浏览器,下次再打开浏览器访问时,还是能记住我是谁,无需登录即可访问。

其实很多网站都有这功能,Shiro对RememberMe的Cookie做了加密处理,在CookieRememberMeManaer类中将Cookie中RememberMe字段内容分别进行序列化、AES加密、Base64编码等操作,但是默认的加密AES Key是硬编码进去的,都知道这个Key是什么,所以在逆向操作反序列化、Base64解密的时候,攻击者就可以伪造恶意数据通过反序列化远程执行命令。

Fastjson 反序列化

通过Fastjson反序列化漏洞,攻击者可以传入一个恶意构造的JSON内容,程序对其进行反序列化后得到恶意类并执行了恶意类中的恶意函数,进而导致代码执行。

redis未授权

1、redis在6379端口

2、写webshell

3、写公钥实现免密登录

4、写计划任务实现反弹shell

5、主从复制getshell

流量溯源

可利用流量工具 wireshark 进行溯源:

  1. 查看 eval、 z0、 shell whoami 等关键字,查看出现次数过多的时候, 需要查看是哪个页面发起的请求,有可能是 webshell

  2. 通过 WireShark 工具快速搜索关键字,定位到异常流量包

  3. 找出异常 IP 和所上传的内容,查看是否为 webshell

如何定位到攻击IP:

  1. 首先通过选择 - 统计 - 对话查看流量的走向情况, 定位可疑的 IP 地址

  2. 根据定位到的 IP 地址,尝试对上传的 webshell 进行定位

    ip.addr == ip &amp;&amp; http matches
    "uploadllevallselectlxp_cmdshell" &amp;&amp; http.request.method == "POST"
  3. 查找到 webshell 后尝试溯源漏洞位置

    http.request.uri contains "webshell.php"

    定位到最开始 webshell 执行或上传的时候

  4. 根据最开始的 HTTP 上传包或者其他漏洞特征定位漏洞类型

溯源工具

wireshark

wireshark 简单的过滤规则

  • 过滤ip:

    过滤源 ip 地址:ip.src1.1.1.1

    目的 ip 地址:ip.dst1.1.1.1

  • 过滤端口:

    过滤80端口:tcp.port == 80

    源端口:tcp.srcport == 80

    目的端:tcp.dstport == 80

  • 协议过滤:直接输入协议名即可,如 http 协议 http

  • http 模式过滤:过滤 get/post 包 httprequest.mothod == "GET/POST"

常用取证工具

Wireshark、xplico、 Volatility、 FastlR Collector、Autopsy、 Dumplt、 FTK Imager、Foremost、Scalpel、 Bulk_ exetractor 等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值