WEB网站渗透测试毕业设计

今天和室友们一起完成了一份WEB网站渗透测试毕业设计,需要的同学可以借鉴一下

以下是目录

 

1 Web漏洞挖掘介绍及相关技术........................................................................... 1

1.1漏洞简介..................................................................................................... 1

1.2 Web漏洞常见类型.................................................................................... 2

1.2.1 CSRF攻击...................................................................................... 2

1.2.2 DDOS攻击..................................................................................... 3

1.2.3 XSS攻击......................................................................................... 4

1.2.4 SQL注入......................................................................................... 5

2 岱宗企业网站需求分析....................................................................................... 7

2.1 岱宗企业网站现状需求分析.................................................................. 7

2.2 岱宗企业网站漏洞挖掘需求分析.......................................................... 8

3 岱宗企业网站信息收集...................................................................................... 9

3.1岱宗企业网站基本信息收集................................................................... 9

3.1.1主机探测及端口信息扫描............................................................ 9

3.1.2目录扫描....................................................................................... 10

3.2岱宗企业网站Web安全漏洞扫描........................................................ 11

4 岱宗企业内容管理系统漏洞分析与利用....................................................... 13

4.1漏洞分析................................................................................................... 13

4.2文件包含漏洞.......................................................................................... 14

4.3 SQL注入漏洞.......................................................................................... 15

4.4 跨站脚本攻击(XSS)......................................................................... 16

4.5 逻辑漏洞(垂直越权)........................................................................ 17

5 岱宗企业网站管理系统安全加固................................................................... 19

5.1岱宗企业网站管理系统文件包含加固................................................ 19

5.2岱宗企业网站管理系统XSS加固....................................................... 20

5.3岱宗企业网站管理系统SQL注入加固............................................... 21

5.4岱宗企业网站管理系统逻辑漏洞加固................................................ 22

以下代码块中是第一个主题

1 Web漏洞挖掘介绍及相关技术

网络安全已成为人们日益关注的重要问题。据CNCERT/CC2007年网络安全工作报告的统计,近年来漏洞数量呈现明显上升趋势,不仅如此,新漏洞从公布到被利用的时间越来越短,黑客对发布的漏洞信息进行分析研究,往往在极短时间内就能成功利用这些漏洞。除了利用已知漏洞,黑客们也善于挖掘并利用一些尚未公布的漏洞,发起病毒攻击,或出售漏洞资料,满足经济目的。相对于黑客,安全研究者们在漏洞研究方面显得相对被动和滞后。因此,应该加大对漏洞挖掘的研究力度,以便对各类漏洞采取更为主动合理的处理方式。

1.1 漏洞简介

  漏洞指的是系统、应用或设备中存在的弱点或缺陷,这些缺陷可能源于设计错误、编码问题、配置不当或其他原因。漏洞使得攻击者有机会在未经授权的情况下访问或破坏系统,从而可能对一个组织的资产或运行造成不利影响。漏洞可能出现在各种环境中,包括但不限于硬件、软件、协议的具体实现以及系统安全策略。例如,应用软件或操作系统在设计时可能存在的缺陷或编码时产生的错误,都可能形成漏洞。此外,业务在交互处理过程中的设计缺陷或逻辑流程上的不合理之处,也可能导致漏洞的产生。漏洞对系统和数据的安全构成严重威胁。攻击者可以利用这些漏洞来执行恶意活动,如窃取重要资料、篡改用户数据或利用系统作为攻击其他系统的跳板。因此,及时发现和修复漏洞对于保障信息安全至关重要。为了应对漏洞带来的风险,企业和个人需要保持警惕,采取一系列的安全措施。这包括定期更新软件和系统,使用安全扫描工具进行漏洞检测,以及及时修复已发现的漏洞。同时,加强安全教育和培训,提高员工的安全意识,也是防范漏洞攻击的重要手段。总之,漏洞是数字化世界中不可避免的安全挑战。只有通过综合的安全措施和持续的漏洞管理,我们才能有效应对这些挑战,确保系统和数据的安全。漏洞产生原因如下图1所示:

图 1漏洞产生原因

