
注:本方法没有开虚拟机所以跟网上的教学不同,由于小皮面板的配置不一样以及各方面差异再开始前我们用AI完成配置修改方便做后面关卡。输入指令修改我的小皮面板使Apache服务器能读取 .php\.php3\.php4\.php5\.phtml\.pphphp\.Php\.pHP\.phps 后缀结尾的文件作者提醒前面为正常解法但后面会来一个比较赖皮的解法准备工作phpstudy小皮面板一句话木马我的一句话木马为?php eval($_POST[cmd]); ?蚁剑 注链接蚁剑的密码为上面木马中的cmd连接成功后要点击添加数据否则会没有burp suite抓包工具1-前端绕过我们先上传PHP一句话木马。如图显示文件类型不正确并且显示了弹窗这说明是前端浏览器拦截了文件。我们右击php文件点击重命名改为.jpg,再次上传3.可以看到显示了一张加载的图片这说明我们已经绕过前端上传成功了右击在新标签页打开图像4.打开后如上图显示这样注意此时还没有成功系统并没有把我们上传的.jpg按php解析接着打开burp suite 重复一下上面的操作上传.jpg木马并抓包5.我这里的光标前应该显示jpg这是我改后的大家要改成php然后点击放行。反回靶场再次右击在新标签页打开图像。6.显示如上图然后我们点击上面的网址并复制打开蚁剑右击添加数据7.输入网址和密码点击连接显示连接成功之后就可以访问后台数据如下图2-content-type头绕过1.打开源码看一下。第五行显示的image/png 等一系列为可以通过的类型2.打开purp suite上传php木马并抓包找到content-type把后面的数据改成image/png之后放行3.之后返回靶场再次右击在新标签页打开图像会出现如下图的页面这就成功了然后打开蚁剑和第一关操作一样复制地址输入密码就可以连接成功。3-文件名黑名单绕过1.让我们看一波源码第五行出现了$deny_ext array(.asp,.aspx,.php,.jsp);这明显就是不让上传的黑名单所以我们的文件后缀名要避开这些2.接着打开burp suite在靶场上传php木马并抓包将文件名改为 php5 并放行3.返回靶场再次右击在新标签页打开图像会出现如下图4.都出现成功页面了相信大家会之后的步骤了没错打开蚁剑连接就万事大吉了。4-文件后缀校验-.htaccess1.这里要知道 .htaccess文件上传到哪里就会对该目录及所有子目录生效所以我们要创建一个.htaccess文件文件里写这段代码如下let php-cgi (mod_fcgid) handle .jpg files in this directory AddHandler fcgid-script .jpg FcgidWrapper D:/phpstudy_pro/Extensions/php/php5.3.29nts/php-cgi.exe .jpg这段代码意思是让Apache服务器把.jpg后缀的文件当作php文件来解析。2.接下来我们再看一下源代码由第五行可知这次禁用了一堆后缀名但是他没有禁用.jpg,所以我们可以上传。接着我们点击php木马把这个文件命名为.jpg文件但是上传成功不代表能被解析所以我们第一步中的.htaccess文件就是帮助我们解析的ok思路有了接下来我们来实操吧3.回到靶场先上传我们的.htaccess文件结果 显示如下4.接着我们再次上传.jpg一句话木马页面辉闪烁一下然后我们右击图片在新标签页打开图像结果如下5.熟悉的步骤又来了复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功如下图5-文件后缀检验-双写绕过1.来让我们先看源代码这次黑名单更全了上一关的.htaccess文件后缀也被禁用了但是我们找黑名单里没有的如.php7/.phpt,但是有一些后缀由于环境问题无法被自动解析为php所以我用的后缀是.pphphp(这是因为在标题的注释我已经修改了使这个后缀能够解析2.回到靶场打开burp suite点击上传php木马并抓包如图3.把抓包16-17行中间最后的文件后缀改为.pphphp,然后点击放行关掉拦截回到靶场点击图片新标签页打开图像就会出现如图页面4.欧克最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功6-文件后缀名校验-大小写绕过1.看代码我们可以发现相比前几道题这道题的源代码明显缺少了这行$file_ext strtolower($file_ext); //转换为小写那我们就可以将后缀大小写混合来绕过黑名单检查2.回到靶场打开burp suite点击上传php木马并抓包把文件后缀改为.Php或者.pHP如图点击放行关闭拦截回到靶场就可以看见那张为加载的图片3.点击图片新标签页打开图像就会出白页面上端相同的会有一个网址4.最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功7-文件后缀名-末尾加空格1.老规矩先看源代码与原来相比较这道题缺了这样的代码$file_ext trim($file_ext); //首尾去空那突破点就来了我们可以在后缀加上空格注windows系统特性为在文件后缀加上空格上传和保存时系统会自己给你去掉所以我们上传的就是php文件2.回到靶场打开burp suite点击上传php木马并抓包把文件后缀后面加一个空格如图3.点击放行关闭拦截回到靶场点击图片新标签页打开图像然后我们就又又又有网址了4.最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功8-文件名后缀绕过-点号绕过1.分析源代码我们可以知道它又缺失一行代码如下$file_name deldot($file_name);//删除文件名末尾的点这就是我们的突破点可以在文件后缀名再加上一个点号注windows系统特性还有在文件后缀加上一个点号系统也会自己去掉2.回到靶场打开burp suite点击上传php木马并抓包在文件后缀末尾加一个点号改完如图3.点击放行关闭拦截回到靶场点击图片新标签页打开图像然后就有如下页面4.后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功9-文件后缀名校验-::$DATA绕过1.先看源代码我们又可以发现又缺了重要的一行代码如下$file_ext str_ireplace(::$DATA, , $file_ext);//去除字符串::$DATA这说明我们可以加上这个字符串来绕过黑名单这不是又有思路了2.回到靶场打开burp suite点击上传php木马并抓包在文件后缀加上下面这个字符串::$DATA如图3.点击放行关闭拦截回到靶场点击图片新标签页打开图像然后就有如下页面这你肯定有一点懵别急仔细看上面的地址是不是有那个字符串点击网址删除那个字符串再次点击回车然后它就又变成你想要的白色页面了如图4.后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功10-文件后缀名校验-点号空格点1.先看源代码如下图这次全部东西都进了黑名单但是我们可以利用这个检查机制去突破2.来看下面这串代码如果我们在文件名后追加. .(点 空格 点就变成了xxx.php. .按照下面先首尾去空没变化在删除最后的点第2行代码表示截取从右往左最后一个点和后面的东西所以就变成了点空格第34步没有变换最后去空就只剩一个点号。所以可以绕开黑名单。$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); //首尾去空注windows系统特性为在文件后缀加上空格,和点会自动省略所以文件实际保存为.php3.回到靶场打开burp suite点击上传php木马并抓包在文件后缀加上点空格点,如图4.点击放行关闭拦截回到靶场点击图片新标签页打开图像就可以了5.最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功11-文件后缀名-双写绕过1.先看源代码,其中有这样一行表示不区分大小写它都能认出来同时强行把黑名单里的后缀换成空那我们就可以双写绕过了。$file_name str_ireplace($deny_ext,, $file_name);2.回到靶场打开burp suite点击上传php木马并抓包把后缀改成.pphphp 如图3.点击放行关闭拦截回到靶场点击图片新标签页打开图像就可以了如图4.最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功在开始12与13关之前我们先来一些概念方便更好理解1.在计算机底层C语言字符串是以 \0即十六进制的 0x00URL 编码为 %00作为结束标志的。2.%00 截断Null Byte Injection的核心原理简单来说就是利用底层系统C语言和上层应用PHP对“字符串结束符”的认知差异来实现“偷梁换柱”。3.GET 和 POST 传递参数的区别 · GET 请求Pass-12浏览器发送 URL 时URL 编码会自动把 %00 解码成真正的空字节 \0 交给 PHP所以直接写 %00 就能生效。 · POST 请求Pass-13你如果在请求体里直接写 %00PHP 接收到的就是三个普通字符 %、0、0。它不认识这是个空字节。所以必须在 Burp 的 Hex 模式下手动把这三个字符的十六进制值改成真正的空字节 00才能触发底层的截断。1.由于php版本原因我们要在小皮面板中改动php的版本如图点击网站找到你靶场所在的根目录我这里是aaa再点击管理找到PHP版本选择php5.2.17nts版本高版本会修改%00截断这个漏洞2.可能有的同学以上步骤都正确但还是不成功这可能是因为小皮面板中的php的magic_quotes_gpc开启了我们可以给AI如下指令把我小皮面板中的php5.2.17nts的magic_quotes_gpc改为off状态12-白名单校验-GET型%00截断1.先看源代码由图可以知道这次不是黑名单了反而变成了白名单要求只能上传jpgpngGIF。但是有这样一段代码$img_path $_GET[save_path]./.rand(10, 99).date(YmdHis)...$file_ext;那么判断出这道题用GET截断2.回到靶场打开burp suite点击上传jpg木马并抓包如图看到首句我们要修改为如下POST /upload-labs/Pass-12/index.php?save_path../upload/shell.php%00 HTTP/1.13.4.然后点击放行关闭拦截回到靶场就会显示我们想要的结果了如图之后点击图片新标签页打开图像就可以了4.但是当我们点击之后会出现错误如图别着急点击上面网址把php后面的数字和符号等都删了然后再次点击回车。就会出现如图5.这表示我们已经成功了。之后最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功13-白名单校验-POST型%00截断1.我们先看源代码里面出现了$img_path $_POST[save_path]./.rand(10, 99).date(YmdHis)...$file_ext所以它是POST截断2.回到靶场打开burp suite点击上传jpg木马并抓包如图我们往下找到有upload/字样的一行然后在后面加上shell.php%00就可以了如图3.3.然后我们右击抓包页面点击发送到Repeater有人可能是英文多找一找之后点击重放器如图4.找到我们修改过的那一行选中%00如图然后右击转换选中内容选择URL在选择URL解码5.如图%00的符号消失了这就是解码成功了不理解的看12题上面的注释6.点击左上角的发送之后点击页面渲染出现如图就是成功了。7.之后关闭抓包的拦截返回靶场会出现上传不成功的字样如图这其实是没关系的我们刚刚已经通过bp发过去了。8.点击新添加一个网址输入如下aaa是我的根目录你们要输入你们的根目录shell.是我的命名如果不一样输入你们的其余相同然后回车就OK了10.最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功14-文件内容检测-文件头校验1.这次我们直接看要求如图所以我们想到在3种后缀的图片中植入木马通过某种方式运行来通关2.准备3中题目要求后缀的图片我这里就演示一种其余2种操作一模一样右击图片用记事本打开如图上面为图片打开的样子下面是我准备的3种图片在图片乱码最后复制我们的一句话木马每个图片都如此点击保存注必须粘贴到最后否则可能被检测到从而不成功3.回到靶场上传我们改好的文件就会显示出你的图片右击图片新标签页打开图像就有如图我们从第一个数字之后全部复制后面有用4.接着我们就要让木马运行起来回到靶场点击文件包含漏洞这几个黄字就会出现如图4.点击上面网址改为这样aaa/upload-labs/include.php?fileupload/7920261105210948.gif后面就是让你复制的网址数然后回车会出现如图5.最后最后复制上面地址打开蚁剑添加数据密码cmd之后连接会显示成功到这里一到十四关已经完成接下来我们讲一下赖皮一点的方法我们前面说过.htaccess文件上传到哪里就会对该目录及所有子目录生效所以我们可以在upload-labs的子目录下放一个.htaccess文件由于3-14关中没有禁用.jpg后缀的文件所以我们可以写一串内容为 遇见.jpg 文件就按照.php文件解析这样就可以上传.jpg文件秒杀3-14关代码如下let php-cgi (mod_fcgid) handle .jpg files in this directory AddHandler fcgid-script .jpg FcgidWrapper D:/phpstudy_pro/Extensions/php/php5.3.29nts/php-cgi.exe .jpg放置位置如图温馨提示作者也是萌新正在学习有些地方可能有问题或者表述不准确请大家多多担待。我的文章和网上其他教学大不一样没有开虚拟机等等仅供大家参考。谢谢