信息系统安全实验之文件上传漏洞导致主页篡改实验

一、实验目的

1.了解文件上传漏洞的原理和攻击方式。

2.在学习该漏洞的出现原因的过程中了解该漏洞的防范和加固方式。

二、实验环境

1.操作系统:Windows 7(虚拟机环境)。

2.工具:phpStudy、Burp Suite、中国蚁剑、Firefox浏览器。

三、实验步骤和结果

(1)在虚拟机上安装好phpStudy,并运行:

(2)对phpStudy进行端口检测,可以看到80和3306端口均正常:

(3)将zd文件夹(实验平台源码文件夹)复制到phpStudy的网站存放目录中,如下图所示:

(4)配置数据库文件,使用notepad++打开zd\sys\config.php,编辑数据库的账号和密码,数据库的账号默认为root,密码默认为root。$database =‘zd’表示数据库的名称为‘zd’。网站的根目录为/zd,如下图所示:

(5)单击【MySQL管理器】,选择【MySQL-front】,配置数据库:

(6)打开数据库,数据库中没有包含名为zd数据库。需要新建数据库并导入:

        选择C:\www\zd\sys文件夹中的zd.sql文件,字符集修改为utf8,utf8为可变长度字符编码方式,选择其他编码方式会导致导入不成功,点击【打开】,如下图所示:

        可以看到数据库上传成功:

(7)打开Firefox浏览器,访问http://127.0.0.1/zd/:

        可以看到此时网页你能够打开,但是里面的内容和实验指导书中的不同。为了统一,需要对相关php文件进行修改。

(8)使用notepad++打开zd\index.php、zd\header.php,进行相应的修改,如下所示:

(9)刷新浏览器界面,可以看到此时的网页和实验指导书中的内容是一样的:

(10)点击右上角【注册】按钮,注册并登录一个新账号:

(11)由于修改头像可能会出现上传漏洞,所以点击【编辑】进行头像修改,如下图所示:

(12)在桌面上新建一个文本文档,写入一句话木马,口令为360,如下图所示。保存后修改文件名为shell,由于上传头像为图片格式,所以修改文件格式后缀为.jpg文件:

(13)由于上传的文件是图片.jpg格式,所以需要使用Burp Suite监听数据包并将文件格改为.php格式,才能保证一句话木马连接成功。

        首先打开Burp Suite,进行一些必要的设置:

        选择【Proxy】→【Intercept】,先点击【Intercept is on】使其切换回“Intercept is off”的状态,即拦截关闭的状态:

(14)在Firefox浏览器设置代理服务器:

(15)切换回Burp Suite界面,点击【Intercept is off】使其切换回“Intercept is on”的状态,即拦截开启的状态:

(16)返回浏览器登陆后的页面,单击【选择文件】,选择刚刚建立的shell.jpg文件,点击上传:

(17)返回Burp Suite,可以看到Burp Suite拦截到的数据包:

(18)将数据包中的shell.jpg文件更改格式为.php:

        点击左上角的【Forward】,直到出现下图所示的界面,表示该数据包上传结束:

(19)在【头像】处右键,点击【新建标签页打开图像】,可以获取文件位置,可以看到上传的文件所在目录为http://127.0.0.1/zd/images/:

(20)看到上传成功后,表示网站不存在图片上传检测机制,所以导致上传漏洞。打开中国蚁剑,进行相关信息的设置:

        点击【测试连接】,可以看到连接成功:

        点击【添加】:

(21)双击上图的蓝色部分,即可进入后台,说明入侵成功:

        选择目录C:\www\zd\,可以看到index.php文件,网站的主页名称一般是index,先下载查看是否是主页文件:

        下载后打开index.php文件,验证发现即是网站主页文件,所以修改如下图所示的位置,即可修改zd公司留言板的页面,如添加广告等:

(22)对上面的文件进行如下图所示的修改:

(23)在中国蚁剑中上传刚刚修改的index.php文件:

(24)重新打开Firefox浏览器,访问http://127.0.0.1/zd,可以发现成功修改了留言板的主页:

        至此,成功实现了利用文件上传漏洞导致网站主页篡改的目的。

(25)实验拓展一:利用phpStudy配置网站环境时,修改WEB服务器向外提供服务的端口,将80端口修改为9999,最终访问网站的网址是:“http://127.0.0.1:9999/zd”访问网站:

        在phpStudy中进行如下设置然后重启phpStudy:

        在Firefox输入http://127.0.0.1:9999/zd,此时可以成功访问网站:

(26)实验拓展二:编写一句话木马时,将一句话木马的连接口令修改为本人学号,应该如何实现?

        只需将之前写的shell里的“360”修改为“2020211950”即可:

        后续的步骤和前面的基本一致,如下所示:

                打开中国蚁剑,新建数据,其中密码就为学号2020211950:

        同样双击添加好的数据,可以看到能够入侵成功:

(27)实验拓展三:通过中国蚁剑连接网站服务器后,在网站服务器根目录下新建一个文本文件,文件名为本人学号,应该如何实现?

        首先定位到网站服务器根目录/zd下:

        依次点击【新建】——>【文件】:

        将文件命名为学号2020211950:

        打开/zd,可以看到创建成功的文本文件:

(28)实验拓展四:小张需要防止盈利性广告事件再次发生,请问有什么方法可以防范文件上传漏洞呢?

        由分析可以得到,该文件上传漏洞利用的点应该就是用户更新头像时,没有检测上传的“图像”的真正格式的机制。首先找到用户更新头像的php文件

updataAvatar.php:

        通过分析,可以确定这段代码的确存在文件上传漏洞,需要进行一定的修改以达到保护的目的。修改的原理为:服务器端对上传的文件后缀名进行限制,也就是不允许上传.php文件。

        修改后的代码如下所示:

        现在来尝试上传之前的一句话木马:

 

        点击【forward】后,可以看到如下提示:

        图片上传失败,也就是一句话木马上传失败,说明对网站成功实现了防范文件上传漏洞。

四、实验收获

1.实验过程中遇到的问题及其解决方法

(1)在按照实验指导书的要求设置好Burp Suite以及Firefox的代理服务器后,仍然抓不到127.0.0.1的包。

        解决方法:在Firefox浏览器输入about:config并进入:

        搜索network.proxy.allow_hijacking_localhost,将其值改为“true”:

2.实验的心得体会和收获

(1)对phpStudy的使用更加熟悉了。

(2)了解了Burp Suite和中国蚁剑的工作原理,并动手进行了实践。

(3)了解了文件上传漏洞的原理和攻击方式,并在学习该漏洞的出现原因的过程中了解该漏洞的防范和加固方式。

        总的来说,通过这次实验,我对文件上传漏洞的原理及其防范有了更加深刻的认识,这是从课本上获取不到的。正所谓“纸上得来终觉浅,绝知此事要躬行”。

五、实验思考

(1)如果要对webshell进行检测,应该需要专业的检测工具,比如Web Shell Dectector。

(2)文件上传漏洞是一种常见且危害性很大的漏洞,需要我们对其进行防御。通过调研相关资料,我了解到可以从系统开发阶段、系统运行时、系统维护阶段三个方面采取相应的防御措施,具体如下:

系统开发阶段的防御:

1.系统开发人员应有较强的安全意识,尤其是采用PHP语言开发系统。在系统开发阶段应充分考虑系统的安全性。

2.对文件上传漏洞来说,最好能在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。客户端的检查虽然对技术较好的攻击者来说可以借助工具绕过,但是这也可以阻挡一些基本的试探。服务器端的检查最好使用白名单过滤的方法,这样能防止大小写等方式的绕过,同时还需对%00截断符进行检测,对HTTP包头的content-type也和上传文件的大小也需要进行检查。

系统运行时的防御:

1.文件上传的目录设置为不可执行。

2.判断文件类型。在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。

3.使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。

4.单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。

5.使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。

系统维护阶段的防御:

1.系统上线后运维人员应有较强的安全意识,积极使用多个安全检测工具对系统进行安全扫描,及时发现潜在漏洞并修复。

2.定时查看系统日志,web服务器日志以发现入侵痕迹。定时关注系统所使用到的第三方插件的更新情况,如有新版本发布建议及时更新,如果第三方插件被爆有安全漏洞更应立即进行修补。

3.对于整个网站都是使用的开源代码或者使用网上的框架搭建的网站来说,尤其要注意漏洞的自查和软件版本及补丁的更新,上传功能非必选可以直接删除。除对系统自生的维护外,服务器应进行合理配置,非必选一般的目录都应去掉执行权限,上传目录可配置为只读。

 

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

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

相关文章

使用崩溃服务,获取不到崩溃报告怎么办

华为AGC推出的崩溃服务,零代码集成,只需要添加SDK即可。有时可能集成了SDK,在AGC页面获取不到崩溃报告,总结了一下可以排查以下几点: 1、首先确认下端侧有没有上报 执行“adb shell setprop log.tag.AGC_LOG VERBOSE…

说说计算这事儿:从开关到人工智能

目录 一 前言 二 计算历史 三 计算探秘 四 算力优化 五 未来展望 一 前言 计算本身其实是一个比较抽象的词,或者说比较笼统。很多场景都可能用到计算这个词,因此具体的含义就需要根据上下文来确定。今天我们讨论的计算,是比较狭义的计算…

稚晖君,被百度投了!估值被曝已超独角兽

推荐阅读:“程序员交友网站” SO 突然裁员 10%,网友:ChatGPT 出来后就不咋用了 衡宇 发自 凹非寺量子位 | 公众号 QbitAI “华为天才少年”稚晖君创业项目,刚被百度风投投了! 量子位获悉,稚晖君创业项目智元…

充能书单|618,买什么都不如买知识!

前言 “IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、更实用的知识与技能,快速提升职场竞争力。 点击蓝色微信名可快速关注我们。 一年一度的618又到啦!今年的618就不要乱买…

华为鸿蒙os有微信吗,华为“鸿蒙OS”合作的多个软件 没有微信你还会用吗

花火网讯 11月12日消息,华为“鸿蒙OS”合作了很多个软件,但是里面竟然没有微信,你还会选择华为鸿蒙OS吗? 手机如今大家都离不开它,并且如今的手机给了我们很多的方便,也正因为如此,现在的人越来…

鸿蒙取得成功后,互联网企业牵头研发操作系统挑战安卓

在鸿蒙系统突破3亿用户数之后,日前传出消息指国内互联网巨头腾讯与酷派合作再研发手机操作系统,此举或许有望吸引国内诸多手机企业参与,将为国产手机操作系统打破安卓的垄断再添一份力。 华为可以说是被迫上鸿蒙系统的吧,2019年的…

汇聚开发者星星之火,华为鸿蒙系统有希望成为国产之光?

作者 | 雷架 来源 | 爱笑的架构师(ID:DancingOnYourCode) 头图 | CSDN 下载自东方IC 鸿蒙系统2.0的发布给国人带来极大的振奋,虽然有一部分人不断唱衰,觉得是大家被爱国情怀所左右,但大部分人的激动其实原…

华为背水一战,未来所有终端将仅用鸿蒙系统

有知名大V透露华为将在3月份发布最后一个基于安卓系统开发的EMUI11.1系统,此后将完全采用鸿蒙系统,这显示出它在面临巨大困难之后作出的抉择。 华为此前研发的EMUI系统说到底还是安卓系统,EMUI主要用于国内的手机上,而在海外市场则…

鸿蒙系统能用在高通上吗,其它厂商也能用,华为做出重要决定,鸿蒙OS完全开源并适配高通...

原标题:其它厂商也能用,华为做出重要决定,鸿蒙OS完全开源并适配高通 其它厂商也能用,华为做出重要决定,鸿蒙OS完全开源并适配高通 这可能是大多数国内消费者最想看到的结果吧,华为做出重要决定,…