1.2 Web漏洞常见类型

  Web系统因其广泛的用户接触面和丰富的功能逻辑,常常成为攻击者的主要攻击目标。攻击者往往会采取Web打点的手段,首先获取边界Web服务器的访问权限,进而将其作为突破口,深入内网实施横向渗透。鉴于Web系统处理着海量的用户数据和敏感信息,任何安全漏洞都可能导致数据外泄、服务崩溃等严重后果。如图3所示,这里我们将以跨站请求伪造(CSRF)攻击、分布式拒绝服务(DDOS)攻击、暴力破解以及SQL注入漏洞等为例,深入剖析这些常见漏洞的具体情况。如下图2所示:

图 2 Web常见漏洞

1.2.1 CSRF攻击

1CSRF攻击的含义:CSRF漏洞(Cross-Site Request Forgery,跨站请求伪造)的本质是利用用户已经通过身份验证的会话来执行未经授权的操作。其中,在CSRF攻击中,攻击者通过伪装成合法用户的请求,可诱使受害者在不知情的情况下执行了意外的操作,如:更改密码、发起金融交易、删除帐户等。

2CSRF攻击的成因:攻击者利用用户已登录的Web应用程序的信任,通过伪造用户请求来执行非用户本意的操作,这通常是因为用户的浏览器同时处于多个站点的登录状态,且其中一个站点被嵌入了恶意代码。

3、防御策略

1.CSRF令牌:CSRF令牌是一种有效的防御策略。其中,在表单提交或敏感操作的请求中包含一个随机生成的CSRF令牌,服务器在接收请求时验证令牌的有效性,如果令牌无效或丢失,则拒绝请求。

2.Referer检查:检查HTTP头中的Referer字段,确保请求来自合法的来源。其中,该方法有一定限制,因为某些浏览器可能会禁用或不提供Referer头。

1.2.2 DDOS攻击

1DDOS攻击的含义: DoS 攻击全称拒绝服务(Denial of Service),简单的说就是让一个公开网站无法访问,而 DDoS 攻击(分布式拒绝服务 Distributed Denial of Service)是 DoS 的升级版。

2DDOS攻击的成因:攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这就是 DoS 攻击。攻击者使用多台计算机或者计算机集群进行 DoS 攻击,就是 DDoS 攻击。

3、防御策略

1.防止 DDoS 攻击的基本思路是限流,限制单个用户的流量(包括 IP 等)。

2.把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,最好在需要调用数据库的脚本中,拒绝使用代理的访问,经验表明,使用代理访问你网站的80%属于恶意行为。

1.2.3 XSS攻击

1XSS漏洞的含义:XSS 攻击全称跨站脚本攻击(Cross-Site Scripting),简单的说就是攻击者通过在目标网站上注入恶意脚本并运行,获取用户的敏感信息如 CookieSessionID 等,影响网站与用户数据安全。

2XSS漏洞的类型

  1. 反射型(非持久型)XSS

当受害者点击含有恶意XSS代码的URL时,该代码会被Web应用程序不加处理地“反射”回受害者的浏览器并执行。但是由于恶意代码并没有保存在目标网站,因此这种攻击是一次性的。

  1. 存储型(持久型)XSS

存储型XSS会被储存在服务器端,当其他用户访问包含该XSS代码的页面时,代码会被浏览器解析并执行。

  1. DOM型XSS

DOM型XSS是由于客户端脚本逻辑错误导致的安全问题。与反射型XSS相似,这种攻击也是一次性的。

3XSS漏洞的危害:窃取用户信息、进行钓鱼欺骗、网页挂马、会话劫持等

4、防御策略

1.输入过滤:过滤用户输入,删除或禁用可能包含恶意代码的标签、脚本和特殊字符。同时,可对用户输入的数据进行验证,包括检查数据类型、长度和格式等,只接受合法的输入。

2.输出编码:在输出数据到HTML页面时,应该对其进行适当的编码,目的是防止浏览器将用户输入解释为可执行的脚本。其中,不同的输出位置应采用不同的编码方式,如:HTML编码、JS编码、CSS编码等。

3.内容安全策略(CSP):相对而言,CSP是一种有效的防御XSS漏洞的方法。其中,CSP允许定义哪些来源的内容可以被加载和执行,从而可限制恶意脚本的执行。

