建站之星模糊测试实战之任意文件上传漏洞

0x00 Sitestar

美橙互联又一力作,建站之星专业版(Sitestar Pro),

无拘无束,信手拈来,创意无限,不拘一格,轻松创建属于您自己的网站!

0x01 漏洞的产生

/module/mod_tool.php 第89行起,img_create()函数

上述关键的代码

其中 PIC_ALLOW_EXT 为 gif|jpg|png|bmp 即如果文件名最后不是gif|jpg|png|bmp,则提示文件类型错误

我们继续往下看…

跟进_savelinkimg函数 736行-741行

其中我们关心的是move_uploaded_file函数

看见没有,直接用我们上传的的文件名作为最终写进硬盘的文件名

到这里,我们可以简单对其进行利用

上传类似如下文件:shell.php;.jpg 或shell.php.a;.jpg 利用解析漏洞即可利用,但这并不是我们今天所要讲的内容,SO 继续….

0x02 尝试漏洞利用

既然文件名是我们上传的文件名,那我们用截断上传试试呢…

首先我们尝试最最最常用的截断方法: %00

为方便调试,我们加入调试代码

同时将如下代码保持为sitestar.htm

打开sitestar.htm,Burpsuite抓包 采用%00截断:
1
输出了我们的调试代码
2
看见了吧,不能成功的被截断,那我们是不是就到此为止了呢? 显然 答案是NO!

额 !!想起来了…我们都知道Fuzzing很强大… SO 继续吧…
0x03 Fuzzing成功利用

丢一真理:实践出真知,各位看官们 眼睛睁大了…

为了能Fuzzing,看来还得码代码啊,首先抓个上传的包,方便代码中用

这里我们用py写Fuzzing的代码,好吧 我已经给各位写好啦

0x04 Fuzzing动起来

step1 首先注册个用户名

step2 登陆后 抓下Cookie

step3 打开CMD,哈哈…

我们的cookie如下

打开CMD Fuzzing 跑起来…
5
看见了吧,%80 — %99都可以截断
生成的文件如图(路径:upload/image)
3
看见了吧,shell.php 就躺在对方的硬盘里了…

0x05 Fuzzing成功
4
// ]]>

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录