目录
上传的检测与绕过方法

图来自大佬的攻击上传框架
图片马制作批处理代码
上传之前先把制作一句话木马的批处理文件代码附上,不用每次制作去cmd里面操作。
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
copy /b 1.jpg+2.php 3.jpg
第一关:前端js验证
绕过方法:1、浏览器禁用js 2、删除相关js代码 3、使用BP修改后缀,这里我采用的第三种修改后缀(上传的图片马)
然后使用蚁剑连接
第二关:验证MIME类型
上传图片马,使用bp修改后缀为php类型即可
使用蚁剑连接
第三关:黑名单验证
这里有两种绕过方法
方法一:需要apache中有如下代码:AddType application/x-httpd-php .php .phtml .phps .php5 .pht,配合解析php4等一些后缀文件
方法二:str_ireplace函数只替换了一次关键字符,可以通过::$DATA双写的方式,绕过上传检验,文件名+::$D::$DATAATA。我这边采用的是第二种
然后上蚁剑连
第四关:未禁止上传.htaccess文件
先上传.htaccess文件来配合解析图片,后上传一个图片马。蚁剑直接连。
htaccess文件:是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
.htaccess文件生效的两个条件:
一、在Apache的配置文件中写上:AllowOverride All 二、Apache要加载mod_Rewrite模块
.htaccess文件内容为:SetHandler application/x-httpd-php
表示该文件夹下的所有文件都被解析成php文件,然后上传图片马
然后使用蚁剑直接连该图片
第五关:.user.ini绕过
黑名单上传,未禁止上传.user.ini,上传该文件,内容为auto_prepend_file=1.txt
这个1.txt的内容为一句话木马,.user.ini这个文件会把1.txt当成php来进行解析。
然后上传1.txt
上传成功后,使用蚁剑连接该文件
第六关:未区分大小写过滤
对比上关,未进行大小写转换,通过大小写绕过,上传图片马,使用BP改后缀
直接上蚁剑
第七关:空格绕过
两种方法:一、Str_ireplace()函数未完全过滤空格,只过滤一次,可以双写::$DATA来绕过。
二、未进行收尾去空,可以后缀前后加空格来进行绕过,与第三关的方法二一样
然后上蚁剑进行连接
第八关:点绕过
看代码与前面几关对比,缺少删除.的函数,使用BP,上传图片马,修改为php.
上传成功后连接蚁剑
第九关::$DATA绕过
对比上一关,少了::$DATA过滤,上传图片马,改后缀加::$DATA上传
在windows中文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀。
上传成功后直接上蚁剑
第十关:
和第五关类似,就是禁止上传.user.ini文件
没有重命名文件,通过php. .来进行绕过,所以第五关应该就是要通过.user.ini来进行绕过
上传成功后,直接上蚁剑
第十一关:双写绕过
发现str_replace函数替换只替换一次,可以双写php后缀来绕过。
上传成功后上蚁剑
后续白名单上传还在整理,弄好了发出来。