4.HttpOnly和Secure标志:对于Cookie,使用HttpOnly标志可以防止JavaScript访问它们,从而减少了对会话Cookie的窃取风险。同时,在敏感数据传输时可使用Secure标志,确保只在安全的HTTPS连接下传输Cookie。

1.2.4 SQL注入

1、SQL注入漏洞的含义:SQL注入漏洞的本质是应用程序未能充分验证和过滤用户提供的输入数据,导致攻击者能够将恶意SQL代码注入到应用程序的SQL查询中,从而执行未经授权的数据库操作。

2、SQL注入漏洞的根本成因:

1.不当的类型处理:应用程序未能对用户输入的数据进行正确的类型处理,导致攻击者可以插入恶意的SQL代码。

2.不安全的数据库配置:数据库的配置存在安全漏洞,使得攻击者可以利用这些漏洞执行非法的SQL命令。

3.不合理的查询集处理:应用程序在构建SQL查询语句时,未能对用户输入的数据进行充分的验证和过滤,导致攻击者可以插入恶意的SQL代码。

4.不当的错误处理:应用程序在处理数据库错误时,未能正确地处理或隐藏错误信息,导致攻击者可以利用这些错误信息来获取数据库的结构和存储的数据。

5转义字符处理不合适:应用程序在处理用户输入的数据时,未能正确地处理转义字符,导致攻击者可以利用这些转义字符来插入恶意的SQL代码。

3、SQL注入漏洞的危害:攻击者可以通过注入恶意SQL查询来窃取敏感数据;修改数据库中的数据;还通过操作数据库对特定网页进行篡改,发布一些违法犯罪信息,损害企业或个人的声誉;甚至可能获取服务器最高权限,远程控制服务器。

4、SQL注入漏洞的常见类型

1.数字型注入

2.字符型注入

3.SQL盲注

4.SQL报错注入

5、防御策略

1、输入参数的过滤:对于用户输入数据,进行严格的验证和过滤,只允许合法和预期的字符通过。相对而言,建议使用白名单机制,以确保只有有效的数据进入数据库。

2、使用参数化查询:使用参数化查询语句(Prepared Statements,即:预编译语句)是防止SQL注入的首选方法。该方法可将用户的输入数据作为参数传递给3、SQL查询,而不是将其嵌入到SQL语句中,即确保输入数据不会被解释为SQL代码,从而可阻止SQL注入攻击。

最小权限的原则:数据库用户应该被授予最小的权限,以执行需要的操作。这样,即使发生了SQL注入,攻击者也只能访问被允许的数据和操作,无法对整个数据库进行攻击。

 以下代码块是第二个主题

岱宗企业网站需求分析

随着网络以及数字化时代的到来,越来越多的企业希望咨询公司能够提供深入的市场洞察和趋势分析,帮助他们理解行业发展趋势、竞争对手动态以及潜在的市场机会。

2.1 岱宗企业网站现状需求分析

岱宗企业是一家领先的战略和业务咨询公司,专注于为企业提供深入的洞察、创新的策略和有效的执行方案。他们的使命是帮助企业在复杂多变的商业环境中找到新的增长机会,实现业务转型和持续增长,岱宗将秉持“策略引领,智慧启迪”的企业理念,不断提升服务质量,为客户创造更大的价值。通过专业咨询和智慧支持,岱宗将在激烈的市场竞争中脱颖而出,实现可持续发展。访问岱宗企业网站主页如下图3所示。

图 3岱宗企业主页

岱宗企业网站基于WAMP架构(Windows操作系统为基石,Apache作为Web服务器,Mysql作为数据库管理系统,Php作为服务器端脚本语言)构建,充分利用了Windows操作系统的稳定性与兼容性,结合Apache的高效Web服务能力,Mysql的可靠数据存储方案以及Php的动态网页生成技术。这种组合确保了网站在高并发、大数据量的情况下仍能保持流畅、稳定的运行。

岱宗企业网站采用B/S模式进行Web架构设计,即浏览器(Browser)与服务器(Server)之间的交互模式。在这种模式下,用户无需安装额外的客户端软件,只需通过浏览器即可访问网站,获取所需的信息和服务。这种模式不仅简化了用户的使用流程,还降低了系统的维护成本。

