- web151
- web152
- web153
- web154-145
- web156
- web157-159
- web160
建议文件上传的题一口气肝完。burp抓包直接修改url,就可以重复使用,省事。
web151提示:前台校验不可靠 解答:有个前台的后缀校验,修改上传文件的后缀为png,抓包修改后缀即可。
上传成功,可以蚁剑连接,或者是post执行php语句也可以。 jz=system('cat ../flag.php');
提示:后端不能单一校验 解答:还是改后缀,抓包修改上传。直接成功,都不知道最后限制的什么。。。测试了一下,限制的是Content-Type。
之后蚁剑或者post。
web153提示:后端不能单一校验 解答:本次后端对上传后缀进行了限制。
后缀修改后为php扩展phtml等后缀,或者改后缀大小写,都可上传,但不可使用,post不被允许。
经过测试可知,本题是设置了黑名单。考虑上传.htacess
或者.user.ini
先测试一下,看看上传目录下是否有php文件,访问/upload,有页面,应该是有个index.php页面。 上传.user.ini
再上传图片马。然后蚁剑连接/upload/index.php,或者post。
题示:154-后端不能单二校验;155-后端不能单三校验 解答: 154:这次后缀黑名单过滤比较多,用图片马吧。 这次增加了内容校验,不能有php。那么就使用短标签绕过。 (155的三个校验,应该是后缀、type、和内容。方法都是短标签绕过)
Use of undefined constant- assumed…… php7.2及以上版本时报此错误,规定了常量的命名方式,需要带引号。
不加单引号会报错,但不影响执行命令。
再上传.user.ini
,访问index.php页面,请注意路径加上index.php。
题示:后端不能单四校验 解答:后缀有黑名单、type、和内容(两个校验)。
上题的payload不行了,清空上传内容是可以上传成功的,所以还是内被过滤。 因为上传的php语句就一句话,所以逐个字符测试了一下,发现了是前中括号[
被过滤了,改成大括号就行。
上传 也是可以的,本题应该是配置了参数short_open_tags=on
题示:157-后端不能单五校验;158-后端不能单六校验 解答: 157:过滤了分号;
、前大括号{
。那就直接让它执行命令回显吧。
158:过滤了log,这个log在下面web160会用到,当然本题也可以用。
159:过滤了(
#157-158可适用:
#157-159均适用:
记得上传.user.ini
。我开始忘了上传,一直没出结果。。。。
解答:空格、反引号被过滤了。这直接把命令执行相关的函数和方法给限制了。 没有关系,还有文件包含,include可以不用括号,中间也可以不用空格。
还记得web38和web80用到的日志包含吗?这道题就用日志包含。
没想到log竟然也被过滤,还好可以字符串拼接。
记得访问一下/upload/index.php,看看有没有包含成功。
接下来就是传输php语句,可以url地址上get传,或者在User-Agent上传。
之后就是蚁剑连接,或者post了。