网站制作与管理技术标准实训教程,扬州做网站的,海南新闻在线观看,房地产网站建设策划方案less1
(js验证)
我们上传PHP的发现不可以#xff0c;只能是jpg#xff0c;png#xff0c;gif#xff08;白名单限制了#xff09; 我们可以直接去修改限制
在查看器中看到使用了onsubmit这个函数#xff0c;触发了鼠标的单击事件#xff0c;在表单提交后马上调用了re…less1
(js验证)
我们上传PHP的发现不可以只能是jpgpnggif白名单限制了 我们可以直接去修改限制
在查看器中看到使用了onsubmit这个函数触发了鼠标的单击事件在表单提交后马上调用了return checkFile这个函数对上传的文件进行检查 把onsubmit这个直接删除掉即可。当提交表单时执行一段 JavaScript。它只认true或者false.如果不返回值则默认为true
上传同样的文件蚁剑链接即可 我们也可以直接去抓包修改 修改好之后就用蚁剑连接就可以了
less2
绕过MIMETYPE
MIME多用途互联网邮件扩展协议。用途为根据文件后缀名判断文件类型用什么应用程序打开但是在这里是根据文件类型判断后缀名。$_FILES[myfile][type]文件的MIME类型需要浏览器提供该信息的支持例如image/gifMIME 给出的是文件的MIME信息 此信息可以用来在HTTP Conten-type 头 信息中发送 正确的信息如header(Cotent-type:image/gif) 知道这一关是MIME验证就是会检查求情包 只对文件类型type进行了验证必须要是image/jpeg或者image/png或者image/gif的格式没有对后缀进行验证只需要使用bp抓包将Content-Type:的参数修改成image/jpeg或者image/png或者image/gif其中的一种进行绕过就好
分类 最常见的还是image
我们也是直接看看php可不可以不可以我们抓包看看png改成php再访问就可以了这里是没有改类型而是改后缀 重新上传3.phpmm为cmd less3
任务
上传一个脚本文件到服务器并能成功执行。
$is_upload false;
$msg null;
if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$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)) {$temp_file $_FILES[upload_file][tmp_name];$img_path UPLOAD_PATH./.date(YmdHis).rand(1000,9999).$file_ext; if (move_uploaded_file($temp_file,$img_path)) {$is_upload true;} else {$msg 上传出错;}} else {$msg 不允许上传.asp,.aspx,.php,.jsp后缀文件;}} else {$msg UPLOAD_PATH . 文件夹不存在,请手工创建;}
} 禁止上传.asp|.aspx|.php|.jsp后缀文件过滤不严格用.phtml .php5 .pht进行绕过 less4
任务
拿到一个shell
提示
禁止上传.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后缀文件
可以看到这道题被限制的太多了
上传.htaccess文件看看 .htaccess文件是Apache服务器中的一个配置文件它负责相关目录下的网页配置.通过htaccess文件可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
双引号即后面需要上传的 先上传 .htaccess 成功后再上传 .png文件
也就是将png文件当作php文件执行 less5
任务
上传一个webshell到服务器
提示
禁止上传.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后缀文件
先尝试hatccess提示却说此文件也被限制了 查看源码
$is_upload false;
$msg null;
if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.php,.php5,.php4,.php3,.php2,.html,.htm,.phtml,.pht,.pHp,.pHp5,.pHp4,.pHp3,.pHp2,.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,.htaccess);$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)) {$temp_file $_FILES[upload_file][tmp_name];$img_path UPLOAD_PATH./.$file_name;if (move_uploaded_file($temp_file, $img_path)) {$is_upload true;} else {$msg 上传出错;}} else {$msg 此文件类型不允许上传;}} else {$msg UPLOAD_PATH . 文件夹不存在,请手工创建;}
}可以和前面的对比一下看看
第五关比第四关少了strtolower这说明我们可以尝试大小写绕过
$file_ext strtolower($file_ext); //转换为小写 上传shell.Php上传成功 less6
任务
拿到一个shell服务器
$is_upload false;
$msg null;
if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.php,.php5,.php4,.php3,.php2,.html,.htm,.phtml,.pht,.pHp,.pHp5,.pHp4,.pHp3,.pHp2,.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,.htaccess,.ini);$file_name trim($_FILES[upload_file][name]);$file_name deldot($file_name);//删除文件名末尾的点$file_ext strrchr($file_name, .);$file_ext str_ireplace(::$DATA, , $file_ext);//去除字符串::$DATA$file_ext trim($file_ext); //首尾去空if (!in_array($file_ext, $deny_ext)) {$temp_file $_FILES[upload_file][tmp_name];$img_path UPLOAD_PATH./.date(YmdHis).rand(1000,9999).$file_ext;if (move_uploaded_file($temp_file, $img_path)) {$is_upload true;} else {$msg 上传出错;}} else {$msg 此文件类型不允许上传;}} else {$msg UPLOAD_PATH . 文件夹不存在,请手工创建;}
}也是有黑名单但是缺少strtolower说明可以尝试大小写绕过
还有发现第六关没有 $file_ext trim($file_ext); //首尾去空 先看大小写绕过,其他师傅可以 提示 禁止上传.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后缀文件
观察一下这个提示就会发现没有过滤到pHp6可以上传看看
发现是可以的