B/S模式的优点在于,所有的业务逻辑和数据处理都在服务器端完成,用户只需通过浏览器与服务器进行通信,无需关心后端的具体实现细节。这种设计模式使得岱宗企业网站在用户体验、系统维护和网络拓扑结构方面都具有很高的灵活性和可扩展性。

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

2.2 岱宗企业网站漏洞挖掘需求分析

由于岱宗企业公司体量越来越大,网络知名度越来越高,该企业的门户网站经常出现弹出莫名奇妙的弹窗,甚至管理员的账户被莫名的盗用,用户的信息和数据也出现了泄露的风险,网站主页的内容也经常被莫名的修改,使得企业部分用户存在对企业丢失信任度的情况,影响了公司业务的正常展开。

因此,岱宗企业网站管理负责人迫切寻求第三方渗透测试工程师对该企业的门户网站进行渗透测试来找寻其网站漏洞,分析漏洞危害并提出修复建议用于后期安全加固,以保证企业业务的正常展开。主要需求如下:

1.针对用户信息和数据的泄露,找寻出现这种现象的原因并进行安全加固。

2.针对管理员账号被莫名的盗用,找寻黑客盗用管理员账户的原因,究竟是管理员账号密码被破解还是其他原因导致并进行安全加固。

3.针对网站出现的莫名弹窗,找寻弹窗出现的原因并进行安全加固。

以下是第三个主题 

3 岱宗企业网站信息收集

3.1 岱宗企业网站基本信息收集

信息收集是网络安全测试中至关重要的一环,它关乎着能否准确掌握目标的详细信息,深入理解其运作方式。通过精心策划和执行信息收集,我们能够洞察目标的薄弱环节,从而确定出最有效的攻击路径。可以说,信息收集的完善程度直接决定了渗透测试的难易程度,甚至最终决定了测试的成败。因此,在进行任何安全测试之前,务必高度重视并精心执行信息收集工作。

3.1.1 主机探测及端口信息扫描

岱宗企业的官网为:www.aiou.com,先使用ping命令获取域名所属的ip地址,以便进行更全面深入的漏洞挖掘和渗透测试。使用ping命令获取到的ip地址如下图4所示:

图4 PING命令获取结果

收集到 IP 地址后,需要收集 Web 服务器开放了哪些端口,方便排查这些端8口是否也存在安全漏洞。

在收集端口时使用了 nmap(Network Mapper)工具,是一款开源的网络扫描工具,用于网络发现和安全审计。它的基本功能包括主机发现、端口扫描、版本侦测和操作系统侦测。通过Nmap,用户可以检测目标主机是否在线,确定开放的端口及其提供的服务,还可以推断目标主机使用的操作系统。此外,Nmap还允许用户定制扫描策略,以满足不同的需求。无论是扫描少量节点的LAN,还是大型网络,Nmap都能提供强大的支持。使用 nmap 工具对岱宗企业网站端口收集结果如下图5所示。

图 5 NMAP收集端口信息

3.1.2 目录扫描

对岱宗企业网站进行目录信息扫描,本次扫描所使用的工具为dirseach,dirseach是一款由python语言编写开发的目录扫描工具,具有强大的字典和扫描功能,常用于扫描网站的敏感信息,如敏感文件和目录等。扫描结果如下图6所示:

图 6 dirseach目录扫描结果

3.2 岱宗企业网站Web安全漏洞扫描

安全漏洞扫描是网络安全领域中一项至关重要的任务。通过使用专业的漏洞扫描工具,安全专业人员能够系统地评估网络、系统或应用程序的安全性,以发现潜在的安全隐患和弱点。漏洞扫描工具能够自动或手动地检测目标系统中的安全漏洞,扫描过程通常涉及发送特定的网络数据包到目标系统,并分析其响应,以确定是否存在可以被利用的漏洞。

Goby是一款网络安全测试工具,它可以帮助用户快速发现和梳理目标企业的攻击面信息,并进行高效的漏洞扫描。通过利用积累的规则库,Goby可以全自动地实现IT资产攻击面的梳理,提高扫描速度和精准度。同时,它还具备实战性、体系性、高效性、平台性和艺术性等特点,是一款功能强大且注重实战效果的网络安全工具。

使用Goby对岱宗企业网站扫描结果如下图7所示:

图 7 Goby安全漏洞扫描结果

