ctfshow学习记录-web入门(文件上传151-160)

目录

    • web151
    • web152
    • web153
    • web154-145
    • web156
    • web157-159
    • web160

建议文件上传的题一口气肝完。burp抓包直接修改url,就可以重复使用,省事。


web151

提示:前台校验不可靠
解答:有个前台的后缀校验,修改上传文件的后缀为png,抓包修改后缀即可。
ctfshow学习记录-web入门(文件上传151-160)_第1张图片

上传成功,可以蚁剑连接,或者是post执行php语句也可以。
jz=system('cat ../flag.php');


web152

提示:后端不能单一校验
解答:还是改后缀,抓包修改上传。直接成功,都不知道最后限制的什么。。。测试了一下,限制的是Content-Type。
ctfshow学习记录-web入门(文件上传151-160)_第2张图片

之后蚁剑或者post。


web153

提示:后端不能单一校验
解答:本次后端对上传后缀进行了限制。

后缀修改后为php扩展phtml等后缀,或者改后缀大小写,都可上传,但不可使用,post不被允许。

经过测试可知,本题是设置了黑名单。考虑上传.htacess或者.user.ini
先测试一下,看看上传目录下是否有php文件,访问/upload,有页面,应该是有个index.php页面。
上传.user.ini
ctfshow学习记录-web入门(文件上传151-160)_第3张图片

再上传图片马。然后蚁剑连接/upload/index.php,或者post。
ctfshow学习记录-web入门(文件上传151-160)_第4张图片


web154-145

题示:154-后端不能单二校验;155-后端不能单三校验
解答
154:这次后缀黑名单过滤比较多,用图片马吧。
这次增加了内容校验,不能有php。那么就使用短标签绕过。
(155的三个校验,应该是后缀、type、和内容。方法都是短标签绕过)
ctfshow学习记录-web入门(文件上传151-160)_第5张图片

Use of undefined constant- assumed……
php7.2及以上版本时报此错误,规定了常量的命名方式,需要带引号。

不加单引号会报错,但不影响执行命令。

再上传.user.ini,访问index.php页面,请注意路径加上index.php。
ctfshow学习记录-web入门(文件上传151-160)_第6张图片


web156

题示:后端不能单四校验
解答:后缀有黑名单、type、和内容(两个校验)。

上题的payload不行了,清空上传内容是可以上传成功的,所以还是内被过滤。
因为上传的php语句就一句话,所以逐个字符测试了一下,发现了是前中括号[被过滤了,改成大括号就行。


ctfshow学习记录-web入门(文件上传151-160)_第7张图片

上传 也是可以的,本题应该是配置了参数short_open_tags=on


web157-159

题示:157-后端不能单五校验;158-后端不能单六校验
解答
157:过滤了分号;、前大括号{。那就直接让它执行命令回显吧。

158:过滤了log,这个log在下面web160会用到,当然本题也可以用。

159:过滤了(

#157-158可适用:
<?=system('tac ../f*')?>

#157-159均适用:
<?=`ls`?>
<?=`tac ../f*`?>

ctfshow学习记录-web入门(文件上传151-160)_第8张图片

记得上传.user.ini。我开始忘了上传,一直没出结果。。。。
ctfshow学习记录-web入门(文件上传151-160)_第9张图片


web160

解答:空格、反引号被过滤了。这直接把命令执行相关的函数和方法给限制了。
没有关系,还有文件包含,include可以不用括号,中间也可以不用空格。

还记得web38和web80用到的日志包含吗?这道题就用日志包含。

没想到log竟然也被过滤,还好可以字符串拼接。

记得访问一下/upload/index.php,看看有没有包含成功。

接下来就是传输php语句,可以url地址上get传,或者在User-Agent上传。
ctfshow学习记录-web入门(文件上传151-160)_第10张图片

之后就是蚁剑连接,或者post了。
ctfshow学习记录-web入门(文件上传151-160)_第11张图片

你可能感兴趣的:(ctf-web,#,ctfshow-web,前端,学习,php)