upload-labs后续(14-)

发布于:2024-04-29 ⋅ 阅读:(24) ⋅ 点赞:(0)

图片马

在图片中加入木马,然后上传让浏览器解析,达到上传木马的目的

制作图片马:可以在notepad++或者winhex中打开文件,在文件头中加入图片的文件头,再在文件末尾加入木马即可。

图片文件头如下:
1.Png图片文件包括8字节:89 50 4E 47 0D 0A 1A 0A。即为 .PNG。
2.Jpg图片文件包括2字节:FF D8。
3.Gif图片文件包括6字节:47 49 46 38 39|37 61 。即为 GIF89(7)a。
4.Bmp图片文件包括2字节:42 4D。即为 BM。

文件包含漏洞

实质:上传一段脚本,让服务端执行

包含:把可重复使用的函数写入到某个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数。

意义:攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。

pass-14

看题目环境,打开后看到提示说上传一个图片马,然后使用文件包含漏洞。

1.上传一个图片马并访问

2.使用文件包含漏洞

构造如下url然后访问即可

pass-15

1.上传图片马

getimagesize函数:对目标文件用16进制进行读取文件头的几个字符串是不是符合图片的要求,我们修改文件头为相应的

2.使用文件包含漏洞

pass-16

1.添加扩展(这个由于是自己搭的网站,会出现这种问题)

exif_imagetype()读取一个图像的第一个字节并检查其后缀名。需要在phpstudy的扩展种开启php.exif选项

Exif(Exchangeable image file format)是一种存储在JPEG和TIFF图像文件中的元数据,它包含有关图片的信息。PHP提供了一个名为Exif的扩展,可以方便地读取和处理这些信息

注意:php5.6以上的版本才能成功解析图片木马

2.上传图片马并构造包含的url

url格式为:include.php?file=upload

pass-17(二次渲染+图片马)

二次渲染:你上传的图片内容会被指令覆盖而生成或者改变成其他内容。

1.看源码

上传原本的图片马你会发现能成功上传,但是不能成功解析我们木马,查看源码,源码说会给图片进行二次渲染而生成新的图片

这里值得注意的是二次渲染并不是将所有部分都重新渲染,而是某部分被渲染

 2.打开010编辑

将之前上传成功的图片另存,并将其与没有上传的图像进行比较,可以明显看出,我们的木马部分被二次渲染,因为只是渲染部分的缘故,我们将木马插入其中一个没有被渲染的地方(16进制),再进行上传。

3.使用文件包含漏洞,成功。

pass-18(条件竞争)

1.代码审计

这上面说:假如我们上传的是jpg,png,gif类的图,会先被保存到服务器(move_uploaded_file()函数),之后就会被重新命名。反之,unlink()函数会删除这个文件。总体流程是先上传,判断文件名(是否删除文件),再进行重命名和二次渲染。

2.利用条件竞争上传绕过

我们在清理文件时会经常遇到:你打开一个文件,然后再发现你不想要,你想把它删除了,发现删除不了,这是因为你打开的文件尚未关闭,因此删除不了。我们可以里利用这个原理,用bp在它上传之前就访问,就OK了,它的名字叫条件竞争上传绕过。

它的实际操作是:用bp抓包

pass-19(条件竞争+白名单+其他漏洞配合)

1.改源码(作者问题)

2.查看源码

服务器将文件与白名单比较,检查文件类型,大小以及此文件有没有被上传,上传后又要重命名——复杂。

3.看大佬

这关后面调线程,试不出来,有兴趣的试一下。

晚安這個未知的世界-CSDN博客

pass-20(后缀黑名单+函数特性)

1.源码和函数

打开环境,多了一个可以保存名称的框

move_uploaded_file()函数会忽略掉文件末尾的 /.

 2.bp抓包

先上传一个PHP小马(修改后缀,不然传不上去),使用bp来抓包修改把后缀改为.php/.用蚁剑连接后即可

pass-21