以下是第四个主题 

4 岱宗企业内容管理系统漏洞分析与利用

4.1 漏洞分析

在进行Web安全测试时,安全测试人员需要综合运用之前信息收集阶段获取的所有关键信息。漏洞分析过程中,他们应特别关注系统的版本信息、正在运行的服务以及这些服务是否存在已知漏洞,特别是nday漏洞。同时,他们还应对漏洞扫描结果进行仔细审查。结合这些信息,安全测试人员应尝试在Web端寻找潜在的攻击点,并在测试过程中逐一验证这些攻击点的有效性。

当面对使用开源代码的网站时,安全测试人员不仅需要核实系统是否存在已公开的漏洞,还需通过代码审计来识别潜在的0day漏洞。在情报搜集阶段,我们发现岱宗企业网站的Web端管理系统(CMS)是基于开源的XHCMSv1.0进行定制开发的。如果岱宗企业未能及时更新和修复XHCMS v1.0中的已知漏洞,那么安全测试人员可以从这些已知漏洞入手,对岱宗企业的Web端进行深入的安全漏洞挖掘。

为了有效地进行漏洞挖掘,安全测试人员可以利用搜索引擎或其他专业工具,查找XHCMS v1.0版本中存在的nday漏洞信息。事实上,cnvd上已经公开了一些与XHCMS v1.0相关的漏洞信息,如图所示。安全测试人员可以依据这些信息,结合他们的专业技能和工具,对岱宗企业的Web端进行全面的安全评估,并提出有效的修复建议。获取漏洞信息如下图8所示:

图 8 CNVD获取的公开漏洞信息

4.2 文件包含漏洞

在本地搭建xhcms进行白盒审计时发现网站首页index.php的代码存在文件包含漏洞,因为它没有充分验证和过滤用户通过 URL 参数 r 提供的文件名。攻击者可以利用这个漏洞来尝试包含并执行服务器上的任意文件,从而可能导致代码执行、数据泄露或其他安全问题。代码如下图9所示:

图 9 文件包含漏洞源代码

在本地搭建的网站根目录添加一个a.php配置文件,内容为phpinfo(),尝试访问含有文件包含漏洞POC的url:http://aiou.com/?r=a,服务器执行了新增配置文件中的代码,说明存在文件包含漏洞。验证结果如下图10所示:

图 10 文件包含漏洞验证

4.3 SQL注入漏洞

本团队访问网站的www.aiou.com/admin路径后,发现网页会跳转到login页面,疑似后台登录点。进一步确认后,确认该路径为后台登录页面。在更进一步测试中本团队对此页面通过多种渗透测试最终发现了SQL注入漏洞。后台页面如下图11所示:

图 11 后台管理页面

尝试登录并burpsuite抓包,将burpsuite抓取到的数据在本地保存为txt文件。如下图12所示:

图 12 bp抓包保存到本地的数据包

在此数据中发现了可插入SQL语句的参数,使用sqlmap爆出数据库、中间件、编程语言版本,确定存在SQL注入漏洞。验证结果如下图13所示:

图 13 SQL注入漏洞验证结果

攻击者通过该漏洞可获得数据库中的用户数据和信息,还可以利用此漏洞执行恶意SQL语句,进而获取、篡改或删除数据库中的敏感信息,甚至可能完全控制整个数据库系统。

4.4 跨站脚本攻击(XSS)

利用sql注入获得的管理员账号和密码登录后台后发现管理员个人资料设置处有很多信息输入框,本团队在多个输入框执行了XSS注入语句最终在某输入框中找到了XSS漏洞,本团队使用基础XSS语句测试成功后决定在此处查管理员cookie如下图14所示:

图 14 XSS漏洞验证输入框

本团队在利用XSS语句成功爆出管理员的cookie后,经测试点击此页面即会弹窗,证明此处存在存储型XSS。验证结果如下图15所示:

图 15 XSS漏洞验证结果

4.5 逻辑漏洞(垂直越权)

经过本司测试发现在网页登录页面存在垂直越权漏洞,攻击者在管理登录页面不需要登录账户即可使用admin账户。

在网页登录页面打开开发者工具application选项,并点击查看cookie和网站域名。如下图16所示:

图 16 登录页Cookie修改处

