目录
web151
前端校验,通过上传一个png的图片,之后通过抓包修改掉后缀名即可。
图片的内容为echo phpinfo();以及包含了一句话木马。
通过蚁剑来连接,密码为x。
web152
题目提示:后端校验要严密。
通过抓包,这里先上传一个图片马,尝试修改后缀名为php,MIME的信息为image/png,发现上传成功,这里就是后端校验,仅仅校验了MIME信息。
通过蚁剑来连接,拿到flag。
web153
考察的user.ini的知识点,其中可以通过在user.ini文件中配置auto_append_file和auto_prepend_file,分别是在每一个php文件的文件尾包含某个文件,prepend是在每个php文件的文件头包含某个文件。所以对于这个题而言,就是上传一个带有木马的图片,在上传user.ini文件,使当前目录下的所有的php文件都去包含这个含有木马的图片。
上传成功。不过这种情况是存在着利用的条件的,就是通过.user.ini文件来上传时,需要在上传的路径下存在着php文件,因为.user.ini只对他同一目录下的文件起作用,也就是说,只有他同目录下有php文件才可以。刚好/upload/目录下存在着一个index.php文件。
所以实现了我们去访问/upload/index.php文件的时候,首先会去包含这个含有木马的图片。
使用蚁剑去连接index.php即可。
web154
题目描述为:后端验证不可以单二校验。
先上传包含木马的图片,发现存在着校验。提示了文件内容不合规。尝试加上文件头伪造一下,加上了GIF89a之后,发现还是提示内容不合规,可能是验证了<?php。这里尝试文件中的<?php换成短标签。或者是使用<script>。
还是先上传一个包含木马的图片,之后在上传.user.ini文件。
上传的.user.ini文件如同上面的题,内容一致。
访问/upload/index.php,同时通过post请求传参x=phpinfo(),可以看到成功执行了phpinfo。之后就可以蚁剑连接。这里我没有再使用蚁剑,因为已经可以rce了,直接读取flag.php的内容就可以了。
web155
同样使用短标签的方法先上传包含木马的图片shell.png
再通过上传.user.ini文件来使得/upload/index.php,去包含shell.png。上传之后,通过post传参x=system('ls');访问/upload/index.php。之后找到flag.php后,在尝试读取flag.php文件的内容(flag.php在当前目录/var/www/html/下)
web156
本题在上一个题的基础上过滤了[ ],可以通过{ }来绕过,还是使用短标签的方法,上传包含木马的图片,在上传.user.ini文件,使得index.php包含图片。
上传成功之后再上传.user.ini文件。
成功执行phpinfo。接下来就是读取文件了。
web157 158 159
看了大佬的wp,发现是在原来的基础上过滤了{}和分号,大佬的方法是直接输出flag的内容,不再搞一句话,毕竟已经知道了flag.php的位置。
图片的内容为
<?=`tac ../f*`?>
这里还过滤了flag.php,可以通过占位符*来绕过。
或者是改成这样也是可以的
<?= system('tac ../f*')?>
157、158可以使用上面的两种方法打。
对于159来说,过滤了括号,导致<?= system('tac ../f*')?>这种方法失效,但是第一种方法,继续使用反引号还是可以打。
web160
又不会了...看了羽师傅的wp,只能说羽师傅nb!
本题通过包含nginx的日志文件,去完成该题。这里还过滤了log,可以使用拼接的方法绕过。图片的内容为<?=include"/var/lo"."g/nginx/access.lo"."g"?>
之后再上传.user.ini文件,使得/upload/index.php包含日志文件,并输出,上传之后,就可以通过访问index.php经过抓包,修改其中的UA信息为<?php system('tac ../flag.php');?>
在访问/upload/index.php的时候就可以得到flag。
web161
在160的基础上增加了文件头的校验,在文件头加上GIF89a即可。
同样.user.ini文件也需要增加文件头来绕过检验。
之后访问index.php修改UA信息即可。