蓝队面试经验总结

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 改变大小写:

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

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

d 双写饶过:<scr

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

f 用/代替空格

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

h 用 throw 代替括号

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

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

5、扫描工具

xsstrick

6、XSS钓鱼平台

kali工具:BEEF

免费平台:自行搜索

7、xss防御

过滤敏感字符

a 例如:aler() ,script ,onerror

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

XXE:外部实体注入

1、漏洞原理:

PHP开启 外部实体引用 传入的 xml 数据未经过过滤

2、漏洞特点

a 传参数据是以 xml 标签的形式

b 相应包里的 Content-type:text/xml

3、攻击手法

a 利用 file 协议读取文件

b 利用 http 协议进行端口探测,例如:http://127.0.0.1:22

c 利用 php 伪协议读取文件

4、盲XXE

核心:加载执行远程xml文件,造成数据外发的效果

5、防御

关闭外部实体功能:libxml_disable_entity_loader(ture);

文件上传

1、漏洞原理

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

2、绕过黑名单

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

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

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

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

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

6 流文件绕过,windows 中,:: D A T A 符号后面的内容会被当成字节流数据,上传之后会自动去掉 : : DATA 符号后面的内容会被当成字节流数据,上传之后会自动去掉 :: 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、同源策略内容

主机、端口、协议

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/550803.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

lua基本语法

Lua语法入门 初识lua vi hello.lua print("hello,lua") lua hello.lua 变量和循环 变量 循环 条件控制、函数 条件控制

计算机网络——实现smtp和pop3邮件客户端

实验目的 运用各种编程语言实现基于 smtp 协议的 Email 客户端软件。 实验内容 1. 选择合适的编程语言编程实现基于 smtp 协议的 Email 客户端软件。 2. 安装 Email 服务器或选择已有的 Email 服务器&#xff0c;验证自己的 Email 客户端软件是否能进行正常的 Email 收发功…

OWASP发布10大开源软件风险清单

3月20日&#xff0c;xz-utils 项目被爆植入后门震惊了整个开源社区&#xff0c;2021 年 Apache Log4j 漏洞事件依旧历历在目。倘若该后门未被及时发现&#xff0c;那么将很有可能成为影响最大的软件供应链漏洞之一。近几年爆发的一系列供应链漏洞和风险&#xff0c;使得“加强开…

材料物理 笔记-6

原内容请参考哈尔滨工业大学何飞教授&#xff1a;https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》&#xff08;哈尔滨工业大学出版社&#xff09; 文…

维护表和索引分区

1. ALTER FRAGMENT 语句 如果想更改分片策略&#xff0c;可以使用ALTER FRAGMENT语句。 初始化新的片段模式 ALTER FRAGMENT …INIT 增加额外片段 ALTER FRAGMENT …ADD 删除一个片段 ALTER FRAGMENT …DROP 修改片段表达式或 dbspace ALTER FRAGMENT …MODIFY 将表合并至一张…

音频---数字mic

一、常见的数字mic pdm麦通过codec芯片将数字麦转换为i2s信号输入到SOC 纯pdm麦就是直接进入SOC的pdm接口&#xff0c;走的是PDM信号&#xff0c;PDM信号就是两个线&#xff0c;一根数据线一根时钟线&#xff08;如顺芯ES7201/7202把MIC信号转换成PDM&#xff09;。 二、DMIC…

Chrome将网页保存为PDF的实战教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

半导体行业芯片加工机台数据采集,如何同时保证效率和准确性?

半导体行业的重要性不言而喻&#xff0c;随着互联网时代技术的不断更新和演进&#xff0c;芯片的应用更加广泛&#xff0c;新能源、信息通讯设备、4C产业、智能电网等领域均需要芯片的支撑。而芯片的制造涉及多个关键步骤&#xff0c;包括晶圆制备、氧化、光刻、刻蚀、薄膜沉积…

Vue3(四):组件通信详解(九种方法)

主要有九种方法&#xff0c;以下是详细解释及使用方法&#xff1a; 1.props props实现父子间的通信&#xff0c;是使用频率最高的。 &#xff08;1&#xff09;父传子&#xff1a;属性值是非函数。 以Father.vue和Child.vue 为例。 父组件中&#xff0c;引入子组件并给子组…

【Leetcode每日一题】 递归 - 二叉树的所有路径(难度⭐)(59)

1. 题目解析 题目链接&#xff1a;257. 二叉树的所有路径 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 针对二叉树路径的求解问题&#xff0c;我们可以采用深度优先遍历&#xff08;DFS&#xff09;的策略来寻找所…

4.16 java项目小结1

java项目登录界面实现了服务端与客户端的连接&#xff0c;实现了客户端传递输入的账号和密码&#xff0c;服务端从数据库查询&#xff0c;并反馈给客户端。 学习了正则表达式 正则表达式的作用 作用一:校验字符串是否满足规则 作用二:在一段文本中查找满足要求的内容 目前我…

Python 包围盒裁剪卫星场景

下载 Landsat 场景 我们首先下载陆地卫星场景。您可以使用EarthExplorer门户来执行此操作。 数据下载后,您应该有一个下图所示的文件夹。这些是Landsat 2 级科学产品的所有可用文件。我们将处理突出显示的文件。这些是 3 个可见光波段和SR_stac文件。 加载图像和 stac 文件 …

PHP一句话木马

一句话木马 PHP 的一句话木马是一种用于 Web 应用程序漏洞利用的代码片段。它通常是一小段 PHP 代码&#xff0c;能够在目标服务器上执行任意命令。一句话木马的工作原理是利用 Web 应用程序中的安全漏洞&#xff0c;将恶意代码注入到服务器端的 PHP 脚本中。一旦执行&#xf…

Android Room 记录一个Update语句不生效的问题解决记录

代码展示 1.数据实体类 Entity public class User {PrimaryKey(autoGenerate true)private long id;private String name;private String age;private String sex;public User(String name, String age, String sex) {this.name name;this.age age;this.sex sex;}public …

Linux 磁盘管理和文件系统

硬盘的物理结构&#xff1a; 盘片硬盘有多个盘片&#xff0c;每盘片2面磁头每面一个磁头 硬盘的数据结构&#xff1a; 扇区盘片被分为多个扇形区域&#xff0c;扇区:每个扇区存放512字节的数据&#xff0c;硬盘的最小存储单位磁道同一盘片不同半径的同心圆&#xff0c;是由磁…

postgresql|数据库|实时数据库监控利器 pg_activity 的部署和初步使用

前言&#xff1a; postgresql的调优是比较重要的&#xff0c;那么&#xff0c;如何调优呢&#xff1f;自然是在某一个时间段内&#xff0c;通常是业务高峰期或者压测时间内实时观察数据库的运行情况&#xff0c;然后通过观察到的信息判断数据库的瓶颈&#xff0c;比如&#xf…

Windows 安装 A UDP/TCP Assistant 网络调试助手

Windows 安装 A UDP/TCP Assistant 网络调试助手 0. 引言1. 下载地址2. 安装和使用 0. 引言 需要调试一个实时在线聊天程序&#xff0c;安装一个UDP/TCP Assistant 网络调试助手&#xff0c;方便调试。 1. 下载地址 https://github.com/busyluo/NetAssistant/releases 2. 安…

【Android AMS】startActivity流程分析

文章目录 AMSActivityStackstartActivity流程startActivityMayWaitstartActivityUncheckedLocked startActivityLocked(ActivityRecord r, boolean newTask, boolean doResume, boolean keepCurTransition)resumeTopActivityLocked 参考 AMS是个用于管理Activity和其它组件运行…

华为云CodeArts IDE For Python 快速使用指南

CodeArts IDE 带有 Python 扩展&#xff0c;为 Python 语言提供了广泛的支持。Python 扩展可以利用 CodeArts IDE 的代码补全、验证、调试和单元测试等特性&#xff0c;与多种 Python 解释器协同工作&#xff0c;轻松切换包括虚拟环境和 conda 环境的 Python 环境。本文简要概述…

chrome浏览器取消右上方的更新红点提示

在桌面找到chrome浏览器的快捷方式&#xff0c;右键打开属性 在目标 引号后添加 --disable-background-netwroking