安徽网站开发与维护专业,单页面seo搜索引擎优化,如何判断网站有cdn加速,为网站吸引流量的方法文件上传类型#xff1a;
前端验证#xff1a;1
MIME类型验证#xff1a;2
黑名单验证#xff1a;3~10#xff0c;19 大小写绕过、空格绕过、解析后缀数字绕过、点绕过、/绕过、::$DATA绕过
白名单验证#xff1a;11~18#xff0c;20 %00截断、二次渲染、文件包含、…文件上传类型
前端验证1
MIME类型验证2
黑名单验证3~1019 大小写绕过、空格绕过、解析后缀数字绕过、点绕过、/绕过、::$DATA绕过
白名单验证11~1820 %00截断、二次渲染、文件包含、解析漏洞、逻辑漏洞 第一关
先上传一句话木马文件判断对方的验证方式发现是前端JS验证 方法1:关闭火狐浏览器JS渲染
在浏览器地址栏中输入about:config关闭JavaScript_enabled设置 选择一句话木马文件上传成功上传 右键复制图片的路径在新窗口中打开文件成功被执行 方法2修改JS代码禁用JS中的检测函数
F12打开界面的源代码搜索check找到验证函数checkfile(),删除该函数让按钮不响应代码界面别关闭关闭时会刷新界面 成功上传了hello.php同时界面刷新了 成功执行木马文件 方法3文件替换(使用Edge操作的火狐没有该功能谷歌也行)对前端代码永久生效
F12打开检测界面点击源码找到验证的文件index.php点击三个点更多选项找到覆盖在覆盖下选择打开一个本地文件夹成功后界面如下
如果选择本地文件是不成功注意检查一下浏览器是否有提示是否允许使用本地文件的请求在导航栏下面可能会有提示需要你授权 关闭源码界面刷新一下页面然后就能任意文件上传了 方法4正常上传图片使用BP抓包修改后缀名并添加一句话木马
上传图片之前打开网站的bp代理打开bp工具对数据进行拦截 修改图片的信息为了一张图能表示我把图片信息都删了写入了一句话木马放包就能上传成功 方法5使用BP去除界面JS代码显示
刷新界面利用BP抓取到网页请求包 监听响应包 设置options过滤响应包中的JS代码再放包收到响应包信息 之后关掉bp界面就能实现任意文件上传了原理和方法1类似都是只有一次效果 第二关
方法利用bp抓包修改后缀
上传php文件提示文件类型不正确应该是MIMETYPE验证 抓包使用repeater模块修改数据包信息后上传成功 执行文件 第三关
方法利用BP抓包修改后缀名绕过
上传php文件发现是后缀名黑名单验证这种情况只需要修改为可上传的php后缀名即可 修改apache服务器的配置添加php解析的文件后缀(这里是在配置环境)
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml .phtm 通过BP抓包修改后缀名为php3,成功上传尝试大小写发现无法绕过说明有大小写转换 右键复制图片的地址成功解析看图片地址会发现图片的名字也被修改过了 这关遇到的问题
问题配置成功修改文件成功上传访问该文件不能正常解析
问题原因php nts版本不兼容问题
解决方式1.使用老版本的小皮选择非nts版本的php即可 2.使用新版小皮通过下载非nts版本的php添加到phpstudy中这里不具体展示 第四关
方法1利用bp爆破文件后缀绕过
记得在服务器配置中添加常见的php解析的后缀名第三关有操作
尝试直接上传看结果 乱后缀名判断服务器端验证的方式发现是后缀名的黑名单检测 尝试对文件后缀名进行爆破看看是否有可通过的后缀 开始爆破发现有很多的可通过后缀名 选择php1后缀进行放包复制图片的路径 这关遇到的问题
问题成功上传文件后不解析返回空白页面
问题核心php版本不兼容
解决方式选择php 5.2.17 版本即可解决多试几个版本
方法2利用上传.htaccess配置文件形式绕过后缀检测只针对Apache服务器
由于方法1爆破时发现可以上传.htaccess的后缀文件并且成功上传的文件名不会改变所以可以利用apache服务器的配置漏洞进行绕过
具体如下
利用BP抓包修改文件内容和文件名内容有两种写法文件名必须是.htaccess
1.指定该文件夹下的hello.png打开时使用php解析
FilesMatch hello.pngSetHandler application/x-httpd-php/FilesMatch
2.该文件夹下的所有文件都使用php解析
SetHandler application/x-httpd-php 成功上传后再修改木马文件后缀为png上传 查看结果发现会出现500错误把.htacess文件内容换成第二种写法就没问题了
推测应该是设置单独文件解析时和服务器/系统的某些配置冲突了无伤大雅这也是一种方法 方法3.user.ini绕过
具体详见第十九关 第五关
方法1通过BP抓包修改后缀名大小写绕过
乱码后缀开道发现可以上传后缀名的黑名单验证 尝试后缀名大小写变化发现成功上传 修改后缀名为.Php后放包成功上传 方法2利用bp爆破文件后缀名绕过具体流程见第四关这里不演示 第六关
方法1尝试修改后缀名绕过
乱码后缀开道后缀名黑名单验证文件名修改 尝试改变大小写进行绕过失败说明加上了大小写转换验证 尝试修改成简单的后缀名进行绕过php1成功上传 方法2空格绕过
爆破试错
爆破设置通过的文件后缀名全部不符合要求 根据爆破得到的响应结果尝试结尾操作空格 \ /
空格可以直接绕过推测服务端应该是把.转成空格处理又把空格作为反向检测结束标志了 第七关
方法1php1直接绕过
乱码后缀开道发现是后缀名黑名单验证 尝试大小写验证绕过失败 尝试通用后缀名绕过成功了.php1就是神 尝试了.php3绕过失败了 方法2结尾加.绕过
直接上爆破 验证其中的.phtml......文件;成功解析 第八关
方法php1直接绕过
乱码后缀开道后缀名黑名单验证文件名改变了 尝试.php1成功上传 方法2::$DATA绕过
简单尝试无果直接爆破发现大部分可解析的后缀名都被替换了 发现php::$DATA文件成功上传实际存储文件后缀名是php访问解析成功 第九关
方法后缀名爆破
乱码开道黑名单后缀名验证文件名不变 直接选择爆破后缀名多次.php1成功绕过怀疑是我的设置问题现实php1后缀可能并不常见 关闭url特殊字符转码 得到能够通过的后缀名 查看后缀名发现文件后缀少了一个.应该是对文件中的.进行处理了 这关遇到的问题
问题爆破后发现所有的后缀名都能通过
问题核心查看请求包发现英文句号被转换成了%2eurl编码搞的鬼
解决方式到爆破模块中取消勾选url转换特殊字符的框
问题截图 解决截图 第十关
方法使用.phtmlhp绕过
乱码开道黑名单验证 尝试简单的后缀名绕过发现把关键后缀名删了 php html等 根据他的规则构造后缀名尝试.phtmlhp成功绕过得到了php后缀文件 第十一关
方法1%00截断绕过只针对GET
配置服务器设置在php扩展及设置中关闭GPC否则无法成功 通过BP抓包修改文件路径和文件名%00是结尾标志 实际保存文件名称就是自己设置的1.php 方法2文件包含绕过(取巧了实际是不知道include.php的路径的)
乱码后缀名开道发现是白名单验证 上传一句换木马的png文件 通过访问include.php实现文件包含绕过 第十二关
方法1hex中进行00截断针对POST路径绕过
抓包进行修改在路径结尾添加结束符绕过后缀检测 方法2文件包含绕过同第十一关取巧 第十三关
方法分别上传jpg png gif格式的图片马保留图片文件的开头即可
核心检测文件内容的开头标志和文件后缀来判断文件类型
png格式图片马如下把文件内容都删了不然源文件内容使用php解析时可能会报错 jpg格式的图片马 gif格式的图片马 第十四关
方法在文件末尾加上一句话木马可以绕过
通过上传不带内容的木马数据发现文件被屏蔽了推测服务端检测了文件的大小通过图片结尾加上一句话木马成功绕过
jpg格式图片上传 png图片格式上传 GIF格式图片木马上传 这关遇到的问题
问题图片上传后访问返回致命错误文件中某些字符不识别
解决方法选择小一点儿的图片进行上传然后在结尾添加一句话木马文件太大里面可能会有一些php无法解析的字符换成小文件上传后成功解析 第十五关我的坏了只看一下源码分析一下
方法保留图片文件头部进行绕过
查看源码发现只验证了图片的头部内容信息检测是否为图片文件如果没问题则之后只保留该后缀并对文件进行重命名直接制作图片马即可绕过copy 1.png /b 1.php /a 3.png 第十六关
方法gif二次渲染绕过
上传一张gif图片不要太小容易被全部渲染把成功上传的图片和原图进行对比分析
在没被渲染的地方用一句话木马的二进制进行替换得到图片马 成功上传图片马渲染后的图片仍然保留木马信息 通过文件包含访问该文件发现木马程序被执行 第十七关
方法1竞争上传通过
我这边没有访问成功之后通过修改源码增加了保存的时间才复现的
通过查看源码发现服务器是先保存再验证验证不通过后删除文件中间文件会保存一定时间 直接上传木马文件然后访问该文件使得文件在服务器端解析
文件内容如下 通过抓取文件上传包和访问文件包来进行爆破
设置文件上传线程数为10负载10000条
文件访问包线程数为100负载100000条多开几个相同的访问会话增加成功的概率
抓取文件上传包 抓取访问请求包 访问请求包中出现200数据表示访问成功文件成功解析服务器目录下会生成一个shell.php文件用蚁剑可以连接成功 方法2文件包含通过默认不允许
通过copy 1.png /b hello.php /a 5.png 命令生成一个图片马上传成功 成功执行木马程序 第十八关
方法1逻辑漏洞竞争上传
对源码进行分析查看源代码 可通过的后缀名如下 文件验证操作如下对后缀名、文件大小进行验证可以通过.php.png等格式绕过 通过后缀和文件大小验证后会先保留源文件后缀进行保存然后对文件名称和后缀进行重命名
重命名之后文件没办法操作了只能在未改名之前解析该文件这就需要竞争上传了 竞争上传源文件一旦被访问成功就不会再改名
通过尝试发现在可通过的白名单后缀名里只有7z后缀不会直接被浏览器解析根据服务器解析规则允许多个后缀存在从右往左依次读取后缀名直到可解析的后缀名结束设置文件名为1.php.7进行上传然后通过url访问该文件使其解析方法和第十七关一样设置10线程的上传包和100线程的请求包这个成功率高 方法2文件包含绕过取巧了不能这么搞 第十九关
方法1空格绕过、点绕过、::$DATA绕过等黑名单绕过
通过不存在的后缀上传判断是黑名单验证 具体可绕过的方法如下这是一类修改后缀
1.php%00 1.php (加了空格) 1.php. 1.php.php123 1.php::$DATA等 方法2通过修改文件后缀大小写绕过 方法3.user.ini绕过
该黑名单验证中没有限制.user.ini的后缀文件名也没有改变
通过上传.user.ini文件到index.php所在的目录使得该目录中的php文件在执行时自动包含指定的文件
.user.ini文件内容写为:auto_prepend_file/upload/1.png;(在文件开始前包含1.png文件) 上传1.png文件 访问upload初始页面发现1.png的内容被执行了 第二十关
方法构造数组绕过逻辑漏洞
对代码进行分析发现存在一个逻辑漏洞将文件名构造成数组绕过分割操作后文件名可控 抓取请求包进行修改通过修改save_name为save_name[0]和save_name[2]的方式将save_name变成数组绕过分割操作此时下面用到的文件名都是可控的只设置0和2会导致下面文件名为第一个元素和第二个元素组成由于第二个元素为空则文件名为1.php.成功上传并解析 该文件成功解析 10