发生在服务端的一种绕过,假如服务端检查上传图片的宽度和高度,限制只能上传图片格式,那么怎么上传我们的PHP文件shellcode
呢?
在线实验环境: http:// 144.34.129.116/ (请勿攻击,抓住看我不打死你哦)
维护服务器需要一定费用,本网站有效维护到2019年9月!赞助请打赏文章,会积好运。
兄弟来试试隐写术吧 ~
第一步:准备一张图片,
第二步:准备要上传的shellcode文件,
第三步:发动隐写术,将shellcode写进图片中,
第四步:上传隐写术生成的图片。
成功释放隐写术中的shellcode
,成功!
前端代码:
<!-- index4.html by ailx10 -->
<html>
<head>
<title>ailx10</title>
</head>
<body>
<form action="upload4.php" method="post" enctype="multipart/form-data">
<label for="file">FileName:</label>
<input type="file" name="file" id="file" value="file" /><br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
后台代码:
// upload4.php by ailx10
<?php
if($_FILES["file"]["error"] > 0)
{
echo "Return Code:" . $_FILES["file"]["error"] . "<br />";
}
else
{
if(!getimagesize($_FILES["file"]["tmp_name"]))
{
exit("Not allowed suffixes");
}
echo "Upload:" . $_FILES["file"]["name"] . "<br />";
echo "Type:" . $_FILES["file"]["type"] . "<br />";
echo "Size:" . ($_FILES["file"]["size"]/1024) . " kb<br />";
echo "Temp file:" . $_FILES["file"]["tmp_name"] . "<br />";
if(file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . "already exists.";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
echo "Stored in:" . "upload/" . $_FILES["file"]["name"];
}
}
?>
参考文献:《Web安全攻防:渗透测试实战指南》电子工业出版社