内部文件上传系统漏洞分析溯源
靶场地址:https://www.mozhe.cn/bug/detail/Umc0Sm5NMnkzbHM0cFl2UlVRenA1UT09bW96aGUmozhe
- 先上传写入一句话木马的
1.txt
,返回上传成功以及文件路径,且url变为upload.asp
,判断为ASP上传点。 - 将该文件后缀修改为
asp
,再次上传发现被拦截 - 经测试得知中间件为
IIS6.0
。此版本存在目录解析漏洞:即*.asa/*.asp
文件夹内的文件会被当作asp
文件来解析 - 再次上传
1.txt
并使用Burp拦截,将文件夹路径修改abc.asp
,点击发包 - 返回上传成功和路径,使用菜刀/蚁剑访问链接,在
wwwroot
目录得到KEY文件,打开得到KEY
WebShell文件上传漏洞分析溯源(第1题)
靶场地址:https://www.mozhe.cn/bug/detail/UjV1cnhrbUxVdmw5VitBdmRyemNDZz09bW96aGUmozhe
- 尝试直接上传一句话木马
1.php
,发现无法上传; - 将一句话木马的文件后缀名修改为
.php5
再次上传,此时上传成功; - 使用菜刀连接,在
/var/www/html/
目录下找到key.php
,打开得到key
WebShell文件上传分析溯源(第2题)
靶场地址:https://www.mozhe.cn/bug/detail/TzRsdjFSYW9HQlA2OFdGbXo0KzBUdz09bW96aGUmozhe
- 进入靶场,提示需要找到后台地址,于是使用御剑扫描,得到2个路径:
/admin/upload1.php
和/admin/upload2.php
- 尝试访问
http://url/admin/upload1.php
,页面提示无权限并跳转到upload2.php
- 使用Burp抓包,再次访问
upload1.php
,在弹框提示时不放包,直接点击确定,发现页面出现一个上传点。此处可能由于浏览器原因,一开始使用Chrome浏览器,点击确定后并没有出现上传点,而换成火狐浏览器则出现该上传点。
- 出现上传点后,选择PHP一句话木马点击上传。然后在Burp处点击一次放包,将刚才跳转到
upload2.php
的包放掉,再将上传文件所抓的包发送到重发器Repeater
中
- 在重发器中点击发送,返回一个乱码,后面得知这是上传成功的意思,但是并没有返回上传文件的路径
- 最后经过搜索,发现别人的WriteUp中说在访问
upload1.php
时,使用Burp抓包并将添加Cookie: uploadmd5=upload_file.php
,可以查看upload_file.php
这个文件的源码
- 其中关键部分如下:
$path="uploadfile/";//上传路径
$verify=$_POST["verify"];
$time=date("Ymd");
if($_FILES["filename"]["name"]) {
$file1=$_FILES["filename"]["name"];
$file2 = $path.$time.'_'.$verify.'_'.$file1; // 此处为上传后的文件路径
$flag=1;
}
if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2);
if($result) echo "上传成功!";
可以发现,上传后的文件路径为:
$file2 = $path.$time.'_'.$verify.'_'.$file1
$path
:上传路径,即uploadfile/
$time
:上传时间中的年月日$verify
:verify
的值,从前端表单中获取$file1
:上传前的文件名
- 重复前面的步骤,再次上传一个木马
shell.php
,且verify
为空,当前年月日为20200405
,即拼接后文件路径为:uploadfile/20200405__shell.php
。注意这里是两个下划线_
- 使用蚁剑连接:
http://url/admin/uploadfile/20200405__shell.php
,得到key
WebShell文件上传漏洞分析溯源(第2题)
靶场地址:https://www.mozhe.cn/bug/detail/NXNRQnJGa1g1U3lmUTNxMEQ3TUFnUT09bW96aGUmozhe
- 开启Burp并尝试上传php一句话,发现Burp还没有抓到包,页面已经弹出只能上传图片格式的文件,因此判断此处只在前端进行检验
- 将一句话木马后缀修改为
jpg
并上传,通过Burp抓包后将木马文件后缀修改为php
并放行 - 上传成功,使用菜刀连接,在
/var/www/html
目录下找到key.php
,打开得到key
WebShell文件上传漏洞分析溯源(第3题)
靶场地址:https://www.mozhe.cn/bug/detail/MGt2VGdsK093TkdtcURBSXFySnZpUT09bW96aGUmozhe
- 尝试直接上传一句话木马
1.php
,提示不允许上传 - 上传图片马
2.jpg
,成功上传,但是无法连接 - 再次上传图片马
2.jpg
,使用Burp抓包并将文件后缀修改为php
,使用菜刀成功连接得到key
WebShell文件上传漏洞分析溯源(第4题)
靶场地址:https://www.mozhe.cn/bug/detail/aVJuL2J4YVhUQkVxZi9xMkFRbDYyQT09bW96aGUmozhe
- 尝试直接上传一句话木马,提示文件类型不正确,而图片文件可以上传
- 题目提示此题目标为了解
Content-Type
和MIME
,于是尝试使用Burp抓包,上传PHP文件并修改Content-Type
为image/jpeg
,上传成功 - 使用菜刀连接,在
/var/www/html/
目录可得到key
WebShell文件上传漏洞分析溯源(第5题)
靶场地址:https://www.mozhe.cn/bug/detail/OGp3KzRZUFpnVUNUZm9xcjJlN1V4dz09bW96aGUmozhe
- 进入靶场,点击后台管理,再点击登录。在后台登录页面使用弱口令
admin/admin
登录 - 将
asp
一句话木马后缀修改为.jpg
,然后点击左侧添加文章,在图片上传处将该木马图片上传。成功上传后得到图片路径/uploads/20200405143257347.jpg
- 点击左侧数据库备份,在当前数据库路径填入前面上传的图片路径,备份数据库名称填入
shell.asp
,点击备份数据
- 备份成功后,返回备份文件的路径,如:
c:\inetpub\wwwroot\admin\Databackup\shell.asp
- 此时使用蚁剑连接该文件:
http://url/admin/Databackup/shell.asp
,并在C:/inetpub/
目录下的key.txt
中得到key
版权属于:Naraku
本文链接:https://www.naraku.cn/posts/65.html
本站所有原创文章均采用 知识共享署名-非商业-禁止演绎4.0国际许可证 。如需转载请务必注明出处并保留原文链接,谢谢~