双击空白处添加name名称为user,所属值value为admin。如下图17所示:

图 17 添加的Cookie值

在cookie中的user值设为amdin管理员用户导致系统将使用管理员权限登录上线。

将添加成功后访问www.aiou.com/admin/index.php,发现成功登录进入后台并为admin管理员用户,证明此处存在垂直越权漏洞。验证结果如下图18所示:

图 18 越权漏洞验证结果 

以下是第五个主题 

5 岱宗企业网站管理系统安全加固

5.1 岱宗企业网站管理系统文件包含加固

未判定路径导致的文件包含漏洞修复方案

在岱宗企业公司的系统中存在文件包含漏洞。漏洞源代码如下:

<?php

//单一入口模式

error_reporting(0); //关闭错误显示

$file=addslashes($_GET['r']); //接收文件名

$action=$file==''?'index':$file; //判断为空或者等于index

include('files/'.$action.'.php'); //载入相应文件

?>

在岱宗企业公司系统这段 PHP 代码存在文件包含漏洞。文件包含漏洞通常发生在软件程序应用不正确的处理用户输入的文件名,并且程序没有对这些输入进行充分的验证和过滤,攻击者就可能会尝试包含恶意文件,如路径 ../../malicious_file.php,从而执行代码。

为了修复该文件包含漏洞,需要确保被包含文件的路径是固定的并且不能被用户输入所控制。以下是一些建议的修复步骤:

1.尽量使用绝对路径来包含文件,而不是相对路径。这样即使用户输入被错误地插入到路径中,也不会影响被包含文件的实际位置。

2.确保用户输入不会影响到文件包含操作。对用户输入进行适当的验证和过滤,防止恶意输入被传递给 require 或 include 语句。

3.考虑使用 PHP 提供的安全函数,如 include_once 或 require_once,它们会在文件被包含之前检查文件是否存在,从而减少潜在的风险。

4.将允许包含的文件列表限制在一个已知的安全目录内,并只允许包含该目录中的文件。这样可以减少攻击者通过路径遍历来包含恶意文件的可能性。

修复代码如下:

function protect($r){    

$key=0;    

$cars=array("about","contact","content","download","downloads","index","list","pages","software","submit");    

for ($i=0;$i<count($cars);$i++){        

    if($r==$cars[$i])            

    $key=1;    

}    

return $key; }

修复效果如下图19所示:

图 19 文件包含漏洞修复结果

5.2 岱宗企业网站管理系统XSS加固

未进行转义导致的xss注入漏洞修复方案

岱宗企业公司某输出显示代码中存在一个关键的XSS注入风险。漏洞源代码如下:

<?php

$user=$_COOKIE['user'];

$query = "SELECT * FROM manage WHERE user='$user'";

$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

$user = mysql_fetch_array($resul);

?>

<ul class="nav navbar-nav pull-right">

<li class="dropdown pull-right">            

<a data-toggle="dropdown" class="dropdown-toggle" href=" ">

<iclass="icon-user"></i><?php echo ($user['name'])?>

要修复上述代码中的XSS漏洞,需要确保用户输入的数据在输出到HTML页面之前得到适当的转义或过滤。在PHP中,可以使用htmlspecialchars函数来转义HTML特殊字符,从而防止XSS攻击。

防止XSS攻击:当攻击者尝试在输入框中插入恶意脚本(如<script>alert('XSS');</script>)时,如果这些数据没有被正确转义并直接输出到HTML中,浏览器会将其解析为实际的脚本代码并执行它。使用htmlentities函数可以确保这些脚本被转换为无害的HTML实体,从而阻止了XSS攻击。

修复代码如下:

<?php

$user=$_COOKIE['user'];

$query = "SELECT * FROM manage WHERE user='$user'";

$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

$user = mysql_fetch_array($resul);

?>

<ul class="nav navbar-nav pull-right">

<li class="dropdown pull-right">            

<a data-toggle="dropdown" class="dropdown-toggle" href=" ">

<i class="icon-user"></i> <?php echo hemlentities$user['name']?>

修复效果如下图20所示:

图 20 XSS漏洞修复结果

无法弹出用户Cookie

5.3 岱宗企业网站管理系统SQL注入加固

