所以,这里直接操作原生socket,每次读取4096个字节。只要我们读取到字节里包含临时文件名,就立刻发送文件包含漏洞利用的数据包。因为第一个数据包的socket连接没有结束,所以临时文件还没有删除,我们就可以文件包含成功。
3.5.Getshell之上传文件
条件:有上传点,知道上传上去的文件名和存放目录。
利用:
这里用一个靶场简单演示一下,找个文件上传点,上传一个带有php恶意代码的图片。
我们现在已知文件名称和路径,可以利用文件包含漏洞去包含这个图片,就可以成功执行php代码了。
4.应对措施
1、在很多场景中都需要去包含web目录之外的文件,如果php配置了open_basedir,则会包含失败。
2、对可以包含的文件进行限制,可以采用白名单的方式,或设置可以包含的目录。
3、对危险字符进行过滤。
4、尽量不使用动态包含等等