当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名。绕过前台脚本检测扩展名,就是将所要上传文件的扩展名更改为符合脚本检测规则的扩展名,通过 BurpSuite 工具,截取数据包,并将数据包中文件扩展名更改回原来的,达到绕过的目的
将一句话木马的文件名 lubr.php,改成lubr.php.abc。首先,服务器验证文件扩展名的时候,验证的是.abc,只要该扩展名符合服务器端黑白名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了.abc扩展名,会向前寻找可解析的扩展名,即.php。一句话木马可以被解析,即可通过中国菜刀连接。apache解析文件名从后往前解析
假设文件的上传路径为http://xx.xx.xx.xx/upfiles/lubr.php.jpg,通过抓包截断将【lubr.php】后面的【.】换成【0x00】。在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束,从而将【lubr.php.jpg】的内容写入到【lubr.php】中,从而达到攻击的目的。
原文:大专栏 ctf基本的文件上传与绕过学习