统信软件华为 | 携手同行,共建产业新生态,共创行业新价值

9月23日至26日,华为全联接大会2020在上海世博中心成功举行,统信软件作为华为长期战略合作伙伴受邀出席。 大会期间,统信软件参与了多场线上线下专题演讲并展示了与华为合作的最新成果。 携手共建软硬件创新生态 9月23日,统信软件…

鸿蒙系统有hms推送机制,华为推送HMS服务,依靠鸿蒙OS,或将改变手机行业格局...

原标题:华为推送HMS服务,依靠鸿蒙OS,或将改变手机行业格局 谷歌在去年5月的时候停止授权GMS服务,自此,华为手机销量出现了极速下跌,而华为也不敢如此,并且在之后的不就开始了自己的自救行动。 就…

华为鸿蒙系统开源以建立生态,然同业竞争关系让它恐难获得支持

华为正式发布了鸿蒙系统,在它的PPT介绍中,鸿蒙系统在时延、流畅性等方面俱有优势,主要的弱点在于生态方面,这也是以往众多操作系统失败的缘由,为解决鸿蒙系统的生态问题,鸿蒙系统将采用开源的方式发展&…

HarmonyOS新能力让数据多端协同更便捷,数据跨端迁移更高效

作者:yijian,终端OS分布式文件系统专家;gongashi,终端OS分布式数据管理专家 HarmonyOS作为分布式操作系统,其分布式数据管理能力非常重要。我们也一直围绕持续为开发者带来全局“一份”数据的开发体验的目标&#xff0…

滋灌中小企业,分销伙伴和华为来做“送水人”

最近有个段子:第一批靠生成式AI赚大钱的人,既不是研发人员,也不是国内大厂,而是卖课的。 大家笑谈,每一轮新技术的掘金之路,最先致富的都是送水、卖铲子的。 这其实隐藏了一个信息技术产业的普遍规律&#…

除了新发布鸿蒙系统,华为还在HMS生态上下功夫

近日,华为举办鸿蒙系统(HarmonyOS)发布会,一时之间「鸿蒙手机来了」话题迅速占领热搜榜。作为一个国产移动操作系统,它被寄予了无数国人的期待、支持。 想要真正打造操作系统,关键点在于能否形成软件生态。鸿蒙系统背后&#xff0…

如何才能让手机厂商主动拥抱华为,接入鸿蒙系统?

一直以来操作系统都被国外企业所垄断,很多国家都没有属于自己的操作系统,比如俄罗斯就是这样:谷歌制裁俄罗斯,俄罗斯的手机都变成了砖头,还有什么比这更可怕的事情吗? 以前我们一直在担心这种事情现在终于…

华为:用一个圈子联接一个圈子

文/张戈 当今的企业级IT市场就是一个圈子联接着一个圈子,谁的圈子半径越大,圈子更稳固,其成绩就越斐然。这里没有丝毫贬义的成分,世界上没有任何一家企业,能脱离生态圈,在企业市场中生存。 何为生态圈&…

ChatGPT对于文心一言的评价

百度文心一言是一种短文本生成应用,它基于自然语言处理和机器学习技术,能够生成一些短小精悍的文学句子或者名言警句,提供给用户进行欣赏或者分享。 用户可以在百度文心一言的网站或者APP上输入关键词或者选择主题,例如“爱情”、…

什么是爬虫,java爬虫,动态爬虫

前言 数据将成为像石油一样宝贵的资源? 石油通过不同的方式提取可以获得工业橡胶、柴油、汽油、航空煤油等各种不同的产物。 数据从某些方面来看是和石油一样,也是可以提炼的,不同视角去看数据会有不同的作用 比如拿到所有关于车的信息&…

chatgpt赋能python:自动预约系统的效率和便捷性:基于Python的解决方案

自动预约系统的效率和便捷性:基于Python的解决方案 随着互联网的不断发展,各行各业越来越多地依赖于数字化技术。特别是在当前的疫情背景下,公共场所的预约成为必要的防疫措施。但是,面对着上千人的预约,人工管理是非…