做到了一个上传绕过的题,随便不管用,但复习一下
windows下,在cmd中通过copy中可以实现文件捆绑,
利用 命令
copy 1.jpg/b+1.php 2.php.jpg ||b是二进制,a为ascii码
可以实现图片中藏马,
如果要绕过前端上传的,可以使用00截断,利用bp抓包修改.为00
在上传的时候,当文件系统读到”0X00″时,会认为文件已经结束,从而将2.php.jpg 的内容写到2.php中,从而达到攻击的目的。
原理:一般文件内容验证使用getimeagesize()函数检测,会判断文件是否一个有效的文件图片,如果是,则允许上传,否则的话不允许上传。
其他绕过
1.构造服务器端扩展名检测上传
当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑名单的限制,则不予上传,否则上传成功。
将一句话木马的文件名1.php改成1.php.abc。首先,服务器验证文件扩展名的时候,验证的是.abc,只要改扩展名符合服务器端黑名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了.abc扩展名,会向前寻找可解析的扩展名,即”.php”。一句话木马可以被解析,即可通过中国菜刀连接。
2.绕过Content-Type检测文件类型上传
当浏览器在上传文件到服务器端的时候,服务器对上传的文件Content-Type类型进行检测,如果是白名单允许的,则可以正常上传,否则上传失效。绕过Content-Type文件类型检测,就是用Burpsuite截取并修改数据包中文件的Content-Type类型(包含大小写等),使其符合白名单的规则,达到上传的目的。