上传绕过php文件改为图片,文件上传绕过(二)

基于文件后缀名的绕过

同理,我们先看源码$is_upload = false;

$msg = null;

if (isset($_POST['submit'])) {

if (file_exists($UPLOAD_ADDR)) {

$deny_ext = array('.asp','.aspx','.php','.jsp');

$file_name = trim($_FILES['upload_file']['name']);

$file_name = deldot($file_name);//删除文件名末尾的点

$file_ext = strrchr($file_name, '.');

$file_ext = strtolower($file_ext); //转换为小写

$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

$file_ext = trim($file_ext); //收尾去空

if(!in_array($file_ext, $deny_ext)) {

if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR. '/' . $_FILES['upload_file']['name'])) {

$img_path = $UPLOAD_ADDR .'/'. $_FILES['upload_file']['name'];

$is_upload = true;

}

} else {

$msg = '不允许上传.asp,.aspx,.php,.jsp后缀文件!';

}

} else {

$msg = $UPLOAD_ADDR . '文件夹不存在,请手工创建!';

}

}

从源码中我们可以看到,当前禁止了asp aspx php jsp等常见的后缀名。此时我们用BURP截包改包即可。

只需要将后缀名php改为phtml即可。

4ffaf4bd1b4a630510463c3699235a69.png

如图,成功上传,获得shell

40872484759d313f2f19d942016f1098.png

更另类的文件绕过

先看源码$is_upload = false;

$msg = null;

if (isset($_POST['submit'])) {

if (file_exists($UPLOAD_ADDR)) {

$deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf");

$file_name = trim($_FILES['upload_file']['name']);

$file_name = deldot($file_name);//删除文件名末尾的点

$file_ext = strrchr($file_name, '.');

$file_ext = strtolower($file_ext); //转换为小写

$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

$file_ext = trim($file_ext); //收尾去空

if (!in_array($file_ext, $deny_ext)) {

if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {

$img_path = $UPLOAD_ADDR . $_FILES['upload_file']['name'];

$is_upload = true;

}

} else {

$msg = '此文件不允许上传!';

}

} else {

$msg = $UPLOAD_ADDR . '文件夹不存在,请手工创建!';

}

}

从这里,我们看到限制的文件包含了我们常用的所有文件。

".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3"

同理,还是很简单,我们仍需burp改包就可以了。

将php改为phP或者pHP即大小写组合。

c0300953a3fe9054b53b0cb3ff9f8b98.png

eecda4dda03ee2e0d1693238b9088dcb.png

版权属于:逍遥子大表哥

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值