未过滤字符导致的SQL注入漏洞修复方案

岱宗企业的原PHP代码中,存在一个关键的SQL注入风险。原因在于,代码直接从$_POST数组中获取用户输入的数据$user和$password,并直接将这些数据插入到SQL的查询中。这种做法允许攻击者的恶意用户通过输入特定的字符组合来注入恶意的SQL代码,从而可能窃取其他用户的账号和密码。漏洞源代码如下:

<?php

ob_start();

require '../inc/conn.php';

$login=$_POST['login'];

$user=$_POST['user'];

$password=$_POST['password'];

$checkbox=$_POST['checkbox'];

直接将$user 和 $password 变量中的特殊字符,这些特殊字符可能会被误解为 SQL 代码的一部分。导致攻击者注入的恶意语句被执行,成功从后台获取的用的账号名与密码,为了修补这一安全漏洞,本司推荐在将数据插入到SQL查询之前,使用mysql_real_escape_string函数对其进行转义处理。这个函数的作用是将特殊字符转义,使其不再拥有SQL代码的功能,从而让数据库将这些数据当作普通字符串处理。这样的话即使攻击者尝试注入SQL代码,数据库也会忽略这些代码,从而保护系统的安全性。

修复代码如下:

<?php

ob_start();

require '../inc/conn.php';

$login=$_POST['login'];

$user=mysql_real_escape_string($_POST['user']);

$password=mysql_real_escape_string($_POST['password']);

$checkbox=$_POST['checkbox'];

修复成果如下图21所示:

图 21 SQL出入漏洞修复结果

5.4 岱宗企业网站管理系统逻辑漏洞加固

未规范定义变量导致的逻辑漏洞修复方案

岱宗企业原PHP代码中,存在逻辑漏洞中的越权访问。漏洞源代码如下:

<?php

require '../inc/checklogin.php';

require '../inc/conn.php';

$setopen='class="open"';

$query = "SELECT * FROM adword";

$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

$ad = mysql_fetch_array($resul);

$save=$_POST['save'];

$ad1=addslashes($_POST['ad1']);

$ad2=addslashes($_POST['ad2']);

$ad3=addslashes($_POST['ad3']);

if ($save==1){

$query = "UPDATE adword SET

ad1='$ad1',

ad2='$ad2',

ad3='$ad3',

date=now()";

@mysql_query($query) or die('修改错误:'.mysql_error());

echo "<script>alert('亲爱的,广告设置成功更新。');location.href='?r=adset'</script>";

exit;

}

?>

在源代码的基础上加上defined('IN_SYS') 用来检查IN_SYS这个量是否被定义。如果 IN_SYS 这个量没有被定义,那么 defined('IN_SYS') 的结果为 true,此时会执行 exit('漏洞已修复'),输出一条消息并终端该脚本的执行。

这段代码代码通常用于防止直接访问 PHP 文件,特别是那些应该通过框架或其他机制间接访问的文件。通过定义 IN_SYS 常量,并在文件头检查IN_SYS量是否被定义,可以确保只有当文件被框架或其他机制包含时才会执行。如果文件被直接访问的话IN_SYS 量将未定义,因此脚本会输出漏洞已修复并且中止退出。这是一种简单的安全措施,用于防止未经授权的直接访问。

修复代码如下:

<?php

if(!defined('IN_SYS'))

{  exit

('漏洞已修复');

 }

require '../inc/checklogin.php';

require '../inc/conn.php';

$setopen='class="open"';

$query = "SELECT * FROM adword";

$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

$ad = mysql_fetch_array($resul);

$save=$_POST['save'];

$ad1=addslashes($_POST['ad1']);

$ad2=addslashes($_POST['ad2']);

$ad3=addslashes($_POST['ad3']);

if ($save==1){

$query = "UPDATE adword SET

ad1='$ad1',

ad2='$ad2',

ad3='$ad3',

date=now()";

@mysql_query($query) or die('修改错误:'.mysql_error());

echo "<script>alert('亲爱的,广告设置成功更新。');location.href='?r=adset'</script>";

exit;

}

?>

修复效果如下图22所示:

图 22 逻辑越权漏洞修复结果

无法越权登录

 此外,总结、致谢和参考文献暂未著作。

  • 46
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满心欢喜love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值