蓝队面试经验总结

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.mzph.cn/news/819753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git-常规用法-含解决分支版本冲突解决方法

目录 前置条件 已经创建了Gitee账号 创建一个远程仓库 Git的优点 版本控制 Git 下载 Git的使用 检查Git的是否安装成功 git的常用命令 常用流程 Git 分支 分支流程 Git 远程仓库 远程仓库流程 特殊 可能遇到的问题 前置条件 已经创建了Gitee账号 创建一个远程仓…

求1000以内正整数的平方根(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;int number 0;int result 0;//提示用户&#xff1b;printf("请输入1000以内求平方根的…

【c++leetcode】14. Longest Common Prefix

问题入口 解决方案 class Solution { public:string longestCommonPrefix(vector<string>& v) {string ans "";sort(v.begin(), v.end());int n v.size();string first v[0],last v[n - 1];for(int i 0; i < min(first.size(),last.size()); i){…

密码学 | 椭圆曲线数字签名方法 ECDSA(下)

目录 10 ECDSA 算法 11 创建签名 12 验证签名 13 ECDSA 的安全性 14 随机 k 值的重要性 15 结语 ⚠️ 原文&#xff1a;Understanding How ECDSA Protects Your Data. ⚠️ 写在前面&#xff1a;本文属于搬运博客&#xff0c;自己留着学习。同时&#xff0c;经过几…

树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#xff0c;可以用于托管网站或 Web 应用程序。相比其他 Web 服务器&#xff0c;Ngi…

CentOS7.9上安装Oracle11g详解

目录 一、环境准备1.安装依赖2.查看libaiobaio版本3.修改host&#xff0c;绑定主机名4.关闭selinux 二、安装配置1.创建组、用户2.修改内核参数3.配置Oracle用户参数4.修改/etc/pam.d/login 文件5.修改/etc/profile 文件6.创建数据库相关目录7.安装包上传、解压8.添加环境变量 …

修改element-ui中el-calendar(日历)的样式

效果图如下&#xff1a; <template><div class"dashboard-container"><el-card style"width: 350px; height: auto; border-radius: 8px"><div class"custom-style"><p class"new-data">{{ newDate }}&…

macbook怎么录屏幕视频?两款实用工具推荐!

在数字化时代&#xff0c;录制屏幕视频已成为我们日常生活和工作中不可或缺的一部分。MacBook作为一款广受欢迎的电脑品牌&#xff0c;为我们提供了高效且便捷的屏幕录制方式&#xff0c;可是很多用户不知道macbook怎么录屏幕视频。本文将介绍两种在Mac上录制屏幕视频的方法&am…

OpenCV——SUSAN边缘检测

目录 一、SUSAN算法二、代码实现三、结果展示 OpenCV——SUSAN边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、SUSAN算法 Susan边缘检测是一种经典的边缘检测算&#xff0c;它由Susan Smith…

【muduo源码学习】one-loop-per-thread核心原理

在 TCP 网络编程中&#xff0c;这里我们特指在单机的环境下&#xff0c;主要关注两件事。第一&#xff0c;如何正确的处理TCP的连接和断开&#xff0c;以及正确处理数据的收发&#xff1b;在错综复杂的网络环境中&#xff0c;这并非易事&#xff0c;涉及很多细节。第二&#xf…

【JAVA基础篇教学】第十七篇:Java单元测试

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第十七篇&#xff1a;Java单元测试。 单元测试和集成测试是软件开发过程中至关重要的一部分&#xff0c;它们可以帮助确保代码的质量和稳定性。下面我将为您提供详细说明和代码案例。 一、单元测试&#xff08;Unit Test…

Leetcode 221. 最大正方形

心路历程&#xff1a; 这道题是一个动态规划题&#xff0c;但是其实递推关系很难想到&#xff0c;如下图所示&#xff1a; MDP建模&#xff1a; 状态&#xff1a;以i,j为右下角的正方形 动作候选集&#xff1a;这道题的动作候选集其实是是否选择其左上角邻接的三个位置&#x…

11.范式与反范式设计

范式 1.问题 MySQL的库表设计&#xff0c;在很多时候我们都是率性而为&#xff0c;往往在前期的设计中考虑不全面&#xff0c;同时对于库表结构的划分也并不明确&#xff0c;所以很多时候在开发过程中&#xff0c;代码敲着敲着会去重构某张表结构&#xff0c;甚至大面积重构多…

深圳比创达电子EMC|EMC电磁兼容性:电子设备稳定运行的保障

随着科技的飞速发展&#xff0c;电子设备在人们的日常生活中发挥着越来越重要的作用。然而&#xff0c;随之而来的电磁干扰问题也日益突出。电磁兼容性&#xff08;EMC&#xff09;作为衡量电子设备在电磁环境中正常工作能力的关键指标&#xff0c;其重要性不言而喻。 一、EMC…

IP地址是随着网络变化的吗?

IP地址&#xff0c;即互联网协议地址&#xff0c;是分配给每个联网设备或网络接口的数字标签。它在网络通信中起着至关重要的作用&#xff0c;是设备之间互相识别和通信的基础。然而&#xff0c;关于IP地址是否随着网络变化&#xff0c;这是一个值得深入探讨的问题&#xff0c;…

深度残差收缩网络中,使用 Sigmoid 函数的用意在哪?

在深度残差收缩网络中&#xff0c;使用 Sigmoid 函数将输出归一化到 0 和 1 之间的目的是为了限制输出值的范围&#xff0c;并且使得输出可以被解释为概率。这个 Sigmoid 函数的输出可以被看作是一个置信度或者概率的度量&#xff0c;表示某个事件发生的可能性。 在设置阈值时…

详解playwright 官方Javascript demo(适合小白)

如果大家刚上手playwright&#xff0c;并看到了Javascript脚本的官方demo&#xff0c;代码如下&#xff1a; const { webkit } require(playwright);(async () > {const browser await webkit.launch();const page await browser.newPage();await page.goto(http://what…

开放式耳机怎么选?五大市场热卖爆款推荐!

近年来&#xff0c;开放式耳机风潮席卷市场&#xff0c;各大知名品牌纷纷推出新品&#xff0c;以满足消费者的需求。相较于传统的入耳式耳机&#xff0c;开放式耳机凭借其独特的佩戴方式&#xff0c;受到了广大消费者的热烈追捧。它不仅有效避免了长时间佩戴带来的耳道不透气、…

【数据结构】栈的实现

&#x1f451;个人主页&#xff1a;啊Q闻 &#x1f387;收录专栏&#xff1a;《数据结构》 &#x1f389;前路漫漫亦灿灿 前言 栈是一种特殊的线性表&#xff0c;我们在有了顺序表和链表的知识的基础上&#xff0c;再来学习栈&#xff0c;掌握起来就更轻松了…

所有可能的真二叉树(Lc894)——记忆化搜索

给你一个整数 n &#xff0c;请你找出所有可能含 n 个节点的 真二叉树 &#xff0c;并以列表形式返回。答案中每棵树的每个节点都必须符合 Node.val 0 。 答案的每个元素都是一棵真二叉树的根节点。你可以按 任意顺序 返回最终的真二叉树列表。 真二叉树 是一类二